logoalt Hacker News

Ripgrep is faster than grep, ag, git grep, ucg, pt, sift (2016)

125 pointsby jxmorris12today at 6:31 AM53 commentsview on HN

Comments

craftkillertoday at 11:37 AM

One of my favorite moments in HN history was watching the authors of the various search tools decide on a common ".ignore" file as opposed to each having their own: https://news.ycombinator.com/item?id=12568245

kricktoday at 12:42 PM

I don't remember why I didn't switch from ag, but I remember it was a conscious decision. I think it had something to do with configuration, rg using implicit '.ignore' file (a super-generic name instead of a proper tool-specific config) or even .gitignore, or something else very much unwarranted, that made it annoying to use. Cannot remember, really, only remember that I spent too much time trying to make it behave and decided it isn't worth it. Anyway, faster is nice, but somehow I don't ever feel that ag is too slow for anything. The switch from the previous one (what was it? ack?) felt like a drastic improvement, but ag vs. rg wasn't much difference to me in practice.

boytertoday at 10:10 AM

Such a good read. I actually went back though it the other day to steal the searching for the least common byte idea out to speed up my search tool https://github.com/boyter/cs which when coupled with the simd upper lower search technique from fzf cut the wall clock runtime by a third.

There was this post from cursor https://cursor.com/blog/fast-regex-search today about building an index for agents due to them hitting a limit on ripgrep, but I’m not sure what codebase they are hitting that warrants it. Especially since they would have to be at 100-200 GB to be getting to 15s of runtime. Unless it’s all matches that is.

show 1 reply
cbm-vic-20today at 12:53 PM

fd:find::rg:grep

Someone please make an awesome new sed and awk.

drob518today at 12:20 PM

I’ve read this multiple times over the years and this post is still the most interesting and informative piece describing the problem of making a fast grep-like tool. I love that it doesn’t just describe how ripgrep works but also how all the other tools work and then compares the various techniques. It’s simultaneously a tutorial and an expert deep dive. Just a beautiful piece of writing. In a perfect world, all code would be similarly documented.

unxmaaltoday at 10:22 AM

I just got ripgrep ported to IRIX over the weekend.

It’s fast even on a 300mhz Octane.

show 1 reply
wewewedxfgdftoday at 9:55 AM

I was using ripgrep once and it had a bug that led me downa terrifying rabbit hole - I can't recall what it was but it involved not being able to find text that absolutely should have been there.

Eventually I was considering rebuilding the machine completely but for some reason after a very long time digging deep into the rabbit hole I tried plain old grep and there was the data exactly where it should have been.

So it's such a vague story but it was a while back - I don't remember the specifics but I sure recall the panic.

show 5 replies
travisdraketoday at 12:40 PM

still a good read

davikrtoday at 12:18 PM

qgrep is faster if you're fine with indexing. worth it

TacticalCodertoday at 11:56 AM

And burntsushi is one of us: he's regularly here on HN. Big thanks to him. As soon as rg came out I was building it on Linux. Now it ships stocks with Debian (since Bookworm? Don't remember): thanks, thanks and more thanks.

show 1 reply
pipe01today at 9:00 AM

(2016)

ianberdintoday at 10:20 AM

It’s a pure delight to read this docs / pitch.

AdmiralAsshattoday at 11:43 AM

Is it still?

dist-epochtoday at 9:55 AM

(2024) gg: A fast, more lightweight ripgrep alternative for daily use cases

https://reddit.com/r/rust/comments/1fvzfnb/gg_a_fast_more_li...

show 1 reply
keyboredtoday at 9:48 AM

> The binary name for `ripgrep` is `rg`.

I don’t understand when people typeset some name in verbatim, lowercase, but then have another name for the actual command. That’s confusing to me.

Programmers are too enarmored with lower-case names. Why not Ripgrep? Then I can surmise that there might not be some program ripgrep(1) (there might be a shorter version), since using capital letters is not traditional for CLI programs.

Look at Stacked Git:

https://stacked-git.github.io/

> Stacked Git, StGit for short, is an application for managing Git commits as a stack of patches.

> ... The `stg` command line tool ...

Now, I’ve been puzzled in the past when inputing `stgit` doesn’t work. But here they call it StGit for short and the actual command is typeset in verbatim (stg(1) would have also worked).

show 5 replies
jedisct1today at 11:50 AM

ugrep is my daily driver. https://ugrep.com

The TUI is great, and approximate matches are insanely useful.

brtkwrtoday at 10:34 AM

Hasn’t someone rewritten ripgrep in rust by now? C’mon it’s 2026. Oh wait it was written in Rust (back in 2016).

show 3 replies
derodero24today at 12:10 PM

[dead]

chrisweptoday at 10:23 AM

It seems to me that `rg` is the number one most important part that enables LLMs to be smart agents in a codebase. Who would have thought that a code search tool would enable AGI?