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.
Adaptors between compression crates and Rust's modern asynchronous IO types.
DEFLATE compression and decompression exposed as Read/BufRead/Write streams. Supports miniz_oxide, miniz.c, and multiple zlib implementations. Supports zlib, gzip, and raw deflate streams.
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.
Bindings to libbzip2 for bzip2 compression and decompression exposed as Reader/Writer streams.
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.
A pure Rust implementation of the Snappy compression algorithm. Includes streaming compression and decompression.
Library to support the reading and writing of zip files.
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!