Утилита fst предназначена для быстрого поиска информации в любом наборе текстовых файлов. Она индексирует файлы, указанные в конфигурационном файле config.json, и затем обрабатывает запросы из request.json, формируя результаты в answers.json. По каждому запросу утилита находит наиболее релевантные файлы (в пределах заданного лимита) и сортирует их по специальному рангу. Используется оптимизированный алгоритм поиска, обеспечивающий высокую скорость обработки даже больших объёмов данных. Утилита запускается без аргументов — достаточно разместить все необходимые файлы в одной директории с исполняемым файлом.
- Язык программирования: C++, bash
- Компиляторы: GCC, Clang, MSVC++
- Инструменты для тестирования: Google Test
- Инструменты для сборки и автоматизации: CMake
- Инструменты для профилирования и анализа: Clang-tidy, lcov
- Операционные системы: Linux, Windows
- Библиотеки:
- Google Test – для написания юнит тестов
- thread-pool – для реализации многопоточного индексирования файлов
- nlohmann/json – для работы c json-файлами
- Документация: Doxygen
Убедитесь что установлены все необходимые инструменты:
sudo apt update
sudo apt install build-essential cmake gcc g++ clang lcov clang-tidyВыполните следующие команды для сборки:
cmake -S . -B ./build -DCMAKE_BUILD_TYPE=Release
cmake --build ./buildЗапустите FST следующей командой:
./build/fstПосле успешного завершения работы, проверьте появившийся файл ./answers.json:
cat ./answers.jsonДля запуска тестов выполните следующие команды:
cmake -S . -B ./coverage_build -DCODE_COVERAGE=ON -DCMAKE_BUILD_TYPE=Debug
cd ./coverage_build
cmake --build .
ctestОставаясь в билд директории, выполните скрипт (может не работать, если вы используете WSL):
../coverage.shОтчет о покрытии появится в директории ./coverage_html, используйте любой браузер для просмотра, например, firefox:
firefox ./coverage_html/index.htmlcmake -G "MinGW Makefiles" -S . -B .\win_build
cmake --build .\win_build
.\win_build\fstЗапустите Developer Command Prompt for VS, перейдите в корень репозитория и выполните:
cmake -S . -B .\win_build
cmake --build .\win_build
.\win_build\Debug\fst.exeПодробное описание всех классов, структур и функций, а также графы их взаимодействия можно найти в документации.
Также документация доступна офлайн, для этого откройте файл ./docs/index.html любым браузером, например, firefox:
firefox ./docs/index.html