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 grep instead, 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, rga for 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, rg respects .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 plain grep.

Reliability and “Missing Results” Stories

  • Several anecdotes of rg failing to find text that grep did, 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 rg pipeline; details and root cause are unclear.
  • Some users now routinely cross-check with grep.

CLI UX, Naming, and Configuration

  • Discussion over naming (rg vs ripgrep, lowercase binaries like nvim) 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.