COOLJAPAN
← All posts

OxiFFT 0.1.2 Released — Windows Packaging Fix Unblocks Cross-Platform Publishing

OxiFFT 0.1.2 is a packaging patch for the Pure Rust FFTW replacement: it removes a stray examples/**/CLAUDE.md path that broke crate unpacking on Windows, restoring clean cross-platform installs and unblocking PyPI publishing for dependent crates like scirs2-python.

release oxifft fft fftw scirs2 pure-rust windows packaging

A one-line packaging fix with an outsized payoff: OxiFFT now installs cleanly on Windows.

Today we released OxiFFT 0.1.2 — a packaging patch for the Pure Rust FFTW replacement that fixes a crate-unpacking failure on Windows.

No C. No Fortran. No FFI.
And now, no platform left behind at install time.
OxiFFT stays a single Pure Rust crate that builds to a static binary — or to WASM.

Why 0.1.2 matters

OxiFFT sits underneath a lot of code — SciRS2, NumRS2, and the Python-facing crates that wrap them. If OxiFFT can’t unpack on a platform, nothing above it can ship there either. That’s exactly what was happening on Windows.

The published package included an examples/**/CLAUDE.md path. Windows does not allow ** as a directory or filename, so unpacking the crate failed with:

The filename, directory name, or volume label syntax is incorrect. (os error 123)

0.1.2 removes that offending path. The fix is tiny, but it restores clean cross-platform installs and — crucially — unblocks PyPI publishing for dependent crates such as scirs2-python, which package OxiFFT transitively and were tripping over the same error on Windows runners.

What’s New in 0.1.2

Fixed

Getting Started

cargo add oxifft

The FFT API is unchanged — a forward then inverse 1D transform:

use oxifft::api::{fft, ifft};
use oxifft::Complex;

fn main() {
    let input: Vec<Complex<f64>> = (0..16)
        .map(|k| Complex::new((k as f64).sin(), 0.0))
        .collect();

    let spectrum = fft(&input);      // time -> frequency
    let recovered = ifft(&spectrum); // frequency -> time

    let max_error: f64 = input
        .iter()
        .zip(&recovered)
        .map(|(a, b)| (a.re - b.re).hypot(a.im - b.im))
        .fold(0.0, f64::max);

    println!("max roundtrip error: {max_error:.2e}");
}

Tips

This is the foundation

OxiFFT is the Pure Rust spectral layer for the SciRS2 numerical stack and the mandated replacement for rustfft, alongside SciRS2, NumRS2, OptiRS, PandRS, OxiBLAS, OxiCode, and same-day siblings OxiArc and OxiZ. Cross-platform packaging is part of being a dependable foundation — and now Windows installs and Python wheels build cleanly on top of it.

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

Star the repo if you want fast, safe FFTs without ever linking FFTW again.

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

KitaSan at COOLJAPAN OÜ January 26, 2026

↑ Back to all posts