Состоялся выпуск открытой, многопоточной, SIMD-оптимизированной, консольной утилиты для поиска строк krep 2.0. Исходный код проекта написан на C и опубликован на GitHub под лицензией BSD 2-Clause "Simplified" License. Версия krep 1.0 вышла в апреле 2025 года. Решение находится в разработке с марта 2025 года.

Особенности проекта:

  • в зависимости от типа шаблонов для оптимальной производительности используются алгоритмы Бойера‑Мура‑Хорспула, Кнута‑Морриса‑Пратта или Ахо‑Корасик;

  • автоматическое распределение поиска по доступным ядрам процессора;

  • SIMD‑оптимизация с поддержкой SSE4.2, AVX2 и NEON;

  • расширенный поиск по регулярным выражениям в POSIX;

  • эффективный поиск по нескольким шаблонам одновременно;

  • рекурсивный поиск по каталогам;

  • выделяет совпадения цветом для лучшей читаемости;

  • оптимизирует обработку односимвольных и коротких шаблонов;

  • останавливает поиск по файлу после того, как найдено определённое количество совпадающих строк.

Основные доработки в новой версии:

  • значительно улучшена производительность многопоточной обработки пути в функции search_file;

  • добавлен скрипт test/benchmark_krep_vs_rg.sh для сравнения krep и ripgrep;

  • исправлена ошибка рекурсивного пропуска минимизированных ресурсов (вида.min.*);

  • улучшено тестирование.