6 个版本

0.1.5 2019年11月15日
0.1.4 2019年6月6日
0.1.3 2018年12月26日
0.1.2 2018年7月22日
0.1.0 2018年3月23日

#394压缩

Download history • Rust 包仓库 129/week @ 2024-03-14 • Rust 包仓库 121/week @ 2024-03-21 • Rust 包仓库 115/week @ 2024-03-28 • Rust 包仓库 95/week @ 2024-04-04 • Rust 包仓库 73/week @ 2024-04-11 • Rust 包仓库 118/week @ 2024-04-18 • Rust 包仓库 108/week @ 2024-04-25 • Rust 包仓库 124/week @ 2024-05-02 • Rust 包仓库 131/week @ 2024-05-09 • Rust 包仓库 97/week @ 2024-05-16 • Rust 包仓库 124/week @ 2024-05-23 • Rust 包仓库 130/week @ 2024-05-30 • Rust 包仓库 104/week @ 2024-06-06 • Rust 包仓库 93/week @ 2024-06-13 • Rust 包仓库 169/week @ 2024-06-20 • Rust 包仓库 69/week @ 2024-06-27 • Rust 包仓库

458 每月下载量
8 个crate(3个直接使用) 中使用

MPL-2.0 许可证

1MB
9K SLoC

压缩

crates.io badge Build Status docs.rs Coverage Status

由纯 Rust 实现的压缩库。

[dependencies]
compression = "0.1"

功能

  • deflate - 默认启用。

  • gzip - 默认启用。

  • zlib - 默认启用。

  • bzip2 - 默认启用。

  • lzhuf - 默认禁用。

  • lzss - 默认启用。

  • std - 默认情况下,compression 依赖于 libstd。但是,它可以配置为使用不稳定的 liballoc API,用于在具有 liballoc 但没有 libstd 的平台上使用。此配置目前是不稳定的,并不保证在 Rust 的所有版本上都能工作。要在不使用 libstd 的情况下依赖 compression,请在 Cargo.toml 的 compression 部分使用 default-features = false 来禁用其 "std" 功能。

示例

use compression::prelude::*;

fn main() {
    let compressed = b"aabbaabbaabbaabb\n"
        .into_iter()
        .cloned()
        .encode(&mut BZip2Encoder::new(9), Action::Finish)
        .collect::<Result<Vec<_>, _>>()
        .unwrap();

    let decompressed = compressed
        .iter()
        .cloned()
        .decode(&mut BZip2Decoder::new())
        .collect::<Result<Vec<_>, _>>()
        .unwrap();
}

依赖项