COOLJAPAN
← All posts

OxiArc 0.2.7 Released — In-Place Archive Editing Arrives with `oxiarc add`

Pure Rust archive and compression with a new in-place editing workflow. OxiArc 0.2.7 adds the `oxiarc add` command for appending files to existing ZIP/TAR/LZH archives, lenient recovery of malformed archives, async LZH/TAR streaming, cooperative cancellation, colored output, and man pages. 12 formats, 10 codecs, 12 crates, ~47k SLoC, 1,041 tests.

release oxiarc archive compression zip tar lzh cli async pure-rust

The data archiving and compression foundation of the COOLJAPAN ecosystem just got hands-on.

Today we released OxiArc 0.2.7 — a CLI- and operations-focused patch that lets you edit archives in place for the first time.

No C. No Fortran. No zlib. No libarchive. No external shared libraries.
No FFI overhead. No build hell.
Just clean, memory-safe, blazing-fast archiving and compression that compiles to a single static binary and runs everywhere, including WASM.

Why 0.2.7 matters: editing, not just reading and writing

Up to now, OxiArc could create archives and extract them — but changing an existing archive meant unpacking it, dropping in your file, and repacking the whole thing. That round-trip is gone.

OxiArc 0.2.7 introduces the oxiarc add command: append files directly to an existing ZIP, TAR, or LZH archive. It ships with --dry-run so you can preview exactly what an append will do before a single byte is written, and --verbose for per-entry detail.

This release shares the format and codec coverage of 0.2.6 — still 12 archive formats and 10 compression algorithms — because the work here went into operations, robustness, and ergonomics rather than new formats. OxiArc is now feature-complete, tested, and API-stable as of v0.2.7: ~47,303 lines of pure Rust across 12 crates, with 1,041 tests passing.

What’s new

The headline is in-place editing, but 0.2.7 is a broad operational upgrade:

Under the hood, testing expanded too: end-to-end tests for ZIP AES-256 and ZipCrypto encryption, progress/cancellation tests for Brotli, and a fresh batch of CLI integration tests. Dependencies were refreshed to clap 4.6.1 and tokio 1.52.1. As always: zero clippy warnings (-D warnings), zero rustdoc warnings, and full COOLJAPAN policy compliance.

Technical Deep Dive: appending without repacking

The crate layout is what makes in-place editing tractable. oxiarc-archive owns the container formats, and the new LzhExtensions module sits alongside the existing readers/writers to handle the awkward parts of LZH — a format where rewriting entries means carefully managing headers and offsets. For ZIP and TAR, oxiarc add walks the existing structure and appends rather than rebuilds.

The cancellation and progress machinery lives one layer down in oxiarc-core, so it’s shared by every codec and container. A CancellationToken threads through long operations; a ProgressSink receives updates without coupling the codecs (oxiarc-deflate, oxiarc-lzma, oxiarc-lz4, oxiarc-zstd, oxiarc-lzhuf, oxiarc-snappy, oxiarc-brotli) to any particular UI. That’s why the Brotli path could pick up progress and cancellation tests in this release with no special-casing.

Getting Started

Install the CLI:

cargo install oxiarc-cli

Preview an append, then do it for real:

oxiarc add archive.zip newfile.txt --dry-run
oxiarc add archive.zip newfile.txt --verbose

Prefer the library? Add the archive crate and the codec you need:

cargo add oxiarc-archive
cargo add oxiarc-deflate
use oxiarc_deflate::{deflate, inflate};
use oxiarc_archive::ZipReader;
use std::fs::File;

let compressed = deflate(b"Hello, World!", 6)?;
let decompressed = inflate(&compressed)?;

let file = File::open("archive.zip")?;
let mut zip = ZipReader::new(file)?;
for entry in zip.entries() {
    println!("{}: {} bytes", entry.name, entry.size);
}

What’s New in 0.2.7

Tips

This is the foundation

OxiArc is the sovereign archiving and compression backend for the wider COOLJAPAN stack, and in-place editing makes it a better fit for the pipelines that lean on it:

Repository: https://github.com/cool-japan/oxiarc

Star the repo if you want high-performance archiving and compression — now with in-place editing — and none of the traditional native toolchain headaches.

The era of “just use zlib” or “link libarchive” is coming to an end.

KitaSan at COOLJAPAN OÜ April 21, 2026

↑ Back to all posts