ripgrep

ripgrep, run from the shell as rg, is a search tool that recursively walks the current directory looking for lines that match a regular expression. Its README states the design in one sentence: “ripgrep is a line-oriented search tool that recursively searches the current directory for a regex pattern.” It was written by Andrew Gallant, who goes by BurntSushi on GitHub, and first released in 2016. It belongs to the same family as grep but reworks the experience for searching whole codebases at once rather than a handful of named files.

Its most distinctive default is that ripgrep respects version-control ignore rules. The README explains that by default ripgrep “will respect gitignore rules and automatically skip hidden files/directories and binary files.” In practice this means that when you search a project, rg quietly omits build artifacts, dependency directories, and other clutter that a .gitignore already excludes, so the results are the source files you actually care about. Traditional grep, by contrast, searches everything you point it at unless you build up exclusion flags by hand. That single opinionated default removes most of the friction of grepping a real repository.

Speed is the other half of ripgrep’s reputation. It is written in Rust and built on a fast regular-expression engine that uses finite automata and SIMD-accelerated literal search rather than backtracking, which keeps performance predictable even on large inputs. It parallelizes its directory traversal across cores and avoids opening files it can rule out. The result is a tool that searches large trees noticeably faster than the older utilities, which is precisely the workload, scanning an entire project, that it was built to make instant.

For all its modern internals, ripgrep is a faithful command-line citizen. It reads a pattern and paths, writes matching lines to standard output, and exits with a status code reflecting whether anything matched, so it composes in pipelines and scripts exactly where grep would. It supports the flags people expect, such as case-insensitive search, fixed-string matching, file-type filters, context lines, and the ability to turn the ignore behavior off when you really do want to search everything.

ripgrep is a good illustration of how the Unix tradition keeps renewing itself: a tool that does one thing well, search text, reimplemented decades later in a memory-safe systems language, with smarter defaults tuned for how programmers actually work today. Its source and documentation live at github.com/BurntSushi/ripgrep.

Sources

Last verified June 8, 2026