Open-source

smfh — декларативное управление файлами по JSON-манифесту

Обзор по документации проекта · Проверено

smfh — изображение проекта

Sleek Manifest File Handler (smfh) — инструмент командной строки и библиотека Rust для декларативного управления файлами. Он позволяет описать желаемое состояние файловой системы в JSON-манифесте, а затем привести её в соответствие с этим описанием. Основное назначение — управление dotfiles и системными конфигурациями, например, с использованием Nix и Hjem, а также для /etc в NixOS.

Возможности и состав проекта

smfh выполняет операции копирования, создания символических ссылок и каталогов, изменения разрешений и удаления по манифесту. В README описаны атомарная замена файлов, проверка BLAKE3 и детерминированный порядок операций, в том числе создание родительских каталогов перед их содержимым.

Начало работы и требования

smfh доступен как CLI-утилита и как библиотека Rust. Для сборки из исходников требуется Rust версии 1.85.0 или выше. Проект использует семантическое версионирование для библиотеки, а формат манифеста имеет собственную версию, при этом инструмент принимает манифесты версий до 3 включительно.

Ограничения и выбор сценария

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

Лицензия и условия использования

GitHub определяет лицензию репозитория как AGPL-3.0. Перед использованием и распространением проверьте полный текст LICENSE и отдельные условия зависимостей, данных или моделей: лицензия репозитория не заменяет их лицензии.

Источники и документация