Crisper
Архиватор, который правит архив, а не перепаковывает его: собственный формат контейнера с партициями, десять алгоритмов сжатия, шифрование AES, поиск внутри и проверка целостности. Графическое приложение для людей и консольная версия для серверов.
Архив, с которым работают как с папкой
- Правка на месте. Файлы и каталоги добавляются, удаляются, перемещаются и переименовываются внутри готового архива; создаются каталоги и символьные ссылки.
- Партиции. Архив делится на части заданного размера — удобно для носителей и передачи.
- Шифрование AES-128, AES-192 и AES-256 по паролю.
- Сведения об авторе — имя, контакты, авторские права и лицензия хранятся в самом архиве.
- Поиск внутри — нечёткий поиск по именам переживает опечатки: векторный индекс и расстояние Левенштейна.
- Диагностика — проверка целостности и перестроение индексов с подробным журналом.
- Просмотр текстовых файлов прямо из архива, перетаскивание файлов мышью.
- Русский и английский интерфейс.
Десять алгоритмов на выбор
Метод задаётся по умолчанию в настройках и для каждого нового архива: плотнее для хранения, быстрее для обмена. Размеры блоков, кэша и предел размера архива настраиваются.
Для людей и для серверов
Графическое приложение
Файловый менеджер архива: дерево каталогов, панель действий, свойства файлов, настройки сжатия и шифрования, журнал. Windows, macOS и Linux.
Консольная версия и библиотека
Движок danube: сборка под macOS, Linux, FreeBSD, Solaris и Windows, статической или динамической библиотекой. Годится для сценариев, серверов и встраивания в свои программы.
Умный контейнер: файловая система в одном файле
Вторая версия формата — уже не архив, а хранилище: версии, дедупликация, поиск внутри, шифрование на несколько владельцев и подключение как диска. План — двенадцать этапов с критериями приёмки на каждом.
| Свойство | Как устроено |
|---|---|
| Открывается мгновенно | читается только заголовок и корень индекса: 10 млн узлов — меньше 100 мс |
| Правится на месте | индекс с копированием при записи: обрыв питания не рушит прежнюю версию |
| Помнит версии | каждая фиксация — снимок; любой прошлый файл достаётся целиком |
| Хранит повторы один раз | блоки по содержимому, адрес блока — его хеш |
| Переживает поломку | избыточность на уровне партиции, дерево Меркла с подписью корня |
| Подключается как диск | проводник, Finder и любая программа работают с содержимым без извлечения |
Один контейнер — разные права у каждого
Адресное чтение
Автор указывает, кому адресован файл — людям или группам. Кого в списке нет, тот файл не расшифрует: его ключа в контейнере просто нет. На отдельный файл — свой пароль.
Только чтение
Контейнер подписывается ключом автора; получатель читает, но извлечь содержимое не может, если автор запретил. Встроенные просмотрщики и редакторы работают внутри.
История с авторством
Подпись на каждом файле: видно, кто и когда добавил, изменил или удалил. Владелец запрещает трогать своё, другим разрешено добавлять — контроль версий без сервера.
Шифрование — своя библиотека A-NTS: ГОСТ, классика и постквантовый ML-KEM в гибридной схеме. Архив, перехваченный сегодня, не вскрывается завтра.
Найти, не распаковывая
По именам
Нечёткий поиск переживает опечатки — работает в нынешней версии.
По содержимому
Полнотекстовый индекс: кириллица без словарей, подстрока и регулярные выражения — и в контейнере, и по обычным каталогам на диске.
Извлечение по запросу
Из командной строки — не весь контейнер, а результат поиска: файл, маска, тип, всё изменённое после даты или всё, где встречается текст.
Сжатие подбирается под каждый блок в три ступени: уже сжатое кладётся как есть, быстрая проба отсекает бесполезное, текст идёт в плотный кодек, двоичное — в быстрый. Для миллионов мелких файлов контейнер обучает словарь на них же.