速度碾压grep 30倍!这个Rust写的搜索工具让开发者直呼内行
ripgrep是Rust编写的极速搜索工具,性能碾压grep,支持智能过滤、压缩文件搜索及多平台安装。

速度碾压 grep 30 倍!这个 Rust 写的搜索工具,让开发者直呼内行
在代码海洋里找一行字,你需要一把更快的”刀”
你是否经历过这样的场景:在一个大型项目里搜索某个函数名或关键词,等 grep -r 跑完的结果出来,咖啡都凉了三回?或者更离谱的——你明明知道那行代码就在某个 .gitignore 排除的目录里,但工具就是停不下来,硬生生扫过那些 node_modules 和 target 文件夹?
如果你也深受其苦,今天这篇文章可能会彻底改变你的搜索习惯。
📚 什么是 ripgrep?
ripgrep(简称 rg)是一个用 Rust 编写的行级文本搜索工具,它的核心使命只有一个:在最快的时间里,找到你想要的那行代码。
由开发者 Andrew Gallant(GitHub ID: BurntSushi)发起,ripgrep 自 2016 年诞生以来,迅速成为开发者命令行工具链中不可或缺的一环。
⭐ 核心功能
- ✅ 递归搜索:自动遍历当前目录及其所有子目录
- 🔧 智能过滤:默认遵守 .gitignore 规则,跳过隐藏文件和二进制文件
- ⚡ 极速搜索:基于 Rust 正则引擎,性能远超传统 grep
- 🌍 全平台支持:Windows、macOS、Linux 全覆盖,预编译二进制一键安装
- 🔤 多编码支持:UTF-8、UTF-16、GBK、Shift_JIS 等主流编码轻松应对
- 📦 压缩文件搜索:直接搜索 gzip、bzip2、xz 等格式的文件内容
数据说话:⭐ 66,000+ Stars | 🍴 2,600+ Forks | 📅 最近更新于 2026年7月 | 🦀 Rust 语言开发
🚀 快速开始
安装
ripgrep 的安装方式非常多样,覆盖了你可能用到的几乎所有平台:
1 | # macOS / Linux (Homebrew) |
基本使用
安装完成后,用 rg 命令替代你熟悉的 grep:
1 | # 在项目中搜索 "useState" |
是不是跟 grep 用起来几乎一模一样?没错,ripgrep 的设计哲学就是:你不需要学习新东西,只需要获得更快的结果。
💡 为什么它这么快?
这才是 ripgrep 真正的杀手锏。官方文档里有一组令人震惊的对比数据:
在 Linux 内核源码(约千万行代码)中搜索特定模式时:
工具
耗时
ripgrep****0.082 秒
git grep (Unicode)
2.67 秒(慢 32.7 倍)
ack
2.94 秒(慢 35.9 倍)
在单文件搜索中,ripgrep 同样领先 GNU grep 6 倍以上。
它凭什么这么快?
1. Rust 的正则引擎是核心引擎
ripgrep 内置的正则表达式引擎基于 Rust 的 regex crate,它使用确定性有限自动机(DFA)来匹配模式。简单说,就是引擎在搜索前先把正则表达式编译成一种”超级高效的查找表”,然后像闪电一样扫过文件内容。
2. SIMD 指令集加速
现代 CPU 都支持 SIMD(单指令多数据)技术,ripgrep 充分利用了这一点,让一次 CPU 操作同时处理多个字节的数据,搜索速度直接起飞。
3. 并行目录遍历
ripgrep 使用 crossbeam 库实现了无锁的并行递归目录遍历。它不是逐层扫描文件夹,而是像一群工人在不同楼层同时干活——充分利用多核 CPU 的力量。
4. 智能搜索策略
对于单个大文件,ripgrep 自动选择内存映射(mmap)方式;对于大量小文件,则采用流式增量搜索。它自己判断哪种方式更快,你不需要操心。
🛠️ 进阶玩法
文件类型过滤
1 | # 只搜索 Go 源文件 |
PCRE2 支持(高级正则)
默认的正则引擎已经很快了,但如果你需要回溯引用(backreference)或环视(lookahead/lookbehind),可以切换到 PCRE2:
1 | # 使用 PCRE2 引擎搜索 |
压缩文件直接搜
1 | # 直接在 .gz 文件中搜索内容 |
这个功能在排查日志归档时非常实用,不用先解压就能找到目标行。
配置文件支持
ripgrep 支持通过 ~/.config/rg/config 配置文件设置默认参数:
1 | # 始终显示行号 |
✅ 优缺点分析
优点:
- 🚀 速度极致:在绝大多数场景下碾压传统 grep、ack、ag,最快可达 30 倍以上
- 🔒 默认过滤:自动跳过 .gitignore 中的文件和二进制文件,搜索范围精准
- 🦀 单二进制文件:无需安装运行时环境,下载即用,静态链接零依赖
- 🌐 编码友好:Unicode 原生支持,中文、日文等复杂编码搜索不翻车
- 🔧 功能全面:从 PCRE2 到压缩文件搜索,该有的都有
- 💰 完全免费:Unlicense 或 MIT 双协议授权,无任何限制
注意事项:
- ⚠️ 非 POSIX 标准工具:如果你需要脚本跨平台兼容且保证所有机器都能运行,grep 仍然是更稳妥的选择
- 📚 正则引擎差异:默认引擎不支持 PCRE2 的部分高级特性(如回溯引用),需要显式开启 -P 标志
- 🧩 极端场景性能:在某些特殊正则模式下(如没有字面量优化机会的复杂模式),性能优势会缩小,但依然保持领先
🎯 总结
ripgrep 用一句话概括就是:如果你每天要在代码里搜索东西,它值得成为你的默认工具。
它不是简单地在 grep 的基础上”加了一点优化”,而是从底层重构了整个搜索流程——Rust 的正则引擎、SIMD 加速、并行遍历、智能策略,每一个环节都在为”更快”这一目标服务。
对于开发者来说,每天节省的几秒搜索时间,一年下来就是好几个小时的隐形收益。更重要的是,那种”敲下命令立刻出结果”的流畅感,会让你的开发体验提升一个档次。
💬 互动环节:你平时用什么工具搜索代码?有没有被慢速搜索折磨过的经历?欢迎在评论区分享你的故事!
🔗 相关链接:
- GitHub 项目:https://github.com/BurntSushi/ripgrep
- 官方用户指南:https://github.com/BurntSushi/ripgrep/blob/master/GUIDE.md
- 性能对比博客:https://blog.burntsushi.net/ripgrep/
💬 本文评论区已开启,但暂无读者留言。
本文转载自微信公众号,如有侵权请联系删除。
- 标题: 速度碾压grep 30倍!这个Rust写的搜索工具让开发者直呼内行
- 作者: lxiol
- 创建于 : 2026-07-20 17:28:07
- 更新于 : 2026-07-20 17:28:07
- 链接: https://blog.lxiol.cn/2026/07/20/速度碾压grep-30倍这个Rust写的搜索工具让开发者直呼内行/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。