COOLJAPAN
← All posts

OxiArc 0.1.0 Released — Pure Rust Archive and Compression, Built from Scratch

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.

release oxiarc archive compression zip tar gzip lzh pure-rust data-processing scirs2

The data archiving and compression foundation of the COOLJAPAN ecosystem is here.

Today we released OxiArc 0.1.0 — the first real release of a complete archive and compression toolkit written entirely in Rust, every codec and container format rebuilt from scratch.

No C. No Fortran. No zlib. No libzip. No libarchive. No 7-zip. 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 (or WASM) and runs everywhere.

Why OxiArc 0.1.0 matters

For decades, handling archives and compression meant depending on battle-tested but heavy native libraries like zlib, libzip, libarchive, or 7-zip.

These tools are powerful but come with real costs:

OxiArc starts to fix that. This is an early but solid debut: ~19,600 lines of pure Rust across 9 crates, 371 passing tests, and a single binary that depends on no native toolchain at all. It implements 8 compression algorithms and reads 10 archive container formats — all from the ground up.

Technical Deep Dive: How We Rebuilt Archive & Compression in Pure Rust

OxiArc uses a clean layered design — a core layer, a set of codec crates, a container layer, and a CLI on top.

  1. Core Layer (oxiarc-core, ~1,800 LoC, 56 tests)
    The shared foundation: Compressor/Decompressor traits, CRC-32 / CRC-64 / CRC-16 (slicing-by-8), and bitstream read/write utilities every codec builds on.

  2. Codec Layer — 8 compression algorithms from scratch:

    • oxiarc-deflate (~2,100 LoC) — DEFLATE (RFC 1951) + GZIP (RFC 1952), Huffman coding + LZ77, levels 0–9.
    • oxiarc-lzhuf (~1,400 LoC) — the LZH archive format, sliding dictionary + static Huffman (lh0–lh7).
    • oxiarc-lzma (~2,000 LoC) — LZMA1 + LZMA2, range coding and an LZ dictionary, plus the XZ format.
    • oxiarc-bzip2 (~1,200 LoC) — BWT + MTF + RLE + Huffman, parallel compression via Rayon, levels 1–9.
    • oxiarc-lz4 (~1,600 LoC) — LZ4 frame format, LZ4-HC, XXHash, parallel.
    • oxiarc-zstd (~2,100 LoC) — Zstandard with FSE + Huffman, parallel.
  3. Container Layer (oxiarc-archive, ~5,600 LoC, 91 tests)
    Format detection plus readers for ZIP, LZH, CAB, GZIP, BZIP2, LZ4, XZ, and ZSTD — 10 container formats in total.

  4. CLI Layer (oxiarc-cli, ~1,800 LoC)
    A unified oxiarc binary: compress/decompress, extract/create, multi-format detection, all from one command.

Quality standards from day one: 100% pure Rust (no C or Fortran), zero unwrap() in production code, fully workspace-based dependency management, targeting Rust 1.85+ and Edition 2024.

Getting Started

OxiArc 0.1.0 is a from-source debut. Clone the repo and build the CLI:

git clone https://github.com/cool-japan/oxiarc
cd oxiarc
cargo build --release
cargo install --path oxiarc-cli   # installs the `oxiarc` binary

Once installed, the CLI handles everything from one command:

oxiarc detect mystery.bin            # auto-identify the format
oxiarc list archive.zip              # list entries
oxiarc extract archive.zip -o out/ -v
oxiarc create backup.tar.zst folder/ # create a Zstd-compressed tar

You can also use the codecs directly as a library via path or git dependencies:

use oxiarc_deflate::{deflate, inflate};
use oxiarc_archive::ZipReader;
use std::fs::File;

let compressed = deflate(b"Hello, World!", 6)?;   // level 0-9
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 inside

The 0.1.0 release lands all nine crates at once:

Tips

A few things worth knowing on day one:

This is the foundation

OxiArc is foundational infrastructure: the compression and archival backend other COOLJAPAN projects build on, not the other way around. Even at 0.1.0 it depends on no sibling projects — just a handful of small Rust crates.

This is the start of the COOLJAPAN data-packaging layer. SciRS2, NumRS2, and PandRS now have a sovereign, pure-Rust backend for dataset compression and long-term storage — the beginning of a scientific stack that never has to reach for zlib or libarchive again.

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

Star the repo if you want high-performance archiving and compression without the traditional native toolchain headaches.

Pure Rust archiving and compression is here — fast, safe, and sovereign.

KitaSan at COOLJAPAN OÜ January 12, 2026

↑ Back to all posts