命令行工具,用于将文档解析为 Markdown、本地语义关键词搜索,以及借助 AI 代理对文件提问。
- Star
- 529
- Fork
- 26
- 未关闭 Issue
- 6
- 最近提交
- 上个月
这是什么?
krep 是一款用 C 语言编写的命令行文本搜索工具,面向大规模模式匹配场景,希望比 grep 更快。它会根据模式选择 Boyer-Moore、KMP、Two-Way、Shift-Or、Aho-Corasick 等算法,并结合 SSE2、AVX2、AVX-512、NEON 等 SIMD 指令与内存映射 I/O 加速扫描。
默认按固定字符串搜索,同时支持 POSIX 正则表达式和多模式匹配,模式可通过多个 -e 参数或文件提供。它可以搜索单个文件、递归搜索目录(支持 glob 包含/排除规则与 .gitignore),也可以读取标准输入。常用的 grep 选项如上下文行、行号、计数、文件列表等均已支持,并提供 JSON Lines 输出便于脚本处理。
该工具可在 Linux、macOS 和 BSD 上使用,需要 C 编译器和 pthread。构建时可通过 PORTABLE 或 NATIVE 参数在可移植性与 CPU 专用向量指令之间取舍。
核心功能
- 01根据模式自动选择合适的字符串搜索算法
- 02使用 SIMD 加速和内存映射 I/O 提升扫描速度
- 03跨 CPU 核心的多线程搜索
- 04支持 POSIX 正则与多模式匹配
- 05递归目录搜索,支持 glob 包含排除及 .gitignore
- 06兼容 grep 常用选项,并支持 JSON Lines 输出
适用场景
- 在大型源码树或日志目录中同时搜索多个模式
- 需要结构化 JSON Lines 输出的脚本化文本搜索
- 在对性能敏感的构建或 CI 流程中替代 grep
- 在 shell 脚本中使用静默模式快速判断内容是否存在
快速上手
- 1
通过 Homebrew 安装(macOS)
brew install krep - 2
克隆仓库
git clone https://github.com/davidesantangelo/krep.git - 3
进入项目目录并编译
cd krep && make - 4
全局安装二进制文件
sudo make install
使用前须知
- 需要 C 编译器以及带 pthread 的 POSIX 系统,不支持 Windows。
- 发布的 Linux x86-64 二进制文件仅使用基础 SSE2;更宽的 SIMD 需要从源码编译。
标签
常见问题
- krep 是什么?
- 一款快速的多线程命令行字符串搜索工具,兼容 grep 常用参数,支持 SIMD 加速与正则匹配。 krep 是一款用 C 语言编写的命令行文本搜索工具,面向大规模模式匹配场景,希望比 grep 更快。它会根据模式选择 Boyer-Moore、KMP、Two-Way、Shift-Or、Aho-Corasick 等算法,并结合 SSE2、AVX2、AVX-512、NEON 等 SIMD 指令与内存映射 I/O 加速扫描。
- krep 可以免费使用吗?用的什么许可证?
- krep 以 BSD-2-Clause 许可证开源。用于商业产品前,请先确认许可证条款。
- krep 还在维护吗?
- 半年内有更新。krep 最近一次提交是在 2026年9月16日。
- krep 适合用来做什么?
- 在大型源码树或日志目录中同时搜索多个模式 需要结构化 JSON Lines 输出的脚本化文本搜索 在对性能敏感的构建或 CI 流程中替代 grep 在 shell 脚本中使用静默模式快速判断内容是否存在
- krep 怎么安装和运行?
- 通过 Homebrew 安装(macOS): brew install krep 克隆仓库: git clone https://github.com/davidesantangelo/krep.git 进入项目目录并编译: cd krep && make 全局安装二进制文件: sudo make install
- 在哪里获取 krep?
- 源代码和安装说明在 GitHub 上:https://github.com/davidesantangelo/krep
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
1878153RustMIT更新于 7个月前
一个更智能的 cd 命令,记住常用目录,几个按键即可跳转,支持主流 shell。
4万929RustMIT更新于 前天
统一管理 Claude Code、Codex 等多种编码智能体的桌面、移动端、网页与命令行工具,支持并行运行。
2.1万2551TypeScriptOther更新于 7小时前
一个用 Rust 编写的邮箱验证工具,可在不发送邮件的情况下检测邮箱地址是否存在。
1万745RustMIT更新于 3天前
把浏览器变成终端,可在任意设备上查看和操控命令行会话与 AI 编程代理。
4692335TypeScriptMIT更新于 2个月前