archive 0.3.1

A unified interface for extracting common archive formats in-memory
Documentation
# archive

[![Crates.io](https://img.shields.io/crates/v/archive.svg)](https://crates.io/crates/archive)
[![Documentation](https://docs.rs/archive/badge.svg)](https://docs.rs/archive)
[![CI](https://github.com/secana/archive/workflows/Archive%20CI/badge.svg)](https://github.com/secana/archive/actions)

A unified, pure-Rust interface for extracting common archive formats in-memory.

    This crate is currently in development and should not be used in production.
    The API may change in future releases.

## Features

- **Unified API**: Single interface for all archive formats
- **In-memory extraction**: No disk I/O required
- **Safety limits**: Protection against zip bombs and resource exhaustion
- **Pure Rust**: Minimal C dependencies (only bzip2)
- **Cross-platform**: Works on Linux, macOS, Windows (x86_64, ARM64)

### Supported Formats

| Format | Extensions | Description |
|--------|------------|-------------|
| **ZIP** | `.zip` | ZIP archives with various compression levels |
| **TAR** | `.tar` | Uncompressed TAR archives |
| **AR** | `.ar` | Uncompressed AR archives |
| **DEB** | `.deb` | Debian packages (which are also AR archives) |
| **TAR.GZ** | `.tar.gz`, `.tgz` | TAR with gzip compression |
| **TAR.BZ2** | `.tar.bz2`, `.tbz2` | TAR with bzip2 compression |
| **TAR.XZ** | `.tar.xz`, `.txz` | TAR with xz/LZMA compression |
| **TAR.ZST** | `.tar.zst` | TAR with Zstandard compression |
| **TAR.LZ4** | `.tar.lz4` | TAR with LZ4 compression |
| **7-Zip** | `.7z` | 7-Zip archives |
| **Single-file** | `.gz`, `.bz2`, `.xz`, `.lz4`, `.zst` | Individual compressed files |

## Generate test archives

To generate the test archives used in this repository, you can use the provided Nix shell. First, ensure you have Nix installed on your system. Then, run the following commands:

```sh
nix run .#generateTestArchives

cargo test
```