Data compression workplan
Workplan data compression
Current projects in this initiative include zlib, bzip2, xz and zstd.
zlib milestones:
- performance optimization: to strengthen our adoption story, we aim to match zlib-ng performance for both compression and decompression. On standard x86_64 processors, we are within a couple percent of this goal. This work item includes completing or implementing SIMD support for the neon (aarch64), and SSE and avx-512 (x86_64) instruction sets.
- implement remaining functions: the current zlib-rs project misses some functions that are rarely used in practice, but must be provided to be a proper drop-in replacement. The missing functions are tracked in this issue.
- a dynamic library: the
libz-rs
dynamic library defines an interface identical tolibz
, and is a drop-in replacement for that library.
Target funding zlib
: € 175.000,-
bzip2 milestones
- a rust crate that implements bzip2 encoding and decoding, and can be integrated with the rust
bzip2
crate. - a dynamic library: the
libbz2-rs
dynamic library defines an interface identical tolibbz2
, and is a drop-in replacement for that library. It produces byte-for-byte identical output for identical input. - a binary: the
bzip2
binary is written in safe rust and provides bzip2 (de)compression functionality on the command line.
Target funding bzip2
: € 45.000,-
xz milestones:
- a rust crate that implements multi-threaded compression and decompression, and can be integrated with the rust
xz2
crate. - a dynamic library: the
liblzma-rs
dynamic library defines an interface identical toliblzma
, and is a drop-in replacement for that library.
Target funding xz
: € 100.000,-
zstd milestones:
- a rust crate that implements decompression and multi-threaded compression, and can be integrated with the rust
zstd
crate. - a dynamic library: the
libzstd-rs
dynamic library defines an interface identical tolibzstd
, and is a drop-in replacement for that library.
Target funding zstd
: € 175.000,-