Ripgrep 15.0

Overall reception and quality

  • Commenters widely praise ripgrep as “quality software” with a clean, instructive codebase that’s enjoyable to read.
  • Many say it’s a daily‑driver tool they install on every new machine and rely on both in terminals and editors (e.g., VS Code).
  • Several note that ripgrep’s excellence led them to become interested in Rust more broadly.

Interface and usability vs grep / git grep

  • A recurring theme: rg pattern does “the right thing by default” for code search:
    • Recurses automatically.
    • Respects .gitignore.
    • Skips hidden and binary files.
  • Users contrast this with grep, which needs extra flags and wrapper scripts to avoid noisy results (.git, build artifacts, vendor dirs).
  • Some still use grep out of muscle memory, especially in pipelines, but others note rg works the same there and has replaced many uses of sed/awk via --only-matching and --replace.
  • For “behave more like git grep,” people use --hidden plus globs to avoid .git, or pipe git ls-files into rg, though ripgrep intentionally doesn’t read git index state.

Comparison to ugrep, ag, ack

  • One thread asks if ripgrep has “caught up” to ugrep; responses flip the framing, saying ugrep has caught up to ripgrep in some cases but not all.
  • Benchmarks shared in the thread show ripgrep substantially faster than ugrep in a large Chromium checkout when matching ripgrep’s default ignore behavior; less dramatic but still faster when ignoring more broadly.
  • Compared to ag:
    • Multiple benchmarks show 3–10× speedups on large repos and ability to handle files >2GB.
    • Points raised: better Unicode support, PCRE2, multiline search, UTF‑16 handling, --replace, preprocessors, active maintenance, and fewer bugs.
  • Some ag/ack users feel speed is already “fast enough” and are reluctant to retrain, but are intrigued by features.

Ignoring rules, hidden files, and configuration

  • Default behavior (respect .gitignore, skip hidden and binary files) is seen as a major UX win for most code‑search use cases.
  • Others find it surprising or problematic (e.g., .github, CI directories under . prefixes).
  • Suggested solution: use .ignore / .rgignore with negation rules (!/.github/, !.woodpecker, etc.) to whitelist specific hidden paths without changing CLI flags.
  • There is resistance to hardcoded whitelists in ripgrep itself, to keep semantics simple and predictable.

Features and workflows

  • Popular features mentioned:
    • --type / custom types instead of ad‑hoc extension globs.
    • --files for fast file lists.
    • --replace for simple text transformations.
    • Optional --smart-case (off by default; users can alias/configure).
  • Ripgrep is commonly combined with:
    • fd as a faster, simpler alternative to find.
    • fzf and editor frontends for interactive search.
    • LLM-based tools, with users explicitly telling agents that rg is available.

Critiques and concerns

  • Some wish for different defaults (e.g., smart‑case enabled, easier extension filters).
  • Edge cases discussed:
    • Searching patterns that start with - (need -e or --).
    • Desire for a more expressive filename filter like ag’s regex‑based -G instead of glob‑only -g.
  • A commenter laments the broader pattern of major releases that mix “bug fixes and performance improvements” with behavior changes users didn’t ask for, though no specific breaking change in 15.0 is highlighted in the thread.