Brotli is a generic-purpose lossless compression algorithm that compresses data
using a combination of a modern variant of the LZ77 algorithm, Huffman coding
and 2nd order context modeling, with a compression ratio comparable to the best
currently available general-purpose compression methods. It is similar in speed
with deflate but offers more dense compression.
0.8.1:
Add #includes so compilation on OS X and BSDs works.
0.8.0:
CompressionParameters now has a estimated_compression_context_size() method. zstd.estimate_compression_context_size() is now deprecated and slated for removal.
Implemented a lot of fuzzing tests.
CompressionParameters instances now perform extra validation by calling ZSTD_checkCParams() at construction time.
multi_compress_to_buffer() API for compressing multiple inputs as a single operation, as efficiently as possible.
ZSTD_CStream instances are now used across multiple operations on ZstdCompressor instances, resulting in much better performance for APIs that do streaming.
ZSTD_DStream instances are now used across multiple operations on ZstdDecompressor instances, resulting in much better performance for APIs that do streaming.
train_dictionary() now releases the GIL.
Support for training dictionaries using the COVER algorithm.
multi_decompress_to_buffer() API for decompressing multiple frames as a single operation, as efficiently as possible.
Support for multi-threaded compression.
Disable deprecation warnings when compiling CFFI module.
Fixed memory leak in train_dictionary().
Removed DictParameters type.
train_dictionary() now accepts keyword arguments instead of a DictParameters instance to control dictionary generation.
v1.3.2
new : long range mode, using --long command
new : ability to generate and decode magicless frames
changed : maximum nb of threads reduced to 200, to avoid address space exhaustion in 32-bits mode
fix : multi-threading compression works with custom allocators
fix : ZSTD_sizeof_CStream() was over-evaluating memory usage
fix : a rare compression bug when compression generates very large distances and bunch of other conditions (only possible at --ultra -22)
fix : 32-bits build can now decode large offsets (levels 21+)
cli : added LZ4 frame support by default
cli : improved --list output
cli : new : can split input file for dictionary training, using command -B#
cli : new : clean operation artefact on Ctrl-C interruption
cli : fix : do not change /dev/null permissions when using command -t with root access
cli : fix : write file size in header in multiple-files mode
api : added macro ZSTD_COMPRESSBOUND() for static allocation
api : experimental : new advanced decompression API
api : fix : sizeof_CCtx() used to over-estimate
build: fix : no-multithread variant compiles without pool.c dependency
build: better compatibility with reproducible builds
example : added streaming_memory_usage
license : changed /examples license to BSD + GPLv2
license : fix a few header files to reflect new license
py-lz4 provides Python bindings for the LZ4 compression library by Yann
Collet.
At this time the project contains bindings for the LZ4 block format,
which are considered stable.
Support for the LZ4 frame format is a work-in-progress and available as a
technology preview. A future relase will implement support for the LZ4
stream format.
Temporarily remove the zstd buildlink as py-zstandard includes
its own version that it wants to use. Future versions will
support using a system supplied zstd but this one doesn't yet.
Also prevent setup.py from picking up cffi by accident so the
PLIST is stable.
New license : BSD + GPLv2
perf: substantially decreased memory usage in Multi-threading mode
perf: Multi-threading supports up to 256 threads. Cap at 256 when more are requested
cli : improved and fixed --list command
cli : command -vV lists supported formats
build : fixed binary variants
build : fix Visual compilation for non x86/x64 targets
API exp : breaking change : ZSTD_getframeHeader() provides more information
API exp : breaking change : pinned down values of error codes
doc : fixed huffman example
new : contrib/adaptive-compression, I/O driven compression strength
new : contrib/long_distance_matching
updated : contrib/linux-kernel
cli : fix : do not modify /dev/null permissions, reported by @Maokaman1
cli : added GNU separator -- specifying that all following arguments are files
cli : restored -BX command enabling block checksum
API : added LZ4_compress_HC_destSize(), by @remittor
API : added LZ4F_resetDecompressionContext()
API : lz4frame : negative compression levels trigger fast acceleration, request by @llchan
API : lz4frame : can control block checksum and dictionary ID
API : fix : expose obsolete decoding functions, reported by @cyfdecyf
API : experimental : lz4frame_static.h : new dictionary compression API
build : fix : static lib installation, by @ido
build : dragonFlyBSD, OpenBSD, NetBSD supported
build : LZ4_MEMORY_USAGE can be modified at compile time, through external define
doc : Updated LZ4 Frame format to v1.6.0, restoring Dictionary-ID field in header
doc : lz4's API manual in .html format, by @inikep
'--merge' is now able to fix files with thousands of scattered errors
per member by grouping the errors into clusters and then merging the
files as if each cluster were a single error.
The option '-a, --trailing-error' now works with '-l, --list' and
'-D, --range-decompress'.
The output of option '-l, --list' has been simplified to make it easier
to read.
In test mode, lziprecover now continues checking the rest of the files
if any input file is a terminal.
Trailing data are now shown both in hexadecimal and as a string of
printable ASCII characters.
The option '-l, --list' has been ported from lziprecover.
It is now an error to specify two or more different operations in the
command line (--decompress, --list or --test).
Compression time of option '-0' has been slightly reduced.
Decompression time has been reduced by 2%.
In test mode, lzip now continues checking the rest of the files if any
input file is a terminal.
Trailing data are now shown both in hexadecimal and as a string of
printable ASCII characters.
cli : new : `--list` command, by Paul Cruz
cli : changed : xz/lzma support enabled by default
cli : changed : `-t *` continue processing list after a decompression error
API : added : ZSTD_versionString()
API : promoted to stable status : ZSTD_getFrameContentSize(), by Sean Purcell
API exp : new advanced API : ZSTD_compress_generic(), ZSTD_CCtx_setParameter()
API exp : new : API for static or external allocation : ZSTD_initStatic?Ctx()
API exp : added : ZSTD_decompressBegin_usingDDict(), requested by Guy Riddle
API exp : clarified memory estimation / measurement functions.
API exp : changed : strongest strategy renamed ZSTD_btultra, fastest strategy ZSTD_fast set to 1
tools : decodecorpus can generate random dictionary-compressed samples, by Paul Cruz
new : contrib/seekable_format, demo and API, by Sean Purcell
changed : contrib/linux-kernel, updated version and license, by Nick Terrell
- Allocate Zlib data structures outside the OCaml heap for compatibility
with recent versions of Zlib
(Github issue #1, pull request #2, report and fix by Einar Lielmanis).
- Don't pass -L and -I options to the C compiler unless necessary.
- Compile and install the shared library zip.cmxs.
(Contributed by E. Millon.)
- ocamlfind: install under 'zip' and 'camlzip' package names.