Перейти к содержимому
Новость

FSearch находит файлы на Mac за доли миллисекунды, даже с ошибками в названии

FSearch предлагает владельцам Mac быстрый поиск файлов по всему диску, включая содержимое текстовых документов и исходного кода. Разработчик заявляет время поиска по имени около 0,1 мс, причем программа умеет исправлять опечатки и отслеживать изменения файлов.

RaVic
FSearch находит файлы на Mac за доли миллисекунды, даже с ошибками в названии

Автор: noahdunnagan

Поиск файлов на Mac обычно ассоциируется со Spotlight или Finder, однако разработчик Ноа Даннаган предложил альтернативный инструмент FSearch с упором на скорость и работу из терминала. Проект написан на Rust и опубликован с открытым исходным кодом. Его особенность заключается в том, что поиск выполняется по заранее подготовленному индексу, а результаты появляются практически сразу после ввода запроса.

По данным разработчика, в тестах на Mac mini с процессором Apple M4 медианное время поиска файла по имени составило 0,054–0,12 мс в зависимости от используемого набора данных. Это внутренние измерения проекта, а не результаты независимого сравнения со Spotlight. Поэтому говорить о безусловном превосходстве над штатным поиском macOS пока преждевременно.

FSearch умеет находить файлы даже при неправильном написании названия. Алгоритм допускает ошибки в словах, а для запросов длиной от восьми символов поддерживается исправление двух опечаток. В опубликованных тестах вероятность появления нужного файла первым в результатах достигала 93–97% для обычных запросов. При двух опечатках показатели составляли 74–93%. Результат зависит от набора файлов, поэтому переносить эти цифры на любой Mac нельзя.

Вторая возможность связана с поиском внутри файлов. Программа использует индекс текстового содержимого, благодаря которому можно искать фрагменты исходного кода, регулярные выражения и определения символов. Поддерживаются фильтры по расширению, размеру, дате изменения, расположению и состоянию файлов в Git. Это особенно полезно при работе с большими программными проектами, где нужный фрагмент может находиться среди тысяч исходников.

При этом индексируется не любое содержимое. Согласно документации FSearch, обычные текстовые файлы обрабатываются до размера 1 МБ, а внутри Git-репозиториев предел увеличен до 10 МБ. Из поиска по содержимому исключаются некоторые служебные файлы, большие JSON-документы, минифицированные ресурсы и каталоги сборки. Поиск по именам при этом сохраняется. Получается, что FSearch подходит для работы с исходным кодом, однако считать его полноценным поиском по содержимому абсолютно всех документов на диске нельзя.

Для поддержания актуальности индекса используется механизм FSEvents операционной системы macOS. После первоначального сканирования FSearch отслеживает создание, переименование и удаление файлов. В приведенных разработчиком измерениях изменения имен становились видны примерно через 15–18 мс. Сам индекс хранится локально.

Есть и ограничение, связанное с безопасностью macOS. Для поиска в защищенных системных каталогах необходимо предоставить программе Full Disk Access. Без этого разрешения часть файлов будет пропущена. Если исполняемый файл пересобирается, разрешение может потребоваться выдать повторно.

FSearch распространяется с лицензией MIT. Программу можно собрать из исходного кода либо использовать готовую сборку для Apple Silicon. Помимо командной строки предусмотрены библиотека Rust и MCP-сервер, через который функции поиска доступны агентам программирования.

Для обычного владельца Mac препятствием может стать отсутствие привычного графического интерфейса в основном варианте использования. Зато разработчикам, которые постоянно ищут файлы и фрагменты кода в больших проектах, FSearch предлагает конкретные инструменты: исправление опечаток, фильтрацию по Git и быстрый доступ к индексированному содержимому. Насколько заявленные показатели сохраняются на других конфигурациях Mac, еще предстоит проверить независимо.

Источник: GitHub
3 показов