Compression Libs
One of the first things almost anyone does to improve performance (specifically bandwidth) is to turn on compression. Luckily compression is well supported in rust.
-
async-compression
Adaptors between compression crates and Rust's modern asynchronous IO types.
-
flate2
DEFLATE compression and decompression exposed as Read/BufRead/Write streams. Supports miniz_oxide and multiple zlib implementations. Supports zlib, gzip, and raw deflate streams.
-
tar
A Rust implementation of a TAR file reader and writer. This library does not currently handle compression, but it is abstract over all I/O readers and writers. Additionally, great lengths are taken to ensure that the entire contents are never required to be entirely resident in memory all at once.
-
inflate
DEFLATE decoding
-
bzip2
Bindings to libbzip2 for bzip2 compression and decompression exposed as Reader/Writer streams.
-
brotli
A brotli compressor and decompressor that with an interface avoiding the rust stdlib. This makes it suitable for embedded devices and kernels. It is designed with a pluggable allocator so that the standard lib's allocator may be employed. The default build also includes a stdlib allocator and stream interface. Disable this with --features=no-stdlib. All included code is safe.
-
snap
A pure Rust implementation of the Snappy compression algorithm. Includes streaming compression and decompression.
-
zip
Library to support the reading and writing of zip files.
-
zstd
Binding for the zstd compression library.
Do you know something we don't?
Did we miss an important crate? Or maybe you just recently launched something that should be listed here, too? Let us know!