Библиотека для сжатия и распаковки данных в среде OneScript, поддерживающая алгоритмы LZ4, Snappy, Zstd, Brotli, GZip, ZLib и Deflate.
Реализовано с использованием .NET библиотек EasyCompressor и BrotliSharpLib.
Для установки библиотеки используйте команду:
opm install compressor
Подробное описание программного интерфейса можно найти в документации.
#Использовать compressor
// Примеры упаковки данных
Процедура Упаковать()
Компрессор = Новый GZipКомпрессор();
// Новый DeflateКомпрессор();
// Новый BrotliКомпрессор();
// Новый LZ4Компрессор();
// Новый ZLibКомпрессор();
// Новый ZstdКомпрессор();
// Новый SnappyКомпрессор();
// 1. Сжимаем двоичные данные и получаем результат
УпакованныеДанные = Компрессор.Упаковать(ДвоичныеДанные);
// 2. Сжимаем двоичные данные и записываем в исходящий поток
Компрессор.Упаковать(ДвоичныеДанные, ИсходящийПоток);
// 3. Сжимаем данные из входящего потока и записываем в исходящий поток
Компрессор.Упаковать(ВходящийПоток, ИсходящийПоток);
// 4. Сжимаем данные из входящего потока и получаем двоичные данные
УпакованныеДанные = Компрессор.Упаковать(ВходящийПоток);
КонецПроцедуры
// Примеры распаковки данных
Процедура Распаковать()
Компрессор = Новый GZipКомпрессор();
// 1. Распаковываем двоичные данные и получаем результат
РаспакованныеДанные = Компрессор.Распаковать(ДвоичныеДанные);
// 2. Распаковываем двоичные данные и записываем в исходящий поток
Компрессор.Распаковать(ДвоичныеДанные, ИсходящийПоток);
// 3. Распаковываем данные из входящего потока и записываем в исходящий поток
Компрессор.Распаковать(ВходящийПоток, ИсходящийПоток);
// 4. Распаковываем данные из входящего потока и получаем двоичные данные
РаспакованныеДанные = Компрессор.Распаковать(ВходящийПоток);
КонецПроцедурыБиблиотека протестирована и совместима с различными версиями OneScript на платформах Windows, Linux и MacOS:
| Windows | Linux | MacOS | |||
|---|---|---|---|---|---|
| OneScript 1.9 | OneScript 2.0 | OneScript 1.9 | OneScript 2.0 | OneScript 1.9 | OneScript 2.0 |
| ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
В таблице ниже приведены используемые .NET библиотеки для каждого алгоритма сжатия в зависимости от версии OneScript:
| Алгоритм | OneScript 1.9 | OneScript 2.0 |
|---|---|---|
| GZip | System.IO.Compression | |
| Deflate | System.IO.Compression | |
| Brotli | BrotliSharpLib | System.IO.Compression |
| LZ4 | K4os.Compression.LZ4 | |
| Zlib | DotNetZip | System.IO.Compression |
| Zstd | ZstdSharp | |
| Snappy | Snappier | |