← All reportsPublic report

burntsushi/ripgrep

ripgrep recursively searches directories for a regex pattern while respecting your gitignore

68k stars Rust View on GitHubprofiled 11d ago
Try GitZoid
14PRs this week
4Contributors
0Deps scanned
0Issues found
01 · Repo overview

How ripgrep is put together

ripgrep is a line-oriented recursive regex search tool (the `rg` CLI) written entirely in Rust as a Cargo workspace of ~10 library crates plus a thin `crates/core` binary. Data flow: CLI arguments and an optional RIPGREP_CONFIG_PATH rc-file are parsed into low/high-level arg structs, the `ignore` crate performs parallel directory traversal honoring gitignore/hidden/binary filtering, the `searcher` crate scans each haystack (optionally memory-mapped or transcoded via encoding_rs) using a matcher from the default Rust `regex` engine or optional PCRE2, and the `printer` crate formats matches to stdout (standard, JSON, summary, stats, hyperlinks). An experimental indexing mode backed by an embedded redb database is gated behind the `unstable-index` feature.

Languages

Rust

Frameworks

regexaho-corasickbstrcrossbeam-channelcrossbeam-deque

Datastores

redb (embedded key-value database, unstable-index feature)

Infrastructure

GitHub Actions CI (ci/ scripts)cargo-deb packaging (package.metadata.deb)Homebrew formula (pkg/brew/ripgrep-bin.rb)Windows Manifest.xmlcargo-fuzz targets (fuzz/)

Major components

crates/core (rg binary)

Entry point that parses flags, dispatches to single-threaded search, parallel search, file listing, type listing, generation of completions/man page, and index read/write modes.

crates/core/flags

Full CLI flag definitions, lexopt-based parsing, shell completion generators, and conversion into high-level search configuration.

crates/ignore

Parallel directory walker implementing gitignore/.ignore/.rgignore semantics, hidden/binary filtering, file-type matching, and override rules.

crates/searcher

Core search execution over files or memory maps, including line buffering, multi-line matching, encoding transcoding, and sink-based result delivery.

crates/matcher + crates/regex + crates/pcre2

Matcher trait abstraction over the default Rust regex engine and the optional PCRE2 FFI engine.

crates/printer

Output formatting: standard colored output, JSON/events, summary/stats, path printing, counters, and terminal hyperlinks.

crates/globset

Glob pattern compilation and matching (single globs and sets), also exposed for fuzzing.

crates/cli (grep-cli)

CLI utilities: decompression/preprocessing filter plumbing, escape handling, hostname lookup, human-readable sizes, stdout writer setup.

crates/index (grep-index)

Experimental search index built on redb, discovered via RIPGREP_INDEX_PATH or ancestor `.ripgrep` directories.

The past few weeks of ripgrep development have focused on groundwork for a new indexing capability, alongside routine releases and maintenance of the supporting 'ignore' and 'globset' libraries. The team also tightened up release tooling, including build provenance attestations for downloads and fixes to continuous-integration checks.

Week by week

2026-08-03New versions of the ignore and globset libraries shipped, with internal improvements to how they share resources.latest5 changes

Chore

ignore 0.4.33 released

A new version of the library that decides which files ripgrep skips was published.

Chore

globset 0.4.20 released

A new version of the pattern-matching library used for include/exclude rules was published.

Refactor

Larger shared resource pools

Both libraries now allow bigger pools of reusable resources, which can improve performance on large searches.

Fix

Fixed automated binary discovery in CI

The automated build-and-test pipeline had trouble locating compiled programs, and this fix repairs that.

Chore

ignore 0.4.32 released

An earlier point release of the ignore library went out the same week.

2026-07-27Searches got smarter about ignoring irrelevant files, and released downloads are now cryptographically attested.2 changes

Refactor

Skip unreachable ignore files

Ripgrep no longer wastes time loading ignore files it could never apply during a search.

Fix

Build provenance attestations for releases

Downloadable release archives now come with cryptographic proof of exactly how they were built, helping users verify their authenticity.

2026-07-20Early scaffolding landed for a future indexing feature, plus a batch of housekeeping across the project.6 changes

Feature

Initial indexing groundwork

First building blocks were added for an experimental feature that indexes search results.

Refactor

New core index module

A dedicated module was created in the codebase to house indexing logic.

Feature

Flags disabled during indexing

Many command-line options are turned off while indexing is active, keeping the new mode predictable.

Docs

Removed incorrect README

An inaccurate readme file accompanying the index work was deleted.

Chore

ignore 0.4.31 released

Another maintenance release of the file-filtering library went out.

Chore

Minimum Rust version declared

Every crate in the project now explicitly states the minimum Rust compiler version it supports.

03 · Security check

Dependencies and code review

0 dependencies scanned

Dependency advisories

Security Watch

No known advisories across 0 scanned dependencies.

No known advisories in the scanned dependencies.

Code review

No concrete code-level issues confirmed.

Get this report every week for your repos.

GitZoid learns each repo, reports what changed, and flags what needs attention. One flat price for the whole team.

$19 a month, flat · First 10 outputs free · No card required