BurntSushi/ripgrep
Developer ToolsA fast recursive regex search CLI for codebases that respects gitignore and skips hidden and binary files.
What it does
ripgrep (rg) is a line-oriented search tool that recursively searches a directory for a regex pattern. It is aimed at developers searching source trees, and it differs from plain grep in its defaults: it honors .gitignore, .ignore and .rgignore rules, skips hidden files and directories, and skips binary files. Passing rg -uuu disables that automatic filtering. Windows, macOS and Linux are supported as first-class platforms.
Beyond plain matching, ripgrep filters by file type (rg -tpy foo limits search to Python files), shows surrounding context, highlights matches, supports full Unicode, and can opt into PCRE2 for look-around and backreferences via -P/--pcre2 or --auto-hybrid-regex. It can search compressed files with -z, search non-UTF-8 encodings with -E, rewrite output with replacements, and run preprocessor filters. Configuration files let you persist common flags.
The speed comes from Rust's regex engine (finite automata, SIMD, literal optimizations), a choice between memory maps and incremental buffering, ignore-rule matching through a RegexSet, and a parallel directory iterator built on crossbeam and ignore.
Quick start
Install with the package manager for your platform; the binary is named rg. On macOS or Linuxbrew:
$ brew install ripgrep
On Debian/Ubuntu, or via Rust/Cargo (Rust 1.96.0 or newer):
$ sudo apt-get install ripgrep
$ cargo install ripgrep
Precompiled archives for Windows, macOS and Linux are on the releases page. Windows users can also use choco install ripgrep, scoop install ripgrep, or winget install BurntSushi.ripgrep.MSVC.
Then search the current tree; matches are printed with file paths and line numbers:
$ rg -n -w '[A-Z]+_SUSPEND'
To search everything, including ignored, hidden and binary files, use rg -uuu.
Requirements and limits
- The minimum supported Rust version for building from source is 1.96.0 (stable).
- PCRE2 is optional and not enabled by default; build with
--features 'pcre2'or pass-Ponly where PCRE2 support is available. - ripgrep does not conform to POSIX and is not a drop-in replacement for
grepon arbitrary systems. When you need a ubiquitous, portable tool, GNU grep remains the safer default. - Snap packages for Ubuntu are explicitly not recommended by the maintainer because of repeated bugs.
- Dual-licensed under MIT or the Unlicense.
HotRepo's take
The project has a 2026-11-07 Rust daily snapshot at #9 with 136 stars gained, and substantial Hacker News discussion across releases: Ripgrep 13.0 drew 547 points and 150 comments in 2021, and Ripgrep 15.0 drew 476 points and 113 comments in 2025. A 2026-08-01 thread about musl binaries occasionally segfaulting in very large searches drew 283 points and 195 comments; commenters traced the issue toward a kernel-side patch, and one noted ripgrep already selects jemalloc as the allocator on 64-bit musl builds. These records point to a widely used tool whose release notes and edge-case bugs get active scrutiny, rather than a new project riding a brief spike.
Written by AI from the project's README, updated . The project's own docs are the source of truth.