COOLJAPAN
← All posts

OxiBLAS 0.2.2 Released — 57 Doctests That Never Ran, Two Constructors That Should Have Been Unsafe, and a Fuzzer for Both Untrusted Parsers

OxiBLAS 0.2.2 is a production-readiness hardening release: a 16-domain multi-agent audit plus adversarial re-verification closes numerical correctness bugs across BLAS/LAPACK/sparse, hardens PackedRef/BandedRef construction to unsafe fn, fixes an integer-overflow bug in the Matrix Market parser, turns 57 of 64 previously-`ignore`d doctests into real executed tests, and adds a libFuzzer harness for both untrusted-input parsers. No breaking API changes outside two now-`unsafe` constructors. Pure Rust BLAS/LAPACK for SciRS2.

release oxiblas blas lapack scirs2 pure-rust soundness fuzzing linear-algebra

A doctest marked ignore isn’t a test. It’s a comment that compiles.

Today we released OxiBLAS 0.2.2 — a production-readiness hardening release. A systematic multi-agent audit swept the entire workspace (oxiblas-core, oxiblas-matrix, oxiblas-blas, oxiblas-lapack, oxiblas-ndarray, oxiblas-sparse), followed by adversarial re-verification of every proposed fix, then a follow-on pass over the audit closure itself for soundness gaps the first pass missed. No public API breaking changes, outside two constructor pairs that are now correctly unsafe fn.

No C. No Fortran. No external shared libraries. No FFI overhead, no build hell. Just clean, memory-safe, blazing-fast linear algebra that compiles to a single static binary and runs everywhere — the mathematical foundation of the COOLJAPAN scientific computing ecosystem.

Why OxiBLAS 0.2.2 is a game changer

The audit found the kind of gaps that don’t show up until someone goes looking for them:

OxiBLAS 0.2.2 closes all of it:

Technical Deep Dive: how the audit was structured

  1. 16 domain auditors + a coverage critic + 4 gap auditors, each assigned a slice of the workspace, surfaced correctness, honesty, and documentation findings independently.
  2. Adversarial re-verification — every proposed fix was checked against the actual bug it claimed to close, not just accepted on the auditor’s word, catching cases where a fix addressed the symptom in one call site but left sibling call sites (the four new CBLAS modules, the wasm32 SIMD lane-index bug) with the identical latent defect.
  3. A follow-on hardening pass over the audit’s own closure — including two pre-existing test bugs the verification pass itself surfaced (test_aarch64_neon_always_present/test_aarch64_neon_always_true asserting NEON unconditionally present without accounting for force-scalar’s limited_to() masking) and an incomplete no_std gate on x86_64 SIMD test code that was invisible to aarch64-host --no-default-features checks until --target x86_64-apple-darwin was added to the verification command.
  4. Workspace hygiene: deny.toml (COOLJAPAN dependency-ban list), rustfmt.toml/clippy.toml, SECURITY.md/CONTRIBUTING.md, four files split back under the workspace’s 2000-line limit, and a new independent fuzz/ workspace with libFuzzer targets for both of the crate’s untrusted-input parsers (mtx_matrix_market, mmap_header).

Getting Started

[dependencies]
oxiblas = "0.2"

# With parallelization
oxiblas = { version = "0.2", features = ["parallel"] }
use oxiblas_blas::level3::gemm;
use oxiblas_matrix::Mat;

let a = Mat::from_rows(&[
    &[1.0, 2.0, 3.0],
    &[4.0, 5.0, 6.0],
]);
let b = Mat::from_rows(&[
    &[7.0, 8.0],
    &[9.0, 10.0],
    &[11.0, 12.0],
]);
let mut c = Mat::zeros(2, 2);

// GEMM: C = A * B
gemm(1.0, a.as_ref(), b.as_ref(), 0.0, c.as_mut());
// Result: [[58, 64], [139, 154]]

What’s New in 0.2.2

Tips

This is the foundation

Correct, panic-free linear algebra with fuzzed untrusted-input parsers matters most for whatever sits underneath a scientific computing stack. SciRS2, NumRS2, ToRSh, TrustFormers, OxiCAD, OxiEDA, OxiMed, OxiEML, OxiAero, and TenFlowers all pin oxiblas-* crates for BLAS/LAPACK/sparse linear algebra.

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

Star the repo if a doctest that actually compiles is the bar every doctest should have cleared from day one.

The era of ignored examples masquerading as documentation is over. Pure Rust linear algebra that’s fast, safe, and sovereign — is here.

KitaSan at COOLJAPAN OÜ August 6, 2026

↑ Back to all posts