This post/benchmark explains in length many of the tricks that make
ripgrep fast: string litteral optimizations to memory maps, multiple threads, and incremental search…
What is most interesting is that it makes obvious that great products need more than R&D. While
ripgrep's strength stems from rust’s regexp library, a lot of work was spent thinking about what users want and handling edge cases. Yes we want to pipe from stdout, we care about unicode, we want our tools to read .gitignore, and we don’t care about POSIX that much for CLI usage.
I think I first heard of rust with
ripgrep. Now that I read the book and compiled a hello world, it’s time to write a small tool with it!