COOLJAPAN
← All posts

SciRS2 0.1.1 Released — Stabilizing the Pure Rust SciPy Stack

SciRS2 0.1.1, a maintenance release one day after the first stable build — documentation refinements, dependency updates, build improvements and minor fixes on the 100% Pure Rust, OxiBLAS-backed SciPy/NumPy stack. No C, no Fortran.

release scirs2 scientific-computing scipy numpy pure-rust maintenance

Hot on the heels of yesterday’s first stable release, here is the first small patch to keep it tidy.

Today we released SciRS2 0.1.1 — a maintenance release that polishes the first stable build of our Pure Rust SciPy/NumPy stack.

No C. No Fortran. No OpenBLAS. NumPy and SciPy lean on a tower of C and Fortran — OpenBLAS, reference LAPACK, sometimes MKL — that you have to find, build, and link before you can do any math. SciRS2 takes a different path: cargo add scirs2 pulls in everything it needs, no system libraries required, and it compiles down to a single static binary. Linear algebra runs on OxiBLAS, a Pure Rust BLAS/LAPACK, rather than OpenBLAS or MKL. Because there is no native toolchain in the loop, the same code is well positioned for targets like WASM down the line.

Why 0.1.1 matters

Right after a big stable release, the most useful thing the first follow-up can do is harden what just shipped — not pile on new surface. That is exactly what 0.1.1 is. The changes here are deliberately small and incremental:

That is the honest scope. No new modules, no API churn — just a steadier footing under the stack we released yesterday.

Technical Deep Dive: the stack underneath

Since the surface changes in 0.1.1 are small, here is a quick recap of the architecture it stabilizes:

  1. Core layer — scirs2-core. SIMD via the wide crate, parallelism via rayon, plus shared memory and profiling utilities that the rest of the workspace builds on.
  2. Scientific crates on OxiBLAS. scirs2-linalg, scirs2-fft, scirs2-stats, scirs2-optimize, scirs2-integrate, scirs2-interpolate, scirs2-signal, scirs2-sparse, scirs2-spatial, and scirs2-special — SciPy-compatible APIs backed by Pure Rust linear algebra.
  3. AI/ML crates. scirs2-autograd, scirs2-neural, scirs2-graph, scirs2-metrics, scirs2-transform, scirs2-text, scirs2-vision, and scirs2-series for the machine-learning extensions on top.

All told, the project carries roughly 1.68M lines of Rust across 4,727 files, refactored into 150+ modules under our under-2000-line policy, building with zero warnings and around 10,800+ passing tests — the same foundation 0.1.0 established, now a touch more solid.

Getting Started

cargo add scirs2
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,
    ])?;

    // Singular value decomposition (OxiBLAS-backed, Pure Rust)
    let (u, s, vt) = scirs2::linalg::decomposition::svd(&a)?;
    println!("Singular values: {:.4?}", s);

    // Sample from a normal distribution
    let normal = scirs2::stats::distributions::normal::Normal::new(0.0, 1.0)?;
    let samples = normal.random_sample(5, None)?;
    println!("Random samples: {:.4?}", samples);

    Ok(())
}

What’s New in 0.1.1

Tips

This is the foundation

In the young COOLJAPAN ecosystem, SciRS2 is the scientific-computing layer, and it stands on OxiBLAS for its Pure Rust linear algebra. This release keeps that foundation steady so everything built above it has firmer ground.

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

Star the repo if Pure Rust scientific computing is something you want to see grow.

Pure Rust scientific computing is here — fast, safe, and sovereign.

KitaSan at COOLJAPAN OÜ December 30, 2025

↑ Back to all posts