5 posts
OxiArc 0.3.5 rewrites the -lh4-/-lh5-/-lh6-/-lh7- codec from a private bitstream format into genuine canonical LHA wire format, validated against real third-party .lzh archives and a live lha (Lhasa) CLI oracle. Also fixes a Miri-flagged CRC UB class, three writer resource leaks, and a CLI exit-code bug. 1,878 tests passing, Pure Rust.
OxiArc 0.3.4 is an interoperability hardening release: spec-conformance defects surfaced by downstream FVRS integration testing were root-caused and fixed across LZMA/LZMA2, bzip2, 7z, ZIP, TAR, XZ, and LZH. Every codec is now validated bidirectionally against liblzma, libbz2, bsdtar/libarchive, and CPython, with hermetic golden-vector regression suites. 1,799 tests passing, Pure Rust.
Pure Rust archive and compression gets faster and broader. OxiArc 0.2.8 adds SIMD CRC32 via aarch64 PMULL and Snappy CRC32C via SSE4.2, ISO 9660 read support with Joliet filenames, byte-for-byte raw-preserve append for ZIP/LZH, progress/cancel builders for LZ4/Zstd/LZMA, and a per-entry memory limit. ~58k SLoC, 1,281 tests, 12 crates.
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.
The first real release of OxiArc: pure Rust archive and compression with 9 crates, 8 compression algorithms, and 10 container formats — ZIP, TAR, GZIP, LZH, XZ, 7z, CAB, LZ4, Zstd, Bzip2 — all reimplemented from scratch. No C, no zlib, no libarchive. ~19,600 lines, 371 tests, Rust 1.85+ / Edition 2024.