In addition to being really fast, it "just works". By that I mean it automatically excludes the files I want to be excluded, like `.gitignore`d files and binary files. I know I can configure ack-grep (ag) and other tools to do that, but not needing to configure it is nice.
BTW, if anyone hasn't read https://blog.burntsushi.net/ripgrep/, highly recommended. It's about how ripgrep is so fast. (Edit: Just saw another comment mentioned this, too. Goes to show that making a single high-quality blog post has a big impact.)
Now, I will do my obligatory "burntsushi needs to clag the rest of the Teddy code" post which I must do on every discussion of ripgrep. :-)
The "subtitles_alternate_casei" examples would be a good benchmark - these 48 strings should not overwhelm Teddy as they could be sensibly merged into Teddy's 8 "buckets" (in fact, they could be merged into 5 buckets) using the simple greedy merging strategy in the original Teddy implementation.
This would probably be a quite good project for someone who wants to contribute to ripgrep and could likely get some nice performance wins...
I'll get to it myself eventually if someone else doesn't, but it will likely be a while.
Teddy is very much 'of its time' (SSSE3) and there are a lot of new approaches that seem interesting (AVX512 of Skylake generation, VBMI, Sunny Cove's even bigger slate of instructions, ARM NEON, SVE).
I also have better ideas about followup confirm than I used to. There are also some prospect to pick a 'fragment' out of the whole string within Teddy or equivalent at a position not strictly at its suffix - this can even be done with ordering preserved if you are careful not to make fragment choices that allow o-o-o matches (only possible if strings overlap).
I might do a bit of work on this, but I'm a bit jaded on string matching and regex matching after 13 years.
I am hoping to move on, but I admit I do have a "few more ideas" in that area - possibly even slightly less 'meatheaded' than previous outings. Maybe (although everything looks better on paper).
> I will introduce a new command line search tool, ripgrep, that combines the usability of The Silver Searcher [ag] …
Only I've never been able to make ag (or pt, another similar too) respect .gitignored and other such settings as good as rg does out of the box. Plus it's slower.
(Ack also supports the full PCRE syntax but that's less of an issue now rg has -P).
If your work takes you to minority platforms ack is certainly worth keeping in your toolbox.
I'm using ag inside my source directories and cannot remember it not doing the job.
I basically never want this, so for me, ripgrep's one flaw is that it never "just works".
alias rg="rg -uuu"