OpenGrok

Бесплатно
Открытый исходный код
Windows
macOS
Linux

Сайт: oracle.github.io/opengrok

OpenGrok — это инструмент для индексирования, поиска и навигации по исходному коду, разработанный для упрощения анализа больших программных репозиториев. Он выполняет статический анализ дерева исходников и истории версий, создаёт обратные индексы и кросс-ссылки между символами, файлами и изменениями, что позволяет разработчикам быстро находить определения, использования и связанные коммиты. OpenGrok поддерживает множество языков программирования и форматов исходного кода, а также интеграцию с системами контроля версий для отображения контекста изменений.

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

  • Индексирование исходного кода: создание полных и частичных индексов для быстрого полнотекстового поиска и поиска по символам.
  • Кросс-ссылки и навигация: построение ссылок «определение — использование» между файлами и символами для облегчения понимания связей в кодовой базе.
  • Поддержка VCS: интеграция с распространёнными системами контроля версий для отображения изменений, аннотаций (blame) и истории.
  • Веб-интерфейс для поиска и просмотра: удобный интерфейс с возможностями фильтрации, подсветки синтаксиса и навигации по директориям и файлам.
  • Многоязычная поддержка: распознавание и обработка исходников на различных языках программирования и форматов файлов.
  • Производительность и масштабируемость: оптимизации для работы с большими репозиториями и частичного переиндексирования при изменениях.
  • Фильтры и запросы: поддержка сложных запросов, регулярных выражений и ограничений по путям, типам файлов и веткам.
  • Интеграция с инструментами разработки: возможность включения в CI/CD-процессы и ссылок из внешних систем отслеживания задач.
Подробнее