Zippity
Library for asynchronously creating a ZIP file on the fly.
Features
- Async, using tokio.
- ZIP is created on the fly, can be directly streamed somewhere, does not need to be stored in RAM or on disk
- Supports Zip64 (files > 4GB).
- File size is known in advance
- Output is driven from outside (implements [
tokio::io::AsyncRead]) - Allows seeking in the file (implements [
tokio::io::AsyncSeek]) - Supports files on the filesystem as entries (feature
tokio-file) - Supports integration with Actix Web (feature
actix-web)
Non-features
These are not currently planned:
- Compression: The zip only uses store method.
- Encryption
- Zip reading
Example
use SeekFrom;
use ;
block_on
Crate features
| Name | Description | Default |
|---|---|---|
tokio-file |
Adds support for FilesystemEntry being used as a entry data, based on Tokio::File. |
yes |
bytes |
Provide method Bytes::into_bytes_stream(). |
no |
actix-web |
Addsactix_web::Reponder implementation to zippity::Reader |
no |
chrono |
Support for setting last modification date and time metadata using types from chrono. |
no |
Current state
The library is fully functional. I'm now waiting for some experience with the final integration into other projects (and perhaps some user feedback) before releasing stable version 1.0.