compcol 0.1.0

A no_std collection of compression algorithms behind a uniform streaming trait, gated per-algorithm by Cargo features.
Documentation
[package]
name        = "compcol"
version     = "0.1.0"
edition     = "2024"
description = "A no_std collection of compression algorithms behind a uniform streaming trait, gated per-algorithm by Cargo features."
license     = "MIT"
repository  = "https://github.com/magicaltux/compcol"
readme      = "README.md"
keywords    = ["compression", "no_std", "embedded"]
categories  = ["compression", "no-std"]

[features]
default = ["alloc", "rle", "deflate", "zlib", "gzip", "factory"]
# Enables `alloc`-backed conveniences (e.g. the `factory` module). Pulled in
# automatically by features that require heap allocation.
alloc   = []
# Runtime by-name lookup that returns boxed trait objects. Requires `alloc`.
factory = ["alloc"]
# Run-length encoding.
rle     = []
# RFC 1951 raw deflate. Requires `alloc` for the 32 KiB sliding window and
# the per-block symbol/bit buffers.
deflate = ["alloc"]
# RFC 1950 zlib (deflate + Adler-32 + 2-byte header / 4-byte trailer).
zlib    = ["deflate"]
# RFC 1952 gzip (deflate + CRC-32 + 10-byte header / 8-byte trailer).
gzip    = ["deflate"]
# LZMA (Lempel–Ziv–Markov chain). Range-coded, depends on alloc for the
# probability tables and the LZ window.
lzma    = ["alloc"]
# LZMA2 chunked wrapper.
lzma2   = ["lzma"]
# xz container around LZMA2 (RFC-style stream/block headers + check codes).
xz      = ["lzma2"]
# Zstandard (RFC 8478).
zstd    = ["alloc"]
# Brotli (RFC 7932). Carries a 170 KiB built-in static dictionary when fully
# implemented; expect a fat .rlib once it is.
brotli  = ["alloc"]
# LZ4 block format.
lz4     = ["alloc"]
# Google Snappy.
snappy  = ["alloc"]
# Lempel–Ziv–Welch (Unix compress / GIF).
lzw     = ["alloc"]

[lints.rust]
unsafe_code = "forbid"

[[bin]]
name             = "compcol"
path             = "src/bin/compcol.rs"
required-features = ["factory"]