For file inclusion patterns, the first results are isaacs/node-glob (This library provides robust glob pattern matching and recursive filesystem traversal for Node.js, fulfilling the core path resolution and discovery requirements), sharkdp/fd (This command-line file discovery tool provides rapid filesystem navigation and glob-like pattern matching with built-in ignore file support, though it functions primarily as an end-user CLI application rather than an embeddable library) and symfony/finder (This PHP library provides robust filesystem traversal, filtering, and directory iteration with support for version control ignore rules, though it lacks cross-platform path handling features tailored for non-PHP environments). mrmlnc/fast-glob and isaacs/minimatch round out the shortlist. Compare the match explanations and check the project documentation against your requirements.
Hand-picked open source glob pattern matching libraries ranked by GitHub stars and activity. Compare the top options and pick the right one.
node-glob is a Node.js library for finding and matching files and directories using glob patterns. It functions as a filesystem traversal tool and path resolution library, enabling the identification of entries within directory trees based on specific search criteria. The project features a virtual filesystem interface, allowing native filesystem methods to be replaced with custom objects. This enables pattern matching against mocked data or non-native storage systems. The toolkit covers a broad range of filesystem operations, including recursive directory traversal, path normalization acros
This library provides robust glob pattern matching and recursive filesystem traversal for Node.js, fulfilling the core path resolution and discovery requirements.
This project is a high-performance command-line utility designed for rapid filesystem navigation and file discovery. It enables users to locate files and directories within large project structures using recursive search, pattern matching, and metadata-aware filtering. By employing multi-threaded parallel traversal, it provides an efficient way to explore complex directory trees. What distinguishes this tool is its ability to integrate directly into terminal workflows and automate file management tasks. It automatically respects version control ignore files and hidden file settings, ensuring
This command-line file discovery tool provides rapid filesystem navigation and glob-like pattern matching with built-in ignore file support, though it functions primarily as an end-user CLI application rather than an embeddable library.
This project is a PHP filesystem search component and file filtering library. It provides an object-oriented filesystem iterator designed to locate files and directories based on specific criteria. The library includes a project ignore file parser that allows the search process to respect version control exclusion patterns and metadata to skip unnecessary files. It covers a wide range of filtering capabilities, including the ability to isolate entries by name, path, size, and modification date. The tool also supports content-based filtering, type-based restrictions, and custom logic function
This PHP library provides robust filesystem traversal, filtering, and directory iteration with support for version control ignore rules, though it lacks cross-platform path handling features tailored for non-PHP environments.
This package provides methods for traversing the file system and returning pathnames that matched a defined set of a specified pattern according to the rules used by the Unix Bash shell with some simplifications, meanwhile results are returned in arbitrary order. Quick, simple, effective.
This package provides fast file system traversal and glob pattern matching according to Unix shell rules, hitting the core requirements for path discovery and globbing.
A minimal matching utility.
This library provides glob pattern matching capabilities used heavily in the JavaScript ecosystem, though it lacks built-in file traversal and gitignore-style rule parsing.
Please consider following this project's author, Jon Schlinkert, and consider starring the project to show your :heart: and support.
Micromatch is a JavaScript library for glob pattern matching and path filtering that covers core pattern matching needs, though it focuses primarily on matching rather than full directory traversal.
User-friendly glob matching
This JavaScript utility provides user-friendly glob matching and file traversal built on top of fast-glob, fitting the file-matching library category while leaning on Node.js conventions for path handling.
Simple wildcard matching
Matcher is a lightweight JavaScript library for wildcard pattern matching that lets you filter lists of paths, though it lacks built-in file traversal and gitignore-style parsing.
`sh npm install multimatch `
This JavaScript library extends standard glob matching to handle multiple patterns and negative exclusions, fitting the pattern-matching category well even though it focuses on array filtering rather than file system traversal.
Glob is a pattern matching library for Go that compiles wildcard strings and file paths into optimized matchers for high-throughput string validation and filtering. It evaluates text and file paths against character sets, ranges, and alternatives to determine if candidate inputs fit specific criteria. The library parses raw glob strings into structured syntax nodes before translating them into bytecode instruction sequences upfront. This compilation process enables finite state machine evaluations and zero-allocation path matching during runtime execution, preventing garbage collection press
This repository provides a high-performance glob pattern matching library for Go, fulfilling the core path-matching requirement although it focuses strictly on pattern matching rather than full file traversal or ignore-file parsing.
Path.swift is a type-safe file system library for Swift that replaces error-prone string manipulation with structured path objects. It provides a unified, chainable interface for constructing, transforming, and managing file system paths, ensuring that path validity is maintained throughout an application's lifecycle. The library distinguishes itself by using value-type data modeling and dynamic member lookup to provide an intuitive, readable syntax for navigating directory structures. It handles complex file system tasks by mapping operations directly to underlying system calls, ensuring con
This Swift file system library provides path modeling and manipulation utilities, but it focuses on structured path objects rather than glob pattern matching or gitignore-style filtering.
rimraf is a Node.js recursive file deletion tool and cross-platform filesystem utility. It provides both a programmatic library and a command-line interface for removing files and directories and all of their contained contents across different operating systems. The utility supports glob-based file deletion, allowing the removal of items that match specific wildcard patterns rather than just literal paths. It also includes the ability to abort deletion processes mid-execution and apply custom predicate-based filtering to exclude specific files or folders. The project covers broad filesystem
Rimraf is a file deletion tool rather than a general-purpose file matching and globbing library, making it a utility that consumes glob patterns rather than a library for path filtering and discovery.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| isaacs/node-glob | 8.7K | TypeScript | NOASSERTION | |
| sharkdp/fd | 43.4K | Rust | Apache-2.0 | |
| symfony/finder |
| 8.4K |
| PHP |
| MIT |
| mrmlnc/fast-glob | 0 | — | — | — |
| isaacs/minimatch | 3.5K | JavaScript | BlueOak-1.0.0 |
| micromatch/micromatch | 3K | JavaScript | MIT |
| sindresorhus/globby | 2.6K | JavaScript | MIT |
| sindresorhus/matcher | 542 | JavaScript | MIT |
| sindresorhus/multimatch | 306 | JavaScript | MIT |
| gobwas/glob | 1K | Go | MIT |