COOLJAPAN
← All posts

SciRS2 0.3.4 Released — A Leaner, 100% Pure Rust Dependency Tree: No zip, No GMP, No Surprises

SciRS2 0.3.4 is the pure-Rust SciPy/NumPy/scikit-learn replacement: 2.59M SLoC, 19,700+ tests, 29 workspace crates. This release upgrades OxiARC to 0.2.5 and purges the last C-library (GMP/MPFR) and the zip crate from the dependency tree for a leaner, smaller-attack-surface, 100% Pure Rust supply chain.

release scirs2 scientific-computing pure-rust numpy scipy supply-chain oxiarc ai

A scientific computing stack is only as trustworthy as the deepest line in its dependency tree.

Today we released SciRS2 0.3.4 — a focused dependency-hygiene release that finishes the job of removing every C/Fortran binding and the zip crate from the tree, leaving a leaner, fully auditable, 100% Pure Rust supply chain.

No C. No Fortran. No NumPy system dependencies. SciRS2 is a pure-Rust replacement for the NumPy/SciPy/scikit-learn stack that compiles to a single static binary — or to WebAssembly — and runs everywhere, with nothing to apt-install, no OpenBLAS to hunt down, and no Fortran toolchain to coax into building. As of 0.3.4, that promise now holds all the way to the bottom of cargo tree.

Why SciRS2 0.3.4 matters

The traditional scientific Python stack hides a sprawling, mostly non-Rust supply chain: wheels that bundle C and Fortran, transitive system libraries you can’t easily audit, and compression and bignum code written in languages your security team can’t reason about. Even Rust projects quietly inherit this debt — a single convenience crate can drag in zip, and a high-precision math helper can pull a GMP/MPFR C binding right back into a “pure Rust” build. The result is slow cold builds, painful cargo audit reviews, and an attack surface that grows with every transitive hop.

0.3.4 attacks that surface directly. Concrete wins, straight from the changelog:

Smaller attack surface. Faster cold builds. A dependency tree where “100% Pure Rust by default” is honored end to end, not just at the top level.

Technical Deep Dive

Three layers carry the weight, and 0.3.4 sharpens each one.

Compression & IO — OxiARC 0.2.5. Every compression codec SciRS2 touches now routes through the oxiarc-* family at 0.2.5: deflate, lz4, zstd, bzip2, snappy, and brotli, all pure Rust. This is what replaced zip/flate2/zstd/bzip2/lz4 in the 0.3.x line — and 0.3.4 closes the last gap by dropping ndarray-npy (and with it, zip) from core IO. The path→crates.io migration for oxiarc-snappy and oxiarc-brotli matters more than it looks: a published dependency means anyone can build SciRS2 reproducibly from crates.io, and SciRS2 itself remains publishable rather than tethered to a local workspace.

Core — scirs2-core. With ndarray-npy (and zip) removed, the core shrinks and stays pure. Memory profiling here already runs through OS-level APIs rather than a C allocator binding (a 0.3.3 change), so the core has no hidden native dependencies. Dangling feature references were cleaned up so the feature graph matches reality.

Numerics — OxiBLAS & OxiFFT. Linear algebra rides on OxiBLAS (pure-Rust BLAS/LAPACK, v0.2.1), replacing OpenBLAS/LAPACK/MKL, and transforms run on OxiFFT (pure-Rust FFT). Decompositions like SVD, QR, and Cholesky are native Rust top to bottom — no Fortran kernel underneath.

Getting Started

Add it to your project:

cargo add scirs2

A quick SVD to prove the numerics are real and the build needs nothing but Cargo:

use scirs2::prelude::*;
use ndarray::Array2;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let a = Array2::from_shape_vec((3, 3), vec![
        1.0, 2.0, 3.0,
        4.0, 5.0, 6.0,
        7.0, 8.0, 9.0,
    ])?;

    let (_u, s, _vt) = scirs2::linalg::decomposition::svd(&a)?;
    println!("Singular values: {:.4?}", s);
    Ok(())
}

Want to see the cleanup with your own eyes? After upgrading, run cargo tree — you will no longer find zip or gmp-mpfr-sys anywhere in the graph.

What’s New in 0.3.4

Dependencies:

Dependency Cleanup:

Still the same production scale: 2.59M SLoC, 19,700+ tests, 29 workspace crates, zero warnings (0 errors, 0 clippy warnings). Production-Ready Pure Rust Scientific Computing • No System Dependencies • 10-100x Performance Gains.

Tips

This is the foundation

SciRS2 sits at the heart of the COOLJAPAN ecosystem of pure-Rust scientific and AI infrastructure. It builds on OxiBLAS (BLAS/LAPACK), OxiFFT (FFT), and OxiCode / the oxiarc compression family (now v0.2.5), and stands alongside ToRSh (deep learning), OxiMedia (media/CV), OxiHuman, OxiGDAL, OxiRAG, Spintronics, NumRS2, PandRS, and OptiRS — a full stack with not a line of C, C++, or Fortran in the default build.

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

Star the repo if you believe scientific computing should be auditable to the last dependency. Pure Rust scientific computing and AI is here — fast, safe, and sovereign.

KitaSan at COOLJAPAN OÜ March 18, 2026

↑ Back to all posts