1个不稳定版本
0.0.12 | 2023年3月10日 |
---|
#608 在 异步
65 每月下载量
82KB
1.5K SLoC
async_zip_futures
由futures-rs
驱动的异步ZIP存档读写crate。
从rs-async-zip
分叉。将tokio
替换为futures-rs
。
特性
- 支持存储压缩方法。
- 支持使用数据描述符写入流。
- 对ZIP64写入的初始支持。
- 旨在实现合理的规范兼容性。
安装与基本用法
[dependencies]
async_zip_futures = { version = "0.0.12", features = ["full"] }
在/examples
目录下可以找到(即将发布的)详细的示例列表。
功能标志
full
- 启用所有以下功能。chrono
- 启用通过chrono
解析日期的支持。
写入
use async_zip_futures::{Compression, ZipEntryBuilder, write::ZipFileWriter, error::ZipError};
use futures::AsyncWriteExt;
use tokio::fs::File;
use tokio_util::compat::TokioAsyncReadCompatExt;
...
let mut file = File::create("foo.zip").await.unwrap().compat();
let mut writer = ZipFileWriter::new(&mut file);
let data = b"This is an example file.";
let builder = ZipEntryBuilder::new(String::from("bar.txt"), Compression::Stored);
let mut entry_writer = writer.write_entry_stream(builder).await.unwrap();
entry_writer.write_all(data).await.unwrap();
entry_writer.close().await.unwrap();
writer.close().await.unwrap();
依赖
~1.1–7MB
~44K SLoC