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 129/week @ 2024-03-14 121/week @ 2024-03-21 115/week @ 2024-03-28 95/week @ 2024-04-04 73/week @ 2024-04-11 118/week @ 2024-04-18 108/week @ 2024-04-25 124/week @ 2024-05-02 131/week @ 2024-05-09 97/week @ 2024-05-16 124/week @ 2024-05-23 130/week @ 2024-05-30 104/week @ 2024-06-06 93/week @ 2024-06-13 169/week @ 2024-06-20 69/week @ 2024-06-27

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();
}

依赖项