rssn: A Comprehensive Scientific Computing Library for Rust
rssn: A Comprehensive Scientific Computing Library for Rust
We are excited to announce the first official release of rssn, a new open-source scientific computing library for Rust. It is licensed under the Apache License, Version 2.0, and is committed to staying free and open-source.
Although still young, rssn is designed to grow rapidly into a powerful and versatile tool for computational science, combining symbolic computation, numerical methods, and physics simulations under one ecosystem.
Part One: Project Overview
The rssn library consists of five major components:
- Symbolic — computer algebra system (CAS) foundations, symbolic differentiation/integration, polynomial algebra, group theory, Lie algebras, PDE/ODE solvers, quantum mechanics operators, graph algorithms, etc.
- Numerical — linear algebra, numerical optimization, integration, probability distributions, combinatorics, fractal geometry, real root finding, FFT, PDE solvers (heat, wave, Schrödinger in 1D–3D), etc.
- Physics — simulation modules covering finite difference/element/volume methods, molecular mechanics (SPH, multigrid, advection–diffusion), electrodynamics (FDTD), fluid dynamics (Navier–Stokes), relativity (geodesics, Schwarzschild orbits), elasticity, and more.
- Output — utilities for pretty-printing, LaTeX/Typset export, plotting (2D/3D surfaces, vector fields, parametric curves), and NumPy-compatible I/O.
- Plugins — optional extensions enabled with the
"full"feature set.
The main goal of rssn is to provide a comprehensive open-source CAS and numerical computing environment in Rust, bridging symbolic reasoning with numerical simulations and physics modeling.
Current version: v0.1.0
Author: Pana Yang (@panayang, ORCID: 0009-0007-2600-0948, email: Pana.Yang@hotmail.com)
Consultants:
- X. Zhang — Algorithm and Informatics (@RheaCherry 3248998213@qq.com)
- Z. Wang — Mathematics
- Y. Li — Physics (xian1360685019@qq.com)
Additional contributors: Owen Yang (yangguangyong@gmail.com)
The crate is available on crates.io and GitHub.
Documentation is hosted on docs.rs and GitHub Pages.
Part Two: Quick Start and Examples
To add rssn to your Rust project:
cargo add rssn
Examples can be found in the project repository, covering both symbolic manipulation and physics/numerical simulations.
Part Three: Future Outlook and Contribution
Roadmap
- v0.1.0 — First public release
- v0.2.0 — Stabilization release
- v0.3.0 — Broader coverage and performance improvements
- v0.4.0 — Optional FFI bindings for high-performance computing; begin development of rsst, a Rust-based scientific scripting toolkit
- v1.0.0 — API stabilization and mature ecosystem
How to Contribute
There are many ways to support and participate in the development of rssn:
💡 Code Contributions
- Bug fixes: Improve code quality and fix open issues.
- Performance improvements: Optimize algorithms and numerical solvers.
- New functionality: Extend modules (e.g., symbolic PDE solvers, advanced statistical models, or new physics simulations).
🧪 Testing
Testing coverage is still limited. Contributions to unit tests, benchmarks, and example-driven validation are highly welcome.
💰 Donations
Scientific computing requires significant computational resources. Donations support:
- Continuous integration and cloud testing
- Website hosting
- AI-assisted development pipelines
We accept sponsorships via GitHub Sponsors and also welcome enterprise-level partnerships. Enterprise sponsors receive priority support and the ability to request features.
Excess funds will be reinvested into upstream Rust projects (e.g., rust-LLVM) and community initiatives.
Part Four: Feature Overview (Excerpt)
Below is a high-level overview of some of the available modules and capabilities.
(For the full list of APIs, please refer to docs.rs/rssn.)
Structs (data structures)
Matrix— general-purpose matrix typePolynomial— symbolic/numeric polynomial representationLinearRegression,Rastrigin,Rosenbrock— optimization utilitiesGraph(both symbolic and numerical)Multivector3D(geometric algebra)- Probability distributions:
BinomialDist,NormalDist,PoissonDist, etc.
Enums (configuration & results)
QuadratureMethod— numerical integration methodsProblemType— optimization problem typesLinearSolution— classification of linear system solutionsBoundaryCondition,Dimensions— physics PDE solversConvergenceResult— symbolic/numeric series convergence
Traits (interfaces)
Field— numeric field trait for linear algebraOdeSystem— interface for ODE systemsDistribution— probability distribution abstraction
Functions (algorithms & solvers)
- Numerical analysis:
gradient,quadrature,fft,convolve,sturm_sequence - Symbolic computation:
differentiate,integrate,solve_ode,solve_pde,grobner_basis - Physics solvers:
solve_1d_schrodinger,solve_2d_schrodinger,solve_heat_equation_2d,simulate_lid_driven_cavity_scenario - Statistics:
mean,variance,two_sample_t_test,correlation
Type Aliases
Array— sparse matrix array representationSimplex— basic unit for computational topologyCsMat— compressed sparse matrix type
Part Five: Conclusion
rssn aims to become a next-generation scientific computing ecosystem in Rust — uniting symbolic mathematics, numerical analysis, and physics simulations with high performance and safety.
We warmly welcome contributions from the community and hope this project will inspire both researchers and developers to build advanced computational tools in Rust.