Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source
v1.0.0 2019-08-30 Paris (France)
** breaking changes **
decompress.1.0.0 is 3 times faster about decompression than before. A huge amount of work was done to improve performance and coverage.
The main reason to update the API is to fix a bad design decision regarding split compression and encoding. User is able to implement a new compression algorithm and use it.
Release comes with regressions:
decompress only supports Bigarray now, not Bytes
GZIP layer does not exist anymore
state of RFC1951 encoder/decoder is not referentially transparent anymore
Of course, v1.0.0 comes with fixes and improvements:
decompress is able to compress/uncompress Calgary corpus
tests are improved and they include all coverage tests from zlib
compression algorithm has a fuzzer
encoder has a fuzzer
performance about decoder is 3 times better than decompress.v0.9.0 and 3 times slower than zlib
decompress is split into 2 main modules:
dd which implements RFC1951
zz which implements ZLIB
API of them are pretty-close to what decompress.v0.9.0 does with some advantages on dd:
User can use their own compression algorithm instead of Dd.L
encoder exposes more granular control over what it emits (which block, when, where)
Huffman tree generation is out of dd
As a response to #25, dd provides a higher level API resembling camlzip.
v0.9.0 2019-07-10 Paris (France)
Add support of 4.07 and 4.08 in Travis (@XVilka, @dinosaure, #70, #71)
Use mmap (@XVilka, @dinosaure, @hannesm, #68, #69, #71)
Micro-optimization about specialization (@dinosaure, #64)
Re-organize internals of decompress (@dinosaure, #63)
GZIP support (@clecat, review by @dinosaure, @cfcs, @hannesm, #60)
fix #58 (@dinosaure)
v0.8.1 2018-10-16 Paris (France)
Dunify project (@dinosaure)
breaking-change Unbox Bytes.t and Bigstring.t as I/O buffer (@dinosaure)
Add foreign tests vectors (@cfcs, @dinosaure)
Catch invalid distance (@XVilka, @dinosaure)
Better check on dictionaries (@XVilka, @dinosaure)
breaking-change Add [wbits] argument to check Window size on RFC1951 (@XVilka, @dinosaure)
v0.8 2018-07-09 Paris (France)
Implementation of RFC1951 (task from @cfcs)
breaking change New interface of decompress
We wrap API in Zlib_{inflate/deflate} and add RFC1951_{inflate/deflate}.
Move to jbuilder/dune (task from @samoht)
Better check on zlib header
Fixed infinite loop (task fron @cfcs)
See 2e3af68, decompress has an infinite loop when the inflated dictionary does not provide any bindings (and length of opcode is <= 0). In this case, decompress expects an empty input and provide an empty output in any case.
Use re.1.7.2 on tests
Use camlzip.1.07 on tests
v0.7 2017-10-18 Paris (France)
Fixed Inflate.write function
Fixed internal state to stick in a internal final state
Fixed compilation with js_of_ocaml (use trampoline function to avoid stack-overflow)
Fixed clash of name about state variable in the Inflate module
Add afl program
Export Adler-32 modules
Add -i and -o option in the dpipe binary to inform the size of the internal chunk