Analysis updated 2026-05-18
Speed up file matching in a build tool, bundler, or file watcher.
Replace picomatch in an existing project with minimal code changes.
Match many file paths against the same pattern in one batched call.
Match raw byte data from the file system without converting it to a string first.
| orielhaim/zeromatch | 6elphegor/warp | adoslabsproject-gif/liara-toolkit | |
|---|---|---|---|
| Stars | 4 | 4 | 4 |
| Language | Rust | Rust | Rust |
| Setup difficulty | easy | easy | hard |
| Complexity | 2/5 | 5/5 | 4/5 |
| Audience | developer | researcher | developer |
Figures from each repo's GitHub metadata at analysis time.
Falls back to compiling from source with a Rust toolchain on unsupported platforms.
Zeromatch is a fast pattern matching library for finding files by name patterns, similar to how you might search for all .js files inside a folder using something like src/**/*.js. It is written in Rust for speed but is meant to be used from Node.js and Bun projects, and it aims to be a drop in replacement for a popular existing library called picomatch, so switching to it should not require rewriting your code. The library works by compiling a glob pattern, which is a shorthand way of describing a set of file paths, into a small internal program rather than turning it into a full regular expression. This makes zeromatch especially quick when you compile a pattern once and only need to test it a single time, or when you need to test one pattern against many file paths at once using its batched testMany function. According to the benchmarks in the README, zeromatch is about twice as fast as picomatch in these one shot situations, though picomatch can still be quicker in tight loops where the same pattern is reused thousands of times on one path at a time. Zeromatch can also match directly against raw byte data, such as Buffer or Uint8Array objects that Node.js sometimes returns from file system calls, without first converting that data into a text string. It supports common features like compiled matchers, sets of multiple patterns combined together, and a scan function that breaks a pattern into its base folder and glob portions. Not every feature of picomatch is included. A few callback options are left out because they are rarely used, and one function returns a plain text version of a regular expression rather than a ready to use regex object. The project ships prebuilt binaries for common platforms, and falls back to compiling from source using a Rust toolchain if your platform is not covered. It requires a reasonably recent version of Node.js and is released under the MIT license.
A Rust-powered glob pattern matcher for Node.js and Bun that is a fast, drop-in replacement for picomatch.
Mainly Rust. The stack also includes Rust, Node.js, Bun.
Use, modify, and share freely, including for commercial projects, as long as you keep the copyright notice.
Setup difficulty is rated easy, with roughly 5min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.