Crate zopfli

source ·
Expand description

A reimplementation of the Zopfli compression library in Rust.

Zopfli is a state of the art DEFLATE compressor that heavily prioritizes compression over speed. It usually compresses much better than other DEFLATE compressors, generating standard DEFLATE streams that can be decompressed with any DEFLATE decompressor, at the cost of being significantly slower.

Features

This crate exposes the following features. You can enable or disable them in your Cargo.toml as needed.

  • gzip (enabled by default): enables support for compression in the gzip format. Implies std.
  • zlib (enabled by default): enables support for compression in the Zlib format. Implies std.
  • std (enabled by default): enables linking against the Rust standard library. When not enabled, the crate is built with the #![no_std] attribute and can be used in any environment where alloc (i.e., a memory allocator) is available. In addition, the crate exposes minimalist versions of the std I/O traits it needs to function, allowing users to implement them. Disabling std requires enabling nightly due to dependencies on unstable language features.
  • nightly: enables performance optimizations that are specific to the nightly Rust toolchain. Currently, this feature improves rustdoc generation and enables the namesake feature on crc32fast and simd-adler32, but this may change in the future.

Structs

  • A DEFLATE encoder powered by the Zopfli algorithm that compresses data written to it to the specified sink. Most users will find using compress easier and more performant.
  • ErrorNon-std
    The error type for I/O operations of the Write trait.
  • Options for the Zopfli compression algorithm.

Enums

  • The type of data blocks to generate for a DEFLATE stream.
  • ErrorKindNon-std
    A list specifying general categories of I/O error.
  • The output file format to use to store data compressed with Zopfli.

Traits

  • WriteNon-std
    A trait for objects which are byte-oriented sinks, modeled after its std::io::Write counterpart.

Functions

  • Compresses data from a source with the Zopfli algorithm, using the specified options, and writes the result to a sink in the defined output format.