COOLJAPAN
← All posts

OxiArc 0.2.0 Released — LZW Lands for TIFF and GIF, Now 10 Crates on crates.io

OxiArc 0.2.0 adds full LZW compression for TIFF and GIF — MSB/LSB bitstreams, variable bit widths — bringing the workspace to 10 pure-Rust crates. Now on crates.io, with a default test suite cut 76% faster (137s → 32s) and 427 passing tests. Pure Rust archive and compression with no C, no zlib, no libarchive.

release oxiarc compression lzw archive zip pure-rust data-processing scirs2

The COOLJAPAN compression layer just grew an image codec.

Today we released OxiArc 0.2.0 — pure Rust archive and compression, now with a full LZW implementation for TIFF and GIF and availability on crates.io.

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.2.0 matters

Handling archives and compression has long meant leaning on heavy native libraries — zlib, libzip, libarchive, 7-zip — with all the baggage that brings:

0.2.0 closes a real gap. LZW is the compression scheme behind GIF and TIFF, and until now a pure-Rust pipeline that touched raster images still had to pull in an outside codec for it. With oxiarc-lzw, that part of the image stack is now sovereign too — and the whole workspace is a cargo install away.

Technical Deep Dive: The New LZW Codec

OxiArc keeps its layered shape — a core layer, codec crates, a container layer, and a CLI — and 0.2.0 slots a new codec crate cleanly into the Codec Layer.

  1. Core Layer (oxiarc-core)
    Shared Compressor/Decompressor traits, CRC-32/64/16 with slicing-by-8, and bitstream utilities. In 0.2.0, oxiarc-lzw now consumes oxiarc-core via workspace = true, tightening dependency management across the tree.

  2. Codec Layer — now joined by oxiarc-lzw, a complete LZW implementation:

    • Both MSB-first and LSB-first bitstreams — the two orderings GIF and TIFF disagree on.
    • Variable bit width — 9–12 bits for TIFF, 2–12 bits for GIF.
    • Configurable TIFF/GIF modes, so you pick the dialect that matches your format.
  3. Container Layer (oxiarc-archive)
    ZIP, TAR, GZIP, LZH, XZ, and friends — the 10-format container set carried forward from 0.1.0.

  4. CLI Layer (oxiarc-cli)
    The unified oxiarc binary, now built and tested with newer tooling.

With LZW in place the workspace reaches 10 crates, and the comprehensive suite grows to 427 tests — all passing, with zero Clippy warnings under -D warnings, zero rustdoc warnings, and a clean security audit (0 vulnerabilities across 131 scanned dependencies).

Getting Started

0.2.0 is on crates.io. Install the CLI:

cargo install oxiarc-cli            # the `oxiarc` CLI

Or pull in just the crates you need as a library:

cargo add oxiarc-archive            # or oxiarc-deflate / oxiarc-lzw / ...

The library API is unchanged and ergonomic:

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 New in 0.2.0

Quality this release: zero Clippy warnings (-D warnings), zero rustdoc warnings, 100% test pass (427/427), and a clean security audit (0 vulnerabilities, 131 dependencies scanned).

Tips

Getting the most out of the new codec and the faster suite:

This is the foundation

OxiArc is the compression and archival backend other COOLJAPAN projects build on. It still depends on no sibling projects — just small, focused Rust crates — so siblings sit on top of it, not beside it.

With LZW in hand, OxiArc now covers the raster-image compression that NumRS2, PandRS, and SciRS2 pipelines run into — GIF and TIFF handling included — alongside the dataset compression and long-term storage they already lean on. It is the quiet data-packaging layer underneath the COOLJAPAN scientific stack.

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Ü February 6, 2026

↑ Back to all posts