7个版本
0.3.2 | 2022年5月16日 |
---|---|
0.3.1 | 2021年6月18日 |
0.2.1 | 2021年6月8日 |
0.2.0 | 2021年5月12日 |
0.1.0 | 2020年6月27日 |
在压缩类别下排名471
每月下载量40次
605KB
15K SLoC
ages-ice-archive: Rust的ICE存档库
用于加载和写入ICE存档的类型。
ICE是SEGA的《幻想之星Online 2》使用的资产存储格式,其名称来源于其头部中的魔法前缀。
该crate在WebAssembly上应该可以即用即装。
您也可以通过运行cargo install
来安装此crate,以获取从文件系统解包和打包ICE文件的CLI实用程序。这些是此包仓库中的示例,分别命名为agesdeice
和agesice
。
使用方法
添加到您的Cargo.toml
[dependencies]
ages-ice-archive = "0.1"
在您的代码中
use std::fs::File;
use std::error::Error;
use ages_ice_archive::{Group, IceArchive};
fn main() -> Result<(), Box<dyn Error>> {
let file = File::open("my.ice")?;
let mut archive = IceArchive::new(file)?;
archive.unpack_group(Group::Group1)?;
println!("Files in Group 1:");
for f in archive.iter_group(Group::Group1).unwrap() {
if let Ok(name) = f.name() {
println!("\t{} ({} bytes)", name, f.data().len());
} else {
println!("\t(non-ascii file name)");
}
}
archive.unpack_group(Group::Group2)?;
println!("Files in Group 2:");
for f in archive.iter_group(Group::Group2).unwrap() {
if let Ok(name) = f.name() {
println!("\t{} ({} bytes)", name, f.data().len());
} else {
println!("\t(non-ascii file name) ({} bytes)", f.data().len());
}
}
Ok(())
}
许可证
ages-ice-archive
为与Rust公共生态系统兼容而提供双重许可。
ages-ice-archive
根据MIT许可证和Apache许可证(版本2.0)的条款进行分发。
有关详细信息,请参阅LICENSE-APACHE和LICENSE-MIT。
依赖项
~3.5MB
~71K SLoC