#apple #data #scheme #image #dmg

adc

Rust实现的Apple数据压缩方案,该方案用于DMG镜像

3个不稳定版本

0.2.1 2020年9月16日
0.2.0 2020年9月14日
0.1.0 2020年7月21日

#400压缩

每月44次下载
用于 dmgwiz

MIT许可证

10KB
182

adc-rs

Build and Testcrates.io

用于DMG镜像等场景的Apple数据压缩方案的本地Rust实现。仅支持解压缩。

文档

# Cargo.toml
[dependencies]
adc = "0.2"

示例

use adc::AdcDecoder;
use std::io::Read;

let input: &[u8] = &[0x83, 0xfe, 0xed, 0xfa, 0xce, 0x00, 0x00, 0x40, 0x00, 0x06];
let mut d = AdcDecoder::new(input);
let mut data = vec![0; 11];
let bytes_out = match d.read_exact(&mut data) {
    Ok(val) => val,
    Err(err) => panic!("error: {:?}", err),
};
println!("{:?} bytes decompressed", bytes_out);

变更日志

0.2.1

  • 修复了两个解码错误

0.2.0

  • 切换到基于Read特质的API(破坏性更改)

0.1.0

  • 首次发布

lib.rs:

Rust中Apple数据压缩方案的实施

ADC是一个相当基本的运行长度压缩方案。此库仅实现解压缩。

示例

use adc::AdcDecoder;
use std::io::Read;

let input: &[u8] = &[0x83, 0xfe, 0xed, 0xfa, 0xce, 0x00, 0x00, 0x40, 0x00, 0x06];
let mut d = AdcDecoder::new(input);
let mut data = vec![0; 11];
let bytes_out = match d.read_exact(&mut data) {
    Ok(val) => val,
    Err(err) => panic!("error: {:?}", err),
};
println!("{:?} bytes decompressed", bytes_out);

依赖项

~120KB