10个版本 (5个破坏性更新)

0.9.0 2023年12月8日
0.8.3 2023年10月20日
0.8.1 2023年8月7日
0.8.0 2023年6月11日
0.5.0 2023年3月25日

#229 in 压缩

Download history • Rust 包仓库 4/week @ 2024-04-22 • Rust 包仓库 14/week @ 2024-05-27 • Rust 包仓库 1/week @ 2024-06-03 • Rust 包仓库 1/week @ 2024-06-10 • Rust 包仓库 1/week @ 2024-07-01 • Rust 包仓库 166/week @ 2024-07-29 • Rust 包仓库

每月下载量 166次
2 crates 中使用

LGPL-3.0-only

125KB
2.5K SLoC

C 1.5K SLoC // 0.1% comments • Rust 包仓库 Rust 700 SLoC // 0.0% comments • Rust 包仓库 M4 311 SLoC // 0.5% comments • Rust 包仓库 Automake 56 SLoC // 0.0% comments • Rust 包仓库 Shell 17 SLoC // 0.1% comments • Rust 包仓库

bzip3-rs

这是对 bzip3 的Rust封装。

文档

包特性

  • bundled: 使用捆绑的libbzip3

当前捆绑的bzip3库版本是 kspalaiologos/bzip3@1.3.2.


lib.rs:

BZip3-rs

BZip3对Rust的压缩支持。

BZip3文件结构

[ 魔数 ([u8; 5]) | 块大小 (i32) | block1 | block2 | blockN... ]

每个块的结构:[ 新大小 (i32) | 读取大小 (i32) | 数据 ]

由于来自原始bzip3库的命名,新大小 表示压缩后的数据大小,而 读取大小 表示原始数据大小。

示例

use std::io::Read;
use bzip3::read::{Bz3Decoder, Bz3Encoder};

let data = "hello, world".as_bytes();
let block_size = 100 * 1024; // 100 kiB

let mut compressor = Bz3Encoder::new(data, block_size).unwrap();
let mut decompressor = Bz3Decoder::new(&mut compressor).unwrap();

let mut contents = String::new();
decompressor.read_to_string(&mut contents).unwrap();
assert_eq!(contents, "hello, world");

依赖项

~0.4–2.8MB
~57K SLoC