ripgrep: поиск по коду на порядок быстрее
grep — инструмент классический, но на крупных проектах его производительность становится узким местом. Ожидание, пока найдутся все вхождения функции, — потерянное время, которое накапливается.
ripgrep (rg) решает эту проблему архитектурно: SIMD-инструкции, параллельные потоки и умные алгоритмы пропуска файлов. Результат — поиск по проекту с 10 тысяч файлов занимает доли секунды вместо 10-15 секунд.
Ключевые отличия от grep
• Уважение .gitignore — по умолчанию не лезет в node_modules, .venv, target и прочие артефакты. В классическом grep нужно явно исключать.
• Скорость — в 10-50 раз быстрее на больших кодовых базах. Тесты на ядре Linux: grep — 15-20 секунд, rg — 0.4 секунды.
• Читаемый вывод — подсветка синтаксиса, номера строк, контекст, группировка совпадений по файлам.
• Кроссплатформенность — одинаково работает на Linux, macOS, Windows.
Сценарии использования
Поиск по коду — основная задача. Находит все вызовы функции, все использования типа или строки. Фильтрация по языку (Python, Rust, Go, JavaScript) и исключение тестовых директорий — встроенные возможности.
Анализ логов — с контекстом до и после найденной строки, с подсветкой разных элементов разными цветами. Позволяет быстро локализовать проблему.
Массовая замена — сначала получить список файлов под замену (--files-with-matches), верифицировать, затем выполнить замену через sed или другой инструмент. Риск контролируется, артефакты предсказуемы.
Экосистема
ripgrep стал стандартным бэкендом для поиска в современных редакторах: VS Code, Neovim (telescope.nvim), Sublime Text. Он также отлично интегрируется с fzf для интерактивного поиска.
Установка проста: brew install ripgrep (macOS), sudo apt install ripgrep (Ubuntu), choco install ripgrep (Windows) или cargo install ripgrep (из исходников).
👉🏻 Я в Telegram - t.me/helcode
👉🏻 Я в VK - vk.com/helcode
👉🏻 Я на Boosty - boosty.to/helcode
👉🏻 Я в VK - vk.com/helcode
👉🏻 Я на Boosty - boosty.to/helcode