COOLJAPAN
← All posts

OptiRS 0.3.1 Released — A Polish Patch on the 0.3.0 Optimizer Suite, with First-Class WASM Docs

OptiRS is the Pure Rust ML optimizer suite — 22 optimizers across 7 crates — built on SciRS2. 0.3.1 is a maintenance patch: version sync across every crate's doc comments, a new optirs-wasm README, and fixed stale version strings. Honest housekeeping on top of 0.3.0.

release optirs ml-optimization scirs2 adam wasm pure-rust machine-learning optimizer

A release is only as trustworthy as the version strings in its docs — so we fixed them all.

Today we released OptiRS 0.3.1 — a maintenance patch that synchronizes documentation versions across the suite and ships a dedicated README for the WebAssembly bindings crate.

OptiRS is the Pure Rust ML Optimization Suite Powered by SciRS2. No Python. No PyTorch optimizers. No external crates. Where you would reach for torch.optim, optax, or a fragile C++/CUDA optimizer kernel, OptiRS gives you the same algorithms — Adam, SGD, K-FAC, L-BFGS — implemented strictly on top of scirs2-core. The rule is exact: only scirs2-core for arrays, RNG, and parallelism — no direct ndarray, rand, rayon, or wide. The result compiles to a single static binary (or WASM) — and with 0.3.1 the WASM path is now properly documented, so deploying optimizers to the browser or the edge is a first-class, written-down workflow rather than tribal knowledge.

Why 0.3.1 matters

Nine days ago, OptiRS 0.3.0 brought the big feature wave: the meta-learning optimizers, the structured-sparsity regularizers, the continual-learning and NAS crates. 0.3.1 is the cleanup that makes that release trustworthy.

When you ship a wave of features, version strings drift. Doc comments still say 0.1.0. The README claims one thing, the lib.rs headers claim another. 0.3.1 closes that gap: every crate’s documentation now reports the correct version, and the WebAssembly bindings crate — optirs-wasm — finally has a real README. That single document turns browser/edge deployment from an undocumented capability into a first-class, supported path.

The substance carried over from 0.3.0 is still all there: 22 optimizers spanning first-order SGD through second-order K-FAC, organized into 7 crates, with SIMD, parallel, and GPU acceleration. None of that changed. What changed in 0.3.1 is narrow and deliberate — the documentation and version sync, plus that new WASM README. This is housekeeping, and it is the good kind.

Technical Deep Dive: The Crate Layout

OptiRS is split into 7 crates, each with a clear job, all riding on the SciRS2 v0.4.0 line as of this release.

Across all 7 crates the suite carries 1,249 unit tests plus 82 doc tests, all passing. The optirs-wasm crate contributes 29 of those tests and remains Alpha — but with this release it is a documented Alpha, not a silent one.

Getting Started

Add OptiRS and its required foundation:

cargo add optirs-core scirs2-core

Or pin them in your [dependencies]:

optirs-core = "0.3.1"
scirs2-core = "0.4.0"  # required foundation

A minimal optimizer step — the API is unchanged from 0.3.0:

use optirs_core::optimizers::{Adam, Optimizer};
// ALWAYS use scirs2_core for arrays — NEVER direct ndarray!
use scirs2_core::ndarray::Array1;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let params = Array1::from_vec(vec![1.0, 2.0, 3.0, 4.0]);
    let gradients = Array1::from_vec(vec![0.1, 0.2, 0.15, 0.08]);

    let mut optimizer = Adam::new(0.001);
    let updated_params = optimizer.step(&params, &gradients)?;

    println!("Updated parameters: {:?}", updated_params);
    Ok(())
}

What’s New in 0.3.1

This is a patch — the list is short on purpose.

Tips

This is the foundation

OptiRS is the mature optimizer layer of a now-broad COOLJAPAN ML and scientific stack, anchored on SciRS2 (its foundation, now on the 0.4.0 line). It is the torch.optim/optax-class companion to the rest of the ecosystem: ToRSh (deep learning, PyTorch-class — OptiRS is its optimizer companion), SkleaRS (scikit-learn-class), TenfloweRS, and TrustformeRS (transformers). Around them sit NumRS2, PandRS, OxiBLAS, Oxicode, OxiFFT, OxiZ, OxiARC, OxiMedia (media + CV), OxiGDAL, OxiLean, Legalis-RS, and OxiRAG — a coherent, Pure Rust scientific computing platform where every layer extends SciRS2 rather than bolting on a foreign runtime.

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

Star the repo if you want your optimizers — and your docs — to tell the truth about which version you’re running. 0.3.1 is small, but small and honest is exactly what a release after a big one should be.

KitaSan at COOLJAPAN OÜ March 27, 2026

↑ Back to all posts