找回密码
 立即注册
搜索

[编辑器/功能拓展] 7Zip, lzma, LZ4, fastLZ, zipgzip & brotli multiplatform plugins. 2.8.1

[复制链接]
195 |0
发表于 2023-2-21 11:10:29 | 显示全部楼层 |阅读模式



This is a shared library for Android, iOS*, OSX, Windows, Linux and webGL** to decompress 7z (7zip) files and to compress/decompress zip/gzip (.zip/.gz), LZ4 (.lz4), brotli (.br), fastLZ files and buffers.

* ZIP plugin: iOS/tvOS compilation may require to add the -lz linking flag at Build Settings-> Linking- > Other Linker flags on xcode.

**webGL for flz,lzma & lz4 supports buffers compression/decompression only. Brotli supports buffer decompression. **webGL for zip supports all functions except those that require file system operations.

7ZIP section:
The library serves the scope to have fast decompression of 7z files and compress/decompress lzma files and buffers.
- The library does 7z decompression and not 7z compression.
Compression of lzma alone files is supported.
Passwords are not supported.
- It is about 2.5x times faster then using a c# implementation for 7z decompression.
- You can extract a single file out of the 7z archive.
- If you intend to decompress large files it would be better to use the largeFiles flag.(consumes less ram)
- You can extract the contents of the 7z file keeping its folder structure.
- Ability to get the filenames and file sizes of files in a 7z archive.
- get progress of extraction when the 7zip archive has multiple files.
- get byte level progress of 7z decompression (single or multiple files).
- get byte level progress of lzma compression/decompression.
- Ability to encode/decode to/from .lzma alone format.
- Ability to decode a specific file in a 7z archive to a byte buffer.
- Ability to decode/encode a byte buffer to/from the lzma alone format.**
- Ability to cancel the decompression when the 7z archive has multiple entries.
- Support for unmanaged IntPtr buffers as files. (iOS, Android, MacOSX, Linux)

ZIP section:
Fast zip/gzip/tar/bz2 compression and decompression with a clean and simple interface. Very easy to use. Well commented example and documentation.

The plugin is about 7x times faster in compression speed and 3x times faster in decompression speed compared to SharpZipLib.
- compress/decompress buffers to/from zlib/gzip streams.
- recursive directory compression/decompression.
- compress/decompress single files.
- encryption / decryption.
- append files to existing zip archives.
- compress a buffer and write it or append it to a zip archive.
- get file and size info of all the files or a specific file from a zip archive.
- extract a single file out of a zip archive.
- decompress a file of a zip archive to a byte buffer.
- delete an entry in a zip archive.
- replace an entry in a zip archive.
- get progress of extraction when the zip archive has multiple files.
- get byte level progress of compression (single or multiple files).
- create in Memory zip files and manipulate them from there.
- Support of split zip files compress/decompress (1.zip. 1.z01, 1.z02, ...)
- decompression of split zip archives (in the form of 1.zip, 1.z01, 1.z02, ...)
- ability to discover merged/hidden zip/gzip archives in files or buffers and extract from there.
- bz2/zlib compression-decompression methods. (bz2 method not available for MacOS/iOS/tvOS & webGL)
- buffers can be treated as files. That means if you have a file in www.bytes you can perform operations directly on the buffer.
- support for native file buffers to avoid memory spikes when decompressing from managed buffers.
- support for STORE method when setting level of compression to zero.
- ability to cancel most zip/unzip operations when they are called from a Thread.
- create/decompress gzip files.
- ability to create tar archives from directories or list of files with byte level progress.
- untar and untar entry support with byte level progress.
- compress/decompress of tar.gz, tar.bz2 with progress.
- create and decompress bz2 archives with progress.
- thread safe - utf8 support

LZ4 section:
Fast compression/decompression of files in LZ4 format.
- compress a file into a LZ4 file format.
- decompress an LZ4 file.
- compress a buffer into the LZ4 format.
- decompress an LZ4 compressed buffer into a buffer.
- support for native file buffers to avoid memory spikes when decompressing from managed buffers.

(The plugin provides a solution to store the uncompressed size of a compressed buffer in its footer.)

fastLZ section:
Fast compression/decompression of files in fastLZ format.
- compress a file into a fastlz file format.
- decompress a fastlz file.
- compress a buffer into the fastlz format.
- decompress a fastlz compressed buffer into a buffer.
- support for native file buffers to avoid memory spikes when decompressing from managed buffers.

brotli section:
Fast compression/decompression of files in brotli format.
- compress a file into a brotli file format.
- decompress a brotli file.
- compress a buffer into the brotli format.
- decompress a brotli compressed buffer into a buffer.
- support for native file buffers to avoid memory spikes when decompressing from managed buffers.
- WebGL supports brotli buffer decompression.
(The plugin provides a solution to store the uncompressed size of a compressed buffer in its footer.)
*On all platforms buffers can be treated as files.



这是一个共享库,Android, iOS*, OSX, Windows, Linux和webGL**解压7z (7zip)文件,压缩/解压缩zip/gzip (.zip/.gz), LZ4 (. LZ4), brotli (.br), fastLZ文件和缓冲区。

* ZIP插件:iOS/tvOS编译可能需要在构建设置中添加-lz链接标志->链接-> xcode上的其他链接标志。

**webGL flz,lzma和lz4只支持缓冲压缩/解压。Brotli支持缓冲区解压。**webGL for zip支持所有函数,除了那些需要文件系统操作的函数。

7 zip部分:
该库用于快速解压7z文件和压缩/解压缩lzma文件和缓冲区。
-库执行7z解压缩,而不是7z压缩。
仅支持lzma文件压缩。
不支持设置密码。
-它比使用c#实现的7z解压快2.5倍。
-您可以从7z存档中提取单个文件。
-如果你打算解压缩大文件,最好使用largeFiles标志。(消耗较少公羊)
—您可以提取7z文件的内容,保持其文件夹结构。
-能够在7z存档中获得文件的文件名和文件大小。
-当7zip存档有多个文件时,获取提取进度。
-获取字节级的7z解压进度(单个或多个文件)。
-获取lzma压缩/解压的字节级进度。
-能够编码/解码到/从。lzma单独格式。
-能够解码一个特定的文件在一个7z存档到字节缓冲区。
-能够解码/编码字节缓冲区从lzma单独格式
-当7z存档有多个条目时,可以取消解压。
-支持非托管IntPtr缓冲区作为文件。(iOS、Android、MacOSX、Linux)

邮政编码:
快速zip/gzip/tar/bz2压缩和解压干净和简单的界面。非常容易使用。注释良好的示例和文档。

与SharpZipLib相比,该插件的压缩速度快了7倍,解压速度快了3倍。
-压缩/解压缩缓冲区到zlib/gzip流。
-递归目录压缩/解压。
-压缩/解压缩单个文件。
-加密/解密。
-追加文件到现有的zip档案。
-压缩缓冲区并将其写入或追加到zip存档。
-获取文件和大小的信息的所有文件或一个特定的文件从zip存档。
-从压缩档案中提取一个文件。
—解压压缩文件到字节缓冲区。
-删除压缩文件中的一个条目。
-替换压缩档案中的一个条目。
-当压缩文件有多个文件时,获取解压进度。
-获取字节级的压缩进度(单个或多个文件)。
-在内存中创建zip文件并从那里操作它们。
——支持分裂(1. zip压缩/解压zip文件。1.z01 1。z02,…)
-解压zip文件(格式为1.zip, 1.zip)。z01 1。z02,…)
-能够发现合并/隐藏的zip/gzip档案文件或缓冲区,并从中提取。
—bz2/zlib压缩-解压方法。(bz2方法不适用于MacOS/iOS/tvOS和webGL)
-缓冲区可以作为文件处理。这意味着如果您在www.bytes中有一个文件,您可以直接在缓冲区上执行操作。
-支持本机文件缓冲区,以避免从托管缓冲区解压时内存峰值。
-支持STORE方法时,将压缩级别设置为零。
-能够取消大多数压缩/解压缩操作时,他们被调用的线程。
—创建/解压缩gzip文件。
-能够创建tar档案从目录或文件的字节级进度列表。
- untar和untar条目支持字节级进度。
-压缩/解压缩tar.gz、tar.gz文件。Bz2与进步。
-创建和解压bz2档案与进度。
-线程安全- utf8支持

LZ4部分:
快速压缩/解压缩文件在LZ4格式。
-将文件压缩为LZ4文件格式。
—解压LZ4文件。
-将缓冲区压缩为LZ4格式。
—将LZ4压缩缓冲区解压缩为缓冲区。
-支持本机文件缓冲区,以避免从托管缓冲区解压时内存峰值。

(该插件提供了一个解决方案,将压缩缓冲区的未压缩大小存储在其页脚中。)

fastLZ部分:
fastLZ格式文件的快速压缩/解压缩。
-将文件压缩为fastlz文件格式。
—解压fastlz文件。
-将缓冲区压缩为fastlz格式。
-解压fastlz压缩缓冲区为缓冲区。
-支持本机文件缓冲区,以避免从托管缓冲区解压时内存峰值。

brotli部分:
快速压缩/解压文件在brotli格式。
-将文件压缩为brotli文件格式。
—解压brotli文件。
-将缓冲区压缩为brotli格式。
-将brotli压缩缓冲区解压缩为缓冲区。
-支持本机文件缓冲区,以避免从托管缓冲区解压时内存峰值。
- WebGL支持brotli缓冲区解压缩



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表