rumpy
A numpy-compatible Python module implemented in Rust on top of ndarray,
exposed to rustpython-vm as the module numpy.
What it is
Drop-in import numpy as np for embedded RustPython interpreters — no
CPython, no PyO3, no C extension. Pure Rust array core with a Python surface
that matches numpy's API where it makes sense.
Dtypes
bool, int8/16/32/64, uint8/16/32/64, float16/32/64, complex64/128.
Promotion follows numpy.result_type (see src/promote.rs).
Usage
use Interpreter;
let interp = with_init;
interp.enter;
Layout
src/— Rust array core, ops, linalg, fft, npy/npz I/O, indexing, einsum.py-src/— Python shims loaded into thenumpymodule namespace (dtypes, polynomial, testing, etc.).tests/— Rust-side correctness tests, including parity checks against CPython numpy viapyo3.
Features
safe-locks— wraps array storage with a real lock (viarustpython-vm/threading). Off by default; embedders that don't run the VM on multiple OS threads can skip it.
Status
Pre-1.0. The numeric core and most numpy surface area work; gaps and rough edges exist. File issues with a failing snippet.