Вышла версия 2.0 консольной утилиты поиска строк krep Обложка: Skyread

Вышла версия 2.0 консольной утилиты поиска строк krep

Новости
Главное:

  • Выпущена версия 2.0 консольной утилиты krep для поиска строк с открытым исходным кодом.
  • Утилита поддерживает многопоточность, SIMD-оптимизацию и несколько эффективных алгоритмов поиска.
  • В новой версии улучшена производительность, исправлены ошибки и добавлен скрипт для сравнения с ripgrep.

Выпущена обновлённая версия 2.0 открытой консольной утилиты krep, предназначенной для поиска строк в файлах. Программа написана на языке C и доступна под лицензией BSD 2-Clause на платформе GitHub. Разработка проекта стартовала в марте 2025 года, а первая версия была представлена в апреле того же года.

Особенностью krep является использование различных алгоритмов поиска в зависимости от типа шаблонов, включая комбинацию Бойера–Мура–Хорспула, Кнута–Морриса–Пратта и Ахо–Корасика. Это позволяет оптимизировать процесс и повысить эффективность. Утилита автоматически распределяет задачи по доступным ядрам процессора, что раскрывает потенциал многопоточности. Кроме того, продукт поддерживает SIMD-оптимизацию с использованием инструкций SSE4.2, AVX2 и NEON, что существенно ускоряет вычисления на современных процессорах.

Функционал krep включает продвинутый поиск с использованием POSIX-совместимых регулярных выражений и возможность одновременного поиска по нескольким шаблонам. Программа умеет рекурсивно обходить каталоги, а найденные совпадения выделяются цветом для удобства восприятия. Утилита также оптимизирует обработку коротких шаблонов и способна прекращать поиск в файле после достижения заданного количества совпадений.

В версии 2.0 разработчики сосредоточились на повышении производительности многопоточной обработки файловой системы, особенно в функции search_file. В релиз добавлен скрипт test/benchmark_krep_vs_rg.sh, который позволяет сравнивать эффективность krep с популярным инструментом ripgrep. Кроме того, устранена ошибка, связанная с рекурсивным пропуском минимизированных ресурсов (например, файлов с масками вроде .min.*), а также улучшены процессы тестирования и стабильности.

Таким образом, krep 2.0 представляет собой универсальный и производительный инструмент для поиска текстовых данных в различных условиях, сочетающий гибкость настройки и современные технологии оптимизации.

Tagged