SciForge
A comprehensive scientific computing library written in pure Rust.
Overview
SciForge provides a wide range of scientific computing tools spanning mathematics, physics, chemistry, biology, geology, astronomy, and meteorology — all in a single, dependency-free Rust crate.
- Zero external dependencies
- 575 source files — 48 600+ lines of Rust
- 94 tests — zero clippy warnings
- 118 elements — full periodic table dataset (IUPAC 2024)
Modules
| Module | Submodules | Description |
|---|---|---|
| Constants | 5 | Fundamental, astrophysical, atomic constants, unit conversions, element data |
| Mathematics | 17 | Complex numbers, tensors, linear algebra, FFT, ODE/PDE solvers, statistics, optimization |
| Physics | 11 | Relativity, quantum mechanics, thermodynamics, electrodynamics, optics, acoustics |
| Chemistry | 26 | Kinetics, electrochemistry, organic/inorganic, spectroscopy, polymers, quantum chemistry |
| Biology | 44 | Genetics, neuroscience, ecology, evolution, pharmacology, genomics, proteomics |
| Geology | 4 | Seismology, radiometric dating, petrology, plate tectonics |
| Astronomy | 4 | Orbital mechanics, stellar astrophysics, cosmology, celestial mechanics |
| Meteorology | 4 | Atmospheric modeling, radiation transfer, dynamics, precipitation |
| Hub | 5 | Central dispatch API, domain engine, tools, prelude |
| Benchmark | 6 | Benchmark engine, binary encode/decode, simulation, reporting, multi-format export |
| Parser | 5 | CSV, JSON, YAML, Markdown, HTML parsing and validation |
Quick Start
Add SciForge to your Cargo.toml:
[]
= "0.0.1"
Example
use BenchmarkMetrics;
use csv;
use json;
Benchmark Export
The benchmark module generates a complete interactive HTML dashboard featuring:
- IUPAC 2024 periodic table grid with category-colored gradient cells
- Click-to-detail element cards with full metrics
- SVG chart visualizations (category distribution, timing analysis, top 10 fastest/slowest)
- Tabbed file browser for CSV, JSON, YAML, TOML exports
- Markdown summary report
Periodic Table Data
118 element data files organized by IUPAC category under tableau-periodique/:
tableau-periodique/
├── actinides/
├── elements-superlourds/
├── gaz-nobles/
├── halogenes/
├── lanthanides/
├── metalloides/
├── metaux-alcalino-terreux/
├── metaux-alcalins/
├── metaux-de-transition/
├── metaux-post-transition/
└── non-metaux/
Building
Testing
94 tests (28 benchmark + 66 parser), all passing.
Linting
Zero warnings.
Project Structure
src/
├── lib.rs
├── constants/ # Physical constants and element data
├── maths/ # Mathematical computing (17 submodules)
├── physics/ # Physics simulations (11 submodules)
├── chemistry/ # Chemical modeling (26 submodules)
├── biology/ # Biological computing (44 submodules)
├── geology/ # Earth sciences (4 submodules)
├── astronomy/ # Astrophysics (4 submodules)
├── meteorology/ # Atmospheric sciences (4 submodules)
├── hub/ # Central dispatch API
├── benchmark/ # Benchmarking and export pipeline
└── parser/ # Multi-format file parsing
tests/
├── benchmark.rs # 28 benchmark tests
└── parser.rs # 66 parser tests
tableau-periodique/ # 118 element data files
Contributing
See Contributing.md for guidelines.
Roadmap
See ComingSoon.md for upcoming features and development plans.
Changelog
See ChangeLog.md for version history.