29个版本 (7个稳定版)

1.1.0 2024年7月7日
1.0.5 2024年3月16日
1.0.4 2022年10月26日
1.0.3 2022年3月23日
0.4.1 2020年7月31日

#21压缩

Download history · Rust 包仓库 2153/week @ 2024-04-25 · Rust 包仓库 3043/week @ 2024-05-02 · Rust 包仓库 2445/week @ 2024-05-09 · Rust 包仓库 1958/week @ 2024-05-16 · Rust 包仓库 2122/week @ 2024-05-23 · Rust 包仓库 2007/week @ 2024-05-30 · Rust 包仓库 2120/week @ 2024-06-06 · Rust 包仓库 1952/week @ 2024-06-13 · Rust 包仓库 1654/week @ 2024-06-20 · Rust 包仓库 1394/week @ 2024-06-27 · Rust 包仓库 2301/week @ 2024-07-04 · Rust 包仓库 2369/week @ 2024-07-11 · Rust 包仓库 2048/week @ 2024-07-18 · Rust 包仓库 2140/week @ 2024-07-25 · Rust 包仓库 2471/week @ 2024-08-01 · Rust 包仓库 2453/week @ 2024-08-08 · Rust 包仓库

9,554 每月下载量
16 个crate中使用了 (11直接使用)

MIT 许可证

440KB
8K SLoC

C 5.5K SLoC // 0.2% comments · Rust 包仓库 Rust 2.5K SLoC · Rust 包仓库 Visual Studio Project 182 SLoC · Rust 包仓库 Visual Studio Solution 25 SLoC · Rust 包仓库
lzzzz

功能齐全的liblz4对Rust的绑定

Crates.io GitHub license Rustdoc Rust


关于

LZ4压缩算法的Rust API。

  • 支持几乎所有的liblz4特性
  • 除了liblz4外没有其他依赖
  • 在Windows / macOS / Linux上进行了测试

用法

将以下内容添加到您的 Cargo.toml

[dependencies]
lzzzz = "1.0.3"

API文档

功能

  • LZ4
    • 压缩(块 / 流式处理)
    • 解压缩(块 / 流式处理)
    • 部分解压缩
    • 自定义字典
  • LZ4_HC
    • 压缩(块 / 流式处理)
    • 部分压缩
    • 自定义字典
  • LZ4F
    • 压缩
    • 解压缩
    • 自定义字典
    • 流式I/O(Read / BufRead / Write

示例

块模式

use lzzzz::{lz4, lz4_hc, lz4f};

let data = b"The quick brown fox jumps over the lazy dog.";

// LZ4 compression
let mut comp = Vec::new();
lz4::compress_to_vec(data, &mut comp, lz4::ACC_LEVEL_DEFAULT)?;

// LZ4_HC compression
let mut comp = Vec::new();
lz4_hc::compress_to_vec(data, &mut comp, lz4_hc::CLEVEL_DEFAULT)?;

// LZ4/LZ4_HC decompression
let mut decomp = vec![0; data.len()];
lz4::decompress(&comp, &mut decomp)?;

// LZ4F compression
let prefs = lz4f::Preferences::default();
let mut comp = Vec::new();
lz4f::compress_to_vec(data, &mut comp, &prefs)?;

// LZ4F decompression
let mut decomp = Vec::new();
lz4f::decompress_to_vec(&comp, &mut decomp)?;

流模式

use lzzzz::{lz4, lz4_hc};

let data = b"The quick brown fox jumps over the lazy dog.";

// LZ4 compression
let mut comp = lz4::Compressor::new()?;
let mut buf = Vec::new();
comp.next_to_vec(data, &mut buf, lz4::ACC_LEVEL_DEFAULT)?;

// LZ4_HC compression
let mut comp = lz4_hc::Compressor::new()?;
let mut buf = Vec::new();
comp.next_to_vec(data, &mut buf)?;

// LZ4/LZ4_HC decompression
let mut decomp = lz4::Decompressor::new()?;
let result = decomp.next(&data, data.len())?;
use lzzzz::lz4f::{WriteCompressor, ReadDecompressor, Preferences};
use std::{fs::File, io::prelude::*};

// LZ4F Write-based compression
let mut f = File::create("foo.lz4")?;
let mut w = WriteCompressor::new(&mut f, Preferences::default())?;
w.write_all(b"Hello world!")?;

// LZ4F Read-based decompression
let mut f = File::open("foo.lz4")?;
let mut r = ReadDecompressor::new(&mut f)?;
let mut buf = Vec::new();
r.read_to_end(&mut buf)?;

无运行时依赖