Библиотека для сжатия и распаковки данных в среде 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 |