package decompress
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=34a04176a42955ce529a1b57e8b225e7cf63680e49dd8ad05b3fe463bc7863bd
sha512=cfc300cbf620563453ca166e5a53fde3317c8a24ce3010a5cdee080f51cca26c67f658e57bd8feee582c7dcb459a692010b90907ae2e9ba9fe494d5da5d88c13
CHANGES.md.html
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 supportsBigarray
now, notBytes
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 corpustests 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 thanzlib
decompress
is split into 2 main modules:
dd
which implements RFC1951zz
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)Update documentation (@yurug, @dinosaure, #65, #66)
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
andBigstring.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 addRFC1951_{inflate/deflate}
.Move to
jbuilder
/dune
(task from @samoht)Better check on
zlib
headerFixed 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
Change the value of -mode in the dpipe binary
v0.6 2017-05-11 Cao Lãnh (Vietnam)
Fixed bug #29
Produce far pattern (Lz77 compression)
Optimize memory consumption of the Inflate module
Move repository from oklm-wsh to mirage
Learn topkg release
v0.5 2017-02-17 Essaouira (Maroc)
Stabilize the interface (@dbuenzli's interface)
Merge optimization from @yallop
Add
sync_flush
,partial_flush
,full_flush
(experimental)Move the build system to
topkg