Skip to main content

RustyLab is a high‑performance scientific computing and machine learning library for Python, powered by a pure Rust core and exposed through PyO3.

Project description

RustyLab

Numerical Accuracy Testing License: MIT

🚧 RustyLab is under active development and its functionality is subject to change.

RustyLab is a high-performance scientific computing and machine learning library for Python, written entirely in Rust.

It aims to unify the core functionality of SciPy, statsmodels, and scikit-learn into a single, cohesive Python library with a strong focus on speed, safety, and ergonomics.

RustyLab is built in Rust and exposed to Python using PyO3 and maturin, combining Rust’s performance with Python’s ease of use.


🚀 Why RustyLab?

The Python scientific ecosystem is powerful, but fragmented:

  • Numerical routines live in SciPy;
  • Statistical modelling in statsmodels;
  • Machine learning in scikit-learn;
  • Performance is built on a long-evolving foundation of native implementations and Python APIs.

RustyLab takes a different approach:

  • Pure Rust core - memory safe, fast, and modern;
  • Polars-native data model - designed for full compatibility with Polars;
  • Unified API - statistics, optimization, and ML under one roof;
  • Python bindings - no compromises in usability;
  • Performance by default - zero-cost abstractions and parallelism;
  • Safe & predictable - fewer runtime surprises.
  • Auditable source – all function implementations are readily accessible, with Wiki references pointing to the exact code locations.

📦 Installation

The latest release of the Python client can be installed using pip.

pip install rustylab

📏 Numerical Accuracy

To ensure the highest level of numerical accuracy, all functions in RustyLab are rigorously tested using pytest with pytest.approx. The tests enforce strict tolerance thresholds:

  • Relative tolerance (rel): 1e-12
  • Absolute tolerance (abs): 1e-15

These values are chosen to align with the precision limits of f64 (double-precision) floating-point arithmetic, ensuring that:

  1. Rounding errors are accounted for while maintaining high accuracy.
  2. Edge cases (e.g., near-zero or very large values) are handled robustly.
  3. Consistency with scientific computing standards (e.g., SciPy/NumPy) is maintained.

This approach guarantees that RustyLab’s algorithms deliver reliable and reproducible results across diverse applications, from general-purpose computations to high-precision scientific workloads.

📚 Documentation & Module Reference

RustyLab’s full API documentation is maintained in the project's Wiki, which includes:

  • A structured overview of all available modules.
  • Documentation strings for every public function.
  • Direct links to the corresponding Rust source files.
  • Usage examples.

Explore the documentation here:
👉 RustyLab Wikihttps://codeberg.org/esuriddick/rustylab/wiki

The Wiki is continuously updated as new features are added, making it the best place to understand the library’s capabilities.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

rustylab-0.1.0-cp310-abi3-win_amd64.whl (144.7 kB view details)

Uploaded CPython 3.10+Windows x86-64

rustylab-0.1.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (245.7 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ x86-64

rustylab-0.1.0-cp310-abi3-macosx_11_0_arm64.whl (217.0 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

File details

Details for the file rustylab-0.1.0-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: rustylab-0.1.0-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 144.7 kB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.13 {"installer":{"name":"uv","version":"0.9.13"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Linux Mint","version":"22.3","id":"zena","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for rustylab-0.1.0-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 903a32cda86442d4d1520e472ae9e6b07cafc984915fc02b9f5a9c253ee39711
MD5 1163acadda79c8992273f4cd3141beff
BLAKE2b-256 48f07fa9abd8417939a2db1bed9c5cd1678481ab9ba076fd82681fd9d370647c

See more details on using hashes here.

File details

Details for the file rustylab-0.1.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: rustylab-0.1.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 245.7 kB
  • Tags: CPython 3.10+, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.13 {"installer":{"name":"uv","version":"0.9.13"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Linux Mint","version":"22.3","id":"zena","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for rustylab-0.1.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 00e372bf18fafd051f87c20864ea51f143c8943ee003d765eb1e7670b4891c45
MD5 1e9ee855924735d531c99050980c6ea5
BLAKE2b-256 e44b822a9c786756fe9730be4bde5e6d0a92e3c713b8f977ef3e6617be7ceb76

See more details on using hashes here.

File details

Details for the file rustylab-0.1.0-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

  • Download URL: rustylab-0.1.0-cp310-abi3-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 217.0 kB
  • Tags: CPython 3.10+, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.13 {"installer":{"name":"uv","version":"0.9.13"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Linux Mint","version":"22.3","id":"zena","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for rustylab-0.1.0-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c9c06e2a973e0fe8e87352392485c3836b6925330ae3569ea282b758ff708cf6
MD5 ac99a16b09bf6bafd1c1ecd6409f56bd
BLAKE2b-256 67b50c276826b46e9730613df8d6b574ef430710488db755b79849ef40c8c3e3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page