Релиз открытой консольной утилиты для поиска строк krep 2.0
Состоялся выпуск открытой, многопоточной, 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.*);улучшено тестирование.
habr.com