rssn: A Comprehensive Scientific Computing Library for Rust
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 thefull
feature).
🚀 Quick Start
Add rssn to your Rust project:
Then start exploring:
use differentiate;
use Matrix;
For more examples, see the project repository.
📚 Documentation
- API Docs: docs.rs/rssn
- Project Website: Apich-Organization.github.io/rssn
🗺️ 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.
Updates: Due to temporary issues, GitHub Sponsors is currently unavailable. If you would like to make a donation, please use PayPal to donate to @panayang338.
👥 Maintainers & Contributors
-
Author: Pana Yang (ORCID: 0009-0007-2600-0948, email: Pana.Yang@hotmail.com)
-
Consultants:
- X. Zhang (Algorithm & Informatics, @RheaCherry, 3248998213@qq.com)
- Z. Wang (Mathematics)
- Y. Li (Physics) (xian1360685019@qq.com)
-
Additional contributors: Owen Yang (yangguangyong@gmail.com)
📜 License
Licensed under the Apache 2.0. See LICENSE for details.