rssn 0.1.0

A comprehensive scientific computing library for Rust, aiming for feature parity with NumPy, SciPy, and SymPy.
Documentation

rssn: A Comprehensive Scientific Computing Library for Rust

Crates.io Docs.rs License

rssn is an open-source scientific computing library for Rust, combining symbolic computation, numerical methods, and physics simulations in a single ecosystem.
It is designed to provide a foundation for building a next-generation CAS (Computer Algebra System) and numerical toolkit in Rust.


✨ Features

The library is organized into five major components:

  • Symbolic:
    Computer algebra system foundations, differentiation & integration, group theory, Lie algebras, polynomial algebra, PDE/ODE solvers, Grobner bases, quantum mechanics operators, graph algorithms, and more.

  • Numerical:
    Linear algebra, optimization (Rastrigin, Rosenbrock, Sphere, Linear Regression), numerical integration, probability distributions, FFT, combinatorics, special functions, PDE solvers (heat, wave, Schrödinger 1D–3D), root finding, and statistical analysis.

  • Physics:
    Simulation modules covering FDM/FEM/FVM solvers, multigrid methods, molecular mechanics (SPH), electrodynamics (FDTD), Navier–Stokes fluid dynamics, relativity (geodesics, Schwarzschild), elasticity, quantum simulations, and more.

  • Output:
    Pretty-printing, LaTeX/Typst export, NumPy-compatible I/O, and plotting utilities (2D/3D surfaces, vector fields, parametric curves).

  • Plugins:
    Optional extensions (enabled with the full feature).


🚀 Quick Start

Add rssn to your Rust project:

cargo add rssn

Then start exploring:

use rssn::symbolic::calculus::differentiate;
use rssn::numerical::matrix::Matrix;

fn main() {
    let expr = "x^2 + sin(x)";
    let d = differentiate(expr, "x");
    println!("d/dx of {} = {}", expr, d);

    let m = Matrix::identity(3);
    println!("3x3 Identity Matrix: {:?}", m);
}

For more examples, see the project repository.


📚 Documentation


🗺️ Roadmap

  • v0.1.0 — First public release
  • v0.2.0 — Stabilization release
  • v0.3.0 — Performance improvements & broader coverage
  • v0.4.0 — Optional FFI for HPC, start development of rsst scripting toolkit
  • v1.0.0 — API stabilization

🤝 Contributing

We welcome contributions of all kinds — bug fixes, performance optimizations, new algorithms, and documentation improvements. See CONTRIBUTING.md for detailed guidelines.


💰 Sponsorship & Donations

Scientific computing requires heavy resources for CI/CD, benchmarking, and cloud testing. You can support development via GitHub Sponsors.

Enterprise sponsors will receive:

  • Priority support from the core maintainers
  • Ability to request features
  • Direct collaboration on integration needs

Excess donations will be redirected to upstream Rust ecosystem projects (e.g., rust-LLVM) or community initiatives.


👥 Maintainers & Contributors

  • Author: Pana Yang (ORCID: 0009-0007-2600-0948, email: Pana.Yang@hotmail.com)

  • Consultants:

    • X. Zhang (Algorithm & Informatics, @RheaCherry)
    • Z. Wang (Mathematics)
    • Y. Li (Physics)
  • Additional contributors: Owen Yang


📜 License

Licensed under the Apache 2.0. See LICENSE for details.