Compression Zoo
Сжатие данных
Кодеки сжатия высокого коэффициента для 7-Zip плюс безопасный Rust-порт алгоритмов.High-ratio compression codecs for 7-Zip plus a memory-safe Rust port of the algorithms.Кодеки стиснення високого коефіцієнта для 7-Zip плюс безпечний Rust-порт алгоритмів.
О проектеOverviewПро проєкт
Монорепозиторий из двух частей. Первая — четыре кодек-плагина для архиватора 7-Zip: ZPAQ, libbsc, CMIX и Brotli. Они дают 7-Zip алгоритмы сжатия лучше встроенного LZMA2, и каждый проверен десятками тестов на полный цикл сжатие-распаковка.
Вторая часть — безопасный по памяти Rust-порт алгоритмов сжатия и кода самого 7-Zip и LZMA SDK. Здесь принципиально стоит запрет unsafe-кода: старые алгоритмы на C переписываются так, чтобы компилятор Rust исключал целый класс ошибок памяти.
Проект про сжатие данных всерьёз и одновременно про аккуратное портирование легаси-кода на безопасный язык — тема, которая мне отдельно интересна.
A monorepo with two halves. The first — four codec plugins for the 7-Zip archiver: ZPAQ, libbsc, CMIX and Brotli. They give 7-Zip compression algorithms better than the built-in LZMA2, and each is verified by dozens of round-trip tests.
The second half — a memory-safe Rust port of the compression algorithms and of 7-Zip's and the LZMA SDK's own code. An unsafe-code ban is a matter of principle here: old C algorithms are rewritten so the Rust compiler rules out a whole class of memory bugs.
The project is about data compression seriously and at the same time about carefully porting legacy code to a safe language — a theme I find separately interesting.
Монорепозиторій із двох частин. Перша — чотири кодек-плагіни для архіватора 7-Zip: ZPAQ, libbsc, CMIX і Brotli. Кожен перевірений десятками тестів.
Друга частина — безпечний за пам'яттю Rust-порт алгоритмів стиснення та коду самого 7-Zip і LZMA SDK із принциповою забороною unsafe-коду.
Проєкт про стиснення даних усерйоз і про акуратне портування легасі-коду на безпечну мову.
ОсобенностиFeaturesОсобливості
- Четыре кодек-плагина для 7-Zip: ZPAQ, libbsc, CMIX, Brotli
- Сжатие лучше встроенного LZMA2
- Каждый кодек проверен тестами на полный цикл
- Rust-порт алгоритмов 7-Zip и LZMA SDK
- Принципиальный запрет unsafe-кода в порте
- Four codec plugins for 7-Zip: ZPAQ, libbsc, CMIX, Brotli
- Compression better than the built-in LZMA2
- Each codec verified by round-trip tests
- A Rust port of 7-Zip and LZMA SDK algorithms
- A principled unsafe-code ban in the port
- Чотири кодек-плагіни для 7-Zip: ZPAQ, libbsc, CMIX, Brotli
- Стиснення краще за вбудований LZMA2
- Кожен кодек перевірений тестами на повний цикл
- Rust-порт алгоритмів 7-Zip і LZMA SDK
- Принципова заборона unsafe-коду в порті