openpack 0.1.0

Safe archive-reader for ZIP-derived formats (ZIP, CRX, JAR, APK, IPA) with BOM-safe checks.
Documentation
# openpack

`openpack` reads ZIP-derived archives safely, with built-in anti-abuse checks.

- ZIP
- CRX
- JAR
- APK (`AndroidManifest.xml` parsing under `apk` feature)
- IPA (`Info.plist` parsing under `ipa` feature)

## Install

```toml
[dependencies]
openpack = "0.1"
```

## Features

- `zip` (default): base ZIP archive support
- `crx`: enable CRX handling and ZIP payload offset parsing
- `apk`: parse `AndroidManifest.xml` from APK archives
- `ipa`: parse `Info.plist` from IPA packages

## Quick start

```rust
use openpack::{OpenPack, Limits};

let limits = Limits::default();
let pack = OpenPack::open("/tmp/archive.zip", limits)?;
for entry in pack.entries()? {
    println!("{}", entry.name);
}
let body = pack.read_entry("robots.txt")?;
println!("{}", body.len());
# Ok(())
```

## Safety checks

- Zip-slip path normalization and parent traversal rejection
- max archive size
- max per-entry uncompressed size
- max total uncompressed size
- max entries
- compression ratio limits

## TOML limits

Use `config/limits.toml` as a template for deployment defaults.

```toml
max_archive_size = 268435456
max_entry_uncompressed_size = 52428800
max_total_uncompressed_size = 134217728
max_entries = 2048
max_compression_ratio = 100.0
```