VCOMP = Versatile Compression.
VCOMP is an experimental lossless compression and archive toolkit built around a Rust core. The project combines:
- single-file
.vcompcontainers - multi-file archive workflows
- multiple compression modes and adaptive policies
- preview and inspection features
- password-protected containers and archives
Current repository layout:
vcomp_rs/- Rust core, archive runtime, codecs, security, and testsvcomp_rust/- Python package and bindings for the Rust corevcomp_gui.py- current desktop GUI prototypevcomp_benchmark.py- benchmark and comparison utilityvcomp_prototype.py- legacy Python prototype and reference pathVCOMP_TZ.md- live technical specification and implementation status
Project positioning:
- current state: functional MVP / experimental toolkit
- main strengths: archive workflows, previews, container security, adaptive archive policies
- current gap: the project is not yet a finished 7-Zip-class general-purpose archiver
- target direction: stronger archive compression, richer policies, better UX, and later GUI redesign
The project is released under the root LICENSE.
Important:
- source code is available publicly
- commercial use is not permitted under the default repository license
- in strict OSI terms this is source-available, not an OSI-approved open source license
Current licensing model: PolyForm Noncommercial 1.0.0
This directory is prepared as one monorepo.
- the repository root is initialized as
git vcomp_rs/is now a normal subdirectory of the main repository- publication-related local artifacts were removed and are ignored by .gitignore
Local/private artifacts such as photos, local archives, report outputs, SQLite databases,
temporary smoke directories, Python caches and Rust target/ have already been removed from
this workspace and are now ignored by .gitignore.
Запуск GUI:
cd <repo-root>
python vcomp_gui.pyЕсли python не найден:
py vcomp_gui.pyGUI может работать и без них, но richer preview зависит от дополнительных пакетов:
Pillow— preview изображенийpypdfium2— rendered first-page preview для PDF
Установка:
python -m pip install pillow pypdfium2Текущий GUI — это рабочий prototype/operator UI, а не финальный desktop UX.
Он уже умеет:
CompressDecompressInfoArchive CreateArchive AppendArchive UpdateArchive DeleteArchive ListArchive ExtractArchive Test
Также доступны:
- переключение
Engine(rust/python) для file-based операций ModeиMode policyPreview cache(auto/off) для archive create/update/delete- compact action selector с верхней кнопкой
Run - скрываемые
Advanced settings - archive browser с деревом entry
- панель details
- preview pane
- password field для encrypted
.vcompи encrypted archives - log pane
Для archive-операций GUI использует Rust path.
Окно разделено на блоки:
Action- выбор операции
- верхняя кнопка
Run - краткая подсказка по текущему workflow
- кнопка
Advanced settings
Paths- входной файл/архив
- выходной путь
- global dictionary path
- password
- archive selection
Archive Inputs- показывается только для
Archive Create / Append / Update - список файлов и папок для создания/обновления архива
- показывается только для
Archive Browser- показывается только для archive-browse действий
- дерево содержимого архива
- details panel
- preview panel
OptionsEngineModeMode policyPreview cacheдля архивов- дополнительные codec/storage настройки доступны после
Advanced settings
Log- ход выполнения и ошибки
- скрыт по умолчанию и показывается в
Advanced settings
Action->CompressEngine->rustInput-> исходный файлOutput-> путь к.vcompMode->autoRun
Action->DecompressInput->.vcompOutput-> путь восстановленного файла- если контейнер зашифрован, заполнить
Password Run
Action->InfoInput->.vcompили archive.vcomp- если archive/container concealed, заполнить
Password Run
Action->Archive Create- нажать
Add Folder...вArchive Inputs - выбрать папку, которую нужно упаковать
- GUI автоматически предложит
Outputвидаимя_папки.vcomp, при необходимости его можно поменять - если нужно, можно дополнительно нажать
Add Files... Mode-> обычноautoилиansdictMode policy:fixed— один mode для всех entrytype-aware— базовая policy по типу файлаsmart— улучшенная policy для папок с кодом/текстом; использует обычный baseline mode как основу, а затем при необходимости пробует дополнительные text/code кандидаты (ansbpe,anslz), archive-local shared BPE seeds, group-aware archive-local shared dictionaries (code,config,markup,text) и solid-like grouping для небольшихcode/config/markup/textфайлов. Для shared dictionaries теперь учитывается не только per-entry амортизация, но и реальная group-level цена всей группы; для solid grouping grouped codec выбирается измерением из безопасного набора кандидатов. На наборах из множества похожих небольших text/code файлов режим может переключаться наansgdictили solid-like grouped codec и давать заметно меньший архив
- при необходимости открой
Advanced settingsи поставьPreview cache = off, если нужен более компактный архив без preview cache - при необходимости заполнить
Password Run
Action->Archive ListInput-> архивLoad Archive- смотреть дерево, details и preview
Action->Archive ExtractInput-> архивOutput-> папка назначения- выделить entry в
Archive Browser Run
Action->Archive TestInput-> архив- при необходимости заполнить
Password Run
Текущий preview в GUI:
- text-like files
- изображения через
Pillow - PDF:
- cached preview из архива
- rendered first-page preview, если доступен
pypdfium2 - fallback на text/summary preview
GUI использует одно поле Password для:
- encrypted single-file
.vcomp - encrypted archives
Если архив использует concealed metadata/table (VARCH003), без пароля:
Archive Listне откроет file tableInfoне раскроет содержимое
Текущий GUI:
- рабочий и функциональный
- подходит для MVP и проверки возможностей
- не является финальным UX
Он пока остается:
- монолитным
- action-driven
- без context menu
- без progress/status bar
- с только базовым
Advanced settings, но без полноценногоSimple / AdvancedUX - без drag-and-drop
Целевой UI-roadmap описан в VCOMP_TZ.md.