Ripgrep is faster than grep, ag, git grep, ucg, pt, sift (2016)
Adoption and Use Cases
- Widely seen as a “killer app” in Rust; many commenters use it as their default search tool.
- Embedded as the search backend in editors and tools (VS Code, AI coding assistants, ArchiveBox, Cursor before their custom engine).
- Some rely on traditional
grep/git grepinstead, mainly for ubiquity on remote or locked-down systems.
Performance and Competing Tools
- Praised for speed, especially on large codebases; OS disk caching can dominate first-run latency.
- Alternatives mentioned:
ugrep,qgrep(indexed),cgrep,gg,nowgrep(Windows),ag,pt,ack,upgrep,rgafor binary formats. - Some benchmarks and blog posts claim specific competitors can beat ripgrep in certain scenarios or resource usage (e.g., CPU time, indexing).
Ignore Rules, Defaults, and POLA
- Major controversy: by default,
rgrespects.gitignore,.ignore, hidden files, and encodings. - Supporters: default ignoring of
node_modules, minified JS, build artifacts makes searches usable and fast. - Critics: behavior violates the Principle of Least Astonishment; searches silently miss files, eroding trust.
- Workarounds: flags like
-u/-uu/-uuu,--no-ignore,--no-ignore-vcs,--ignore-file, config files, or aliases; some find this too complex and revert to plaingrep.
Reliability and “Missing Results” Stories
- Several anecdotes of
rgfailing to find text thatgrepdid, causing confusion and panic. - Common root causes suggested: ignored/hidden files, VCS-specific excludes, binary or UTF‑16 files, encoding detection.
- At least one report of data truncation in a large
rgpipeline; details and root cause are unclear. - Some users now routinely cross-check with
grep.
CLI UX, Naming, and Configuration
- Discussion over naming (
rgvsripgrep, lowercase binaries likenvim) and reliance on aliases. - In corporate/locked-down Windows environments, persistent shell config or aliases may be disallowed, limiting customization.
- Some prefer sticking close to stock tools (
grep,awk,sed) to avoid managing custom setups.
Ecosystem, Architecture, and Ports
- Ripgrep is built from many reusable Rust crates, making it easy to repurpose components.
- Notable porting effort to IRIX, using reverse engineering tools and LLM assistance to fix ABI issues and enable modern software on legacy systems.