{"id":14152712,"url":"https://github.com/Majored/rs-async-zip","last_synced_at":"2025-08-05T20:31:41.722Z","repository":{"id":37812995,"uuid":"394926756","full_name":"Majored/rs-async-zip","owner":"Majored","description":"An asynchronous ZIP archive reading/writing crate.","archived":false,"fork":false,"pushed_at":"2024-11-08T12:00:41.000Z","size":748,"stargazers_count":135,"open_issues_count":14,"forks_count":44,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-11-28T07:35:06.030Z","etag":null,"topics":["archive","async","rust","zip"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Majored.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-08-11T08:59:37.000Z","updated_at":"2024-11-05T02:24:54.000Z","dependencies_parsed_at":"2024-09-07T12:51:48.667Z","dependency_job_id":"d484d331-333f-430f-9a52-c99c58169da2","html_url":"https://github.com/Majored/rs-async-zip","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Majored%2Frs-async-zip","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Majored%2Frs-async-zip/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Majored%2Frs-async-zip/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Majored%2Frs-async-zip/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Majored","download_url":"https://codeload.github.com/Majored/rs-async-zip/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228795515,"owners_count":17973435,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["archive","async","rust","zip"],"created_at":"2024-08-17T05:01:41.444Z","updated_at":"2024-12-08T21:31:44.100Z","avatar_url":"https://github.com/Majored.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"# async_zip\n[![Crates.io](https://img.shields.io/crates/v/async_zip?style=flat-square)](https://crates.io/crates/async_zip)\n[![Crates.io](https://img.shields.io/crates/d/async_zip?style=flat-square)](https://crates.io/crates/async_zip)\n[![docs.rs](https://img.shields.io/docsrs/async_zip?style=flat-square)](https://docs.rs/async_zip/)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/actions/workflow/status/Majored/rs-async-zip/ci-linux.yml?branch=main\u0026style=flat-square)](https://github.com/Majored/rs-async-zip/actions?query=branch%3Amain)\n[![GitHub](https://img.shields.io/github/license/Majored/rs-async-zip?style=flat-square)](https://github.com/Majored/rs-async-zip/blob/main/LICENSE)\n\nAn asynchronous ZIP archive reading/writing crate.\n\n## Features\n- A base implementation atop `futures`'s IO traits.\n- An extended implementation atop `tokio`'s IO traits.\n- Support for Stored, Deflate, bzip2, LZMA, zstd, and xz compression methods.\n- Various different reading approaches (seek, stream, filesystem, in-memory buffer, etc).\n- Support for writing complete data (u8 slices) or streams using data descriptors.\n- Initial support for ZIP64 reading and writing.\n- Aims for reasonable [specification](https://github.com/Majored/rs-async-zip/blob/main/SPECIFICATION.md) compliance.\n\n## Installation \u0026 Basic Usage\n\n```toml\n[dependencies]\nasync_zip = { version = \"0.0.17\", features = [\"full\"] }\n```\n\nA (soon to be) extensive list of [examples](https://github.com/Majored/rs-async-zip/tree/main/examples) can be found under the `/examples` directory.\n\n### Feature Flags\n- `full` - Enables all below features.\n- `full-wasm` - Enables all below features that are compatible with WASM.\n- `chrono` - Enables support for parsing dates via `chrono`.\n- `tokio` - Enables support for the `tokio` implementation module.\n- `tokio-fs` - Enables support for the `tokio::fs` reading module.\n- `deflate` - Enables support for the Deflate compression method.\n- `bzip2` - Enables support for the bzip2 compression method.\n- `lzma` - Enables support for the LZMA compression method.\n- `zstd` - Enables support for the zstd compression method.\n- `xz` - Enables support for the xz compression method.\n\n### Reading\n```rust\nuse tokio::{io::BufReader, fs::File};\nuse async_zip::tokio::read::seek::ZipFileReader;\n...\n\nlet mut file = BufReader::new(File::open(\"./Archive.zip\").await?);\nlet mut zip = ZipFileReader::with_tokio(\u0026mut file).await?;\n\nlet mut string = String::new();\nlet mut reader = zip.reader_with_entry(0).await?;\nreader.read_to_string_checked(\u0026mut string).await?;\n\nprintln!(\"{}\", string);\n```\n\n### Writing\n```rust\nuse async_zip::tokio::write::ZipFileWriter;\nuse async_zip::{Compression, ZipEntryBuilder};\nuse tokio::fs::File;\n...\n\nlet mut file = File::create(\"foo.zip\").await?;\nlet mut writer = ZipFileWriter::with_tokio(\u0026mut file);\n\nlet data = b\"This is an example file.\";\nlet builder = ZipEntryBuilder::new(\"bar.txt\".into(), Compression::Deflate);\n\nwriter.write_entry_whole(builder, data).await?;\nwriter.close().await?;\n```\n\n## Contributions\nWhilst I will be continuing to maintain this crate myself, reasonable specification compliance is a huge undertaking for a single individual. As such, contributions will always be encouraged and appreciated.\n\nNo contribution guidelines exist but additions should be developed with readability in mind, with appropriate comments, and make use of `rustfmt`.\n\n## Issues \u0026 Support\nWhether you're wanting to report a bug you've come across during use of this crate or are seeking general help/assistance, please utilise the [issues tracker](https://github.com/Majored/rs-async-zip/issues) and provide as much detail as possible (eg. recreation steps).\n\nI try to respond to issues within a reasonable timeframe.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMajored%2Frs-async-zip","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FMajored%2Frs-async-zip","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMajored%2Frs-async-zip/lists"}