package rfc1951
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=34a04176a42955ce529a1b57e8b225e7cf63680e49dd8ad05b3fe463bc7863bd
sha512=cfc300cbf620563453ca166e5a53fde3317c8a24ce3010a5cdee080f51cca26c67f658e57bd8feee582c7dcb459a692010b90907ae2e9ba9fe494d5da5d88c13
doc/CHANGES.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 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 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
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
- 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