ripgrep
FreeSearch a whole codebase for a string in tens of milliseconds
A recursive text search tool written in Rust that skips paths listed in .gitignore, binary files and hidden directories by default, which makes it one to two orders of magnitude faster than grep -r on a real project. It supports Unicode, multiline matching and filtering by file type, and is what powers VS Code's global search underneath.
Why we picked it
Dual-licensed Unlicense and MIT, 68,000 stars.
Half the speed is not algorithmic — it is that it does not search what it should skip. grep -r
dutifully descends into node_modules, .git, build output and hundred-megabyte binaries; ripgrep
reads .gitignore and does not go there. On a front-end project that difference is tens of
milliseconds against tens of seconds.
The other half is implementation: a Rust regex engine that avoids backtracking blowup, with multithreaded directory traversal.
VS Code's global search is this. Many people use it daily without knowing.
To be clear about:
- Skipping gitignored files by default is the feature, but it will miss things inside build output;
-uor--no-ignoreturns it off. - The regex syntax is the Rust regex crate's, without backreferences or lookaround. Those cases need
grep -P.