Gofis

Gofis — это лёгковесный инструмент командной строки для быстрого поиска файлов в файловой системе.
Он написан на языке Go и активно использует параллелизм (goroutines), что делает его особенно эффективным
при работе с большими директориями и проектами.

Проект доступен на GitHub:
https://github.com/demensdeum/gofis

🧠 Что такое Gofis

Gofis — это CLI-утилита для поиска файлов по имени, расширению или регулярному выражению.
В отличие от классических инструментов вроде find, gofis изначально проектировался
с упором на скорость, читаемый вывод и параллельную обработку каталогов.

Проект распространяется под лицензией MIT и может свободно использоваться
в личных и коммерческих целях.

⚙️ Ключевые возможности

  • Параллельный обход директорий с помощью goroutines
  • Поиск по имени файла и регулярным выражениям
  • Фильтрация по расширениям
  • Игнорирование тяжёлых директорий (.git, node_modules, vendor)
  • Человекочитаемый вывод размеров файлов
  • Минимальные зависимости и быстрая сборка

🚀 Установка

Для работы требуется установленный Go.

git clone https://github.com/demensdeum/gofis
cd gofis
go build -o gofis main.go

После сборки бинарный файл можно использовать напрямую.

Также на странице релизов есть автономная версия для современных версий Windows:
https://github.com/demensdeum/gofis/releases/

🔍 Примеры использования

Поиск файлов по имени:

./gofis -n "config" -e ".yaml" -p ./src

Быстрый позиционный поиск:

./gofis "main" "./projects" 50

Поиск с использованием регулярного выражения:

./gofis "^.*\.ini$" "/"

🧩 Как это работает

В основе gofis лежит конкурентная модель Go:

  • Каждая директория обрабатывается в отдельной goroutine
  • Используется семафор для ограничения количества активных задач
  • Каналы применяются для передачи результатов поиска

Такой подход позволяет эффективно использовать ресурсы CPU
и значительно ускоряет поиск на больших файловых деревьях.

👨‍💻 Кому подойдёт Gofis

  • Разработчикам, работающим с крупными репозиториями
  • DevOps и системным администраторам
  • Пользователям, которым нужен быстрый поиск из терминала
  • Тем, кто изучает практическое применение concurrency в Go

📌 Заключение

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