Repolode
davidesantangelo

davidesantangelo/krep

一款快速的多线程命令行字符串搜索工具,兼容 grep 常用参数,支持 SIMD 加速与正则匹配。

可替代:grep

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. 1

    通过 Homebrew 安装(macOS)

    brew install krep
  2. 2

    克隆仓库

    git clone https://github.com/davidesantangelo/krep.git
  3. 3

    进入项目目录并编译

    cd krep && make
  4. 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 数据每日更新。

相关项目