SciForge

A comprehensive scientific computing library written in pure Rust โ€” zero dependencies, 11 modules, 48 600+ lines of code.

Rust Edition 2024 MIT License Zero Dependencies 94 Tests Passing
11
Modules
131
Submodules
5074
Public APIs
575
Source Files
48 612
Lines of Code
94
Tests
118
Elements
0
Dependencies

Key Features

โšก
Pure Rust, Zero Dependencies
Built entirely from scratch using only the standard library โ€” no external crates, no hidden costs, fully auditable.
๐Ÿงฌ
11 Scientific Domains
Constants, Mathematics, Physics, Chemistry, Biology, Geology, Astronomy, Meteorology, Hub, Benchmark, and Parser.
๐Ÿงช
5 074 Public APIs
Comprehensive function coverage across all scientific domains โ€” from matrix operations to protein folding, orbital mechanics to enzyme kinetics.
โš›๏ธ
118 Elements โ€” IUPAC 2024
Complete periodic table with atomic mass, electron configuration, isotopes, oxidation states, and physical properties.
๐Ÿ“Š
Benchmark Pipeline
Full engine with encode/decode, simulation, reporting, and interactive HTML export with SVG charts and dark theme.
๐Ÿ“„
Multi-Format Parser
CSV, JSON, YAML, Markdown, and HTML parsing โ€” all from scratch, zero dependencies, with a unified API surface.

Architecture

SciForge is organized into 8 scientific domain modules, a central Hub dispatch, a Benchmark pipeline, and a multi-format Parser โ€” all under a single crate with zero external dependencies.

Module Size (Public APIs)

Constants57Mathematics977Physics636Chemistry462Biology2474Geology44Astronomy49Meteorology44Hub212Benchmark29Parser90

Submodule Distribution

5 17 11 26 44 4 4 4 5 6 5 Constants (5) Mathematics (17) Physics (11) Chemistry (26) Biology (44) Geology (4) Astronomy (4) Meteorology (4) Hub (5) Benchmark (6) Parser (5)

Design Philosophy

Every line of SciForge follows these non-negotiable principles:

  • Zero external dependencies โ€” only std
  • Zero comments โ€” the code speaks for itself
  • Zero clippy warnings โ€” strict lint compliance
  • No #[allow] attributes โ€” ever
  • Rust Edition 2024 โ€” latest language features
  • All tests must pass before any commit
  • Pure functions when possible โ€” minimal side effects
  • No unsafe code โ€” full memory safety guaranteed

All Modules

Constants
5 submodules57 public APIs0 tests
Implemented
Mathematics
17 submodules977 public APIs0 tests
Implemented
Physics
11 submodules636 public APIs0 tests
Implemented
Chemistry
26 submodules462 public APIs0 tests
Implemented
Biology
44 submodules2474 public APIs0 tests
Implemented
Geology
4 submodules44 public APIs0 tests
Implemented
Astronomy
4 submodules49 public APIs0 tests
Implemented
Meteorology
4 submodules44 public APIs0 tests
Implemented
Hub
5 submodules212 public APIs0 tests
Implemented
Benchmark
6 submodules29 public APIs28 tests
Tested
Parser
5 submodules90 public APIs66 tests
Tested

Module Details

ModuleSubmodulesPublic APIsTestsDocumentationSemver
Constants5570
Mathematics179770
Physics116360
Chemistry264620
Biology4424740
Geology4440
Astronomy4490
Meteorology4440
Hub52120
Benchmark62928
Parser59066

Project Progress

Tracking semver validation, documentation coverage, and test coverage across all 11 modules.

18%

Tests

2/11 modules

0%

Documentation

0/11 modules

0%

Semver

0/11 modules

Module Readiness

ModuleSubmodulesPublic APIsTestsDocumentationSemverScore
Constants557โœ— noneโœ— missingโœ— pending0/3
Mathematics17977โœ— noneโœ— missingโœ— pending0/3
Physics11636โœ— noneโœ— missingโœ— pending0/3
Chemistry26462โœ— noneโœ— missingโœ— pending0/3
Biology442474โœ— noneโœ— missingโœ— pending0/3
Geology444โœ— noneโœ— missingโœ— pending0/3
Astronomy449โœ— noneโœ— missingโœ— pending0/3
Meteorology444โœ— noneโœ— missingโœ— pending0/3
Hub5212โœ— noneโœ— missingโœ— pending0/3
Benchmark629โœ“ 28โœ— missingโœ— pending1/3
Parser590โœ“ 66โœ— missingโœ— pending1/3

Milestone Targets

Test Coverage
2 / 11 modules (94 tests)
Documentation
0 / 11 modules
Semver Validation
0 / 11 modules
Total Tests
94 / 1 000 target
Public APIs
5074 / 5 000 target
Periodic Table
118 / 118 elements
Tested Documented Semver Validated Implemented

Project Documentation

Rendered Markdown files from the project root.

SciForge

A comprehensive scientific computing library written in pure Rust.

![License: MIT](LICENSE)

![Rust Edition]()

![Dependencies]()

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

ModuleSubmodulesDescription
Constants5Fundamental, astrophysical, atomic constants, unit conversions, element data
Mathematics17Complex numbers, tensors, linear algebra, FFT, ODE/PDE solvers, statistics, optimization
Physics11Relativity, quantum mechanics, thermodynamics, electrodynamics, optics, acoustics
Chemistry26Kinetics, electrochemistry, organic/inorganic, spectroscopy, polymers, quantum chemistry
Biology44Genetics, neuroscience, ecology, evolution, pharmacology, genomics, proteomics
Geology4Seismology, radiometric dating, petrology, plate tectonics
Astronomy4Orbital mechanics, stellar astrophysics, cosmology, celestial mechanics
Meteorology4Atmospheric modeling, radiation transfer, dynamics, precipitation
Hub5Central dispatch API, domain engine, tools, prelude
Benchmark6Benchmark engine, binary encode/decode, simulation, reporting, multi-format export
Parser5CSV, JSON, YAML, Markdown, HTML parsing and validation

Quick Start

Add SciForge to your Cargo.toml:

[dependencies]
sciforge = "0.0.1"

Example

use sciforge::benchmark::engine::BenchmarkMetrics;
use sciforge::parser::csv;
use sciforge::parser::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

cargo build

Testing

cargo test

94 tests (28 benchmark + 66 parser), all passing.

Linting

cargo clippy

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.

License

MIT

Changelog

All notable changes to SciForge are documented in this file.

[0.0.1] - 2026-03-23

Project Foundation

  • Initialized sciforge crate (Rust edition 2024, zero external dependencies)
  • Established 11-module architecture: constants, maths, physics, chemistry, biology, geology, astronomy, meteorology, benchmark, parser, hub
  • 575 source files, 48 600+ lines of Rust across all modules

Constants

  • Fundamental physical constants (CODATA values)
  • Astrophysical constants
  • Atomic constants
  • Unit conversion factors
  • Full periodic table element data (118 elements)

Mathematics (17 submodules)

  • Complex number arithmetic
  • Tensor, vector, polynomial types
  • Linear algebra and sparse matrix operations
  • Non-Euclidean geometry
  • Graph theory
  • Interpolation and numerical integration
  • ODE and PDE solvers
  • FFT (Fast Fourier Transform)
  • Optimization algorithms
  • Statistics and probability distributions
  • Signal processing

Physics (11 submodules)

  • Special and general relativity
  • Quantum mechanics
  • Thermodynamics
  • Classical electrodynamics
  • Fluid and solid mechanics
  • Optics and acoustics
  • Nucleosynthesis
  • Electronics
  • Materials science

Chemistry (26 submodules)

  • Reaction kinetics and chemical equilibrium
  • Electrochemistry and thermochemistry
  • Molecular and organic/inorganic chemistry
  • Analytical and quantum chemistry
  • Solutions, gas laws, acid-base equilibria
  • Nuclear chemistry and photochemistry
  • Polymers, spectroscopy, surface chemistry
  • Crystallography and stoichiometry
  • Colloids, solid-state, computational chemistry
  • Reaction engineering and transport phenomena
  • Environmental and green chemistry

Biology (44 submodules)

  • Population dynamics, genetics, genomics, proteomics
  • Enzyme kinetics, cell biology, developmental biology
  • Neuroscience, pharmacology, immunology
  • Ecology, evolution, phylogenetics, ethology
  • Biomechanics, biophysics, bioenergetics, biostatistics
  • Structural biology, systems biology, synthetic biology
  • Epigenetics, bioinformatics, biogeography
  • Microbiology, virology, parasitology, mycology
  • Endocrinology, physiology, plant biology, chronobiology
  • Toxicology, radiobiology, cryobiology, nutrition
  • Cancer biology, marine biology, aging, reproduction
  • Stem cell biology, bioelectricity, tissue engineering, paleobiology

Geology (4 submodules)

  • Seismology
  • Radiometric dating
  • Petrology
  • Plate tectonics

Astronomy (4 submodules)

  • Orbital mechanics
  • Stellar astrophysics
  • Cosmology
  • Celestial mechanics

Meteorology (4 submodules)

  • Atmospheric modeling
  • Radiation transfer
  • Atmospheric dynamics
  • Precipitation

Hub

  • Central dispatch API with api, domain, engine, tools submodules
  • Prelude module for ergonomic imports

Benchmark (6 submodules)

  • engine โ€” benchmark runner with BenchmarkMetrics (iterations, timing, throughput)
  • encode / decode โ€” compact binary .bmk format for benchmark results
  • simulation โ€” deterministic benchmark simulation for all 118 elements
  • report โ€” JSON, YAML, TOML report generation with tagged metadata
  • export โ€” multi-format export pipeline:
  • Per-element and aggregate CSV, JSON, YAML, TOML, BMK files
  • Per-category grouped exports
  • Interactive HTML dashboard:
  • IUPAC 2024 periodic table grid (La/Ac in main body, groups 1-18)
  • Dark gradient theme with category-colored element cells
  • Hover zoom, click-to-detail card with full metrics
  • CSV displayed as interactive HTML table
  • SVG chart visualizations (category distribution, timing, top 10 fastest/slowest, statistics)
  • Tabbed file browser for all export formats
  • Legend with gradient swatches
  • Markdown summary report
  • 28 tests covering engine, encode/decode roundtrip, simulation, report, and export

Parser (5 submodules)

  • csv โ€” CSV reader/writer with configurable delimiters and quoting
  • json โ€” JSON parser and validator
  • yaml โ€” YAML parser and validator
  • markdown โ€” Markdown parser and validator
  • html โ€” HTML parser and validator
  • 66 tests covering parsing, validation, edge cases, and file generation
  • Generated sample files: CSV (20 elements), JSON, YAML, Markdown, HTML (dark gradient theme)

Periodic Table Data

  • 118 element data files organized by category under tableau-periodique/:
  • Non-metals, noble gases, halogens, metalloids
  • Alkali metals, alkaline earth metals
  • Transition metals, post-transition metals
  • Lanthanides, actinides, superheavy elements

Testing

  • 94 total tests (28 benchmark + 66 parser), all passing
  • Zero clippy warnings
  • Zero `#[allow]` directives

Coming Soon

SciForge is an ambitious, single-author scientific computing library written in pure Rust (edition 2024, zero dependencies). It aims to provide a comprehensive, reliable, and efficient ecosystem spanning multiple scientific domains.

The project is maintained solely by the author. Contributions, suggestions, and collaboration requests should follow the Contributing guide.

Current State (v0.0.1)

The foundation is in place with 575 source files, 48 600+ lines of Rust, 94 passing tests, and zero clippy warnings.

Implemented Modules

ModuleSubmodulesStatus
Constants5 (fundamental, astro, atomic, units, elements)Implemented
Mathematics17 (complex, tensor, linalg, FFT, ODE, PDE, ...)Implemented
Physics11 (relativity, quantum, thermo, optics, ...)Implemented
Chemistry26 (kinetics, organic, spectroscopy, ...)Implemented
Biology44 (genetics, neuroscience, ecology, ...)Implemented
Geology4 (seismology, dating, petrology, tectonics)Implemented
Astronomy4 (orbits, stellar, cosmology, celestial)Implemented
Meteorology4 (atmosphere, radiation, dynamics, precipitation)Implemented
Hub5 (api, domain, engine, tools, prelude)Implemented
Benchmark6 (engine, encode, decode, simulation, report, export)Implemented + tested
Parser5 (csv, json, yaml, markdown, html)Implemented + tested

Periodic Table Data

118 element data files under tableau-periodique/, organized by IUPAC category (11 groups from non-metals to superheavy elements).

Upcoming Development

Documentation

  • Full API reference with usage examples and expected input/output for every public function
  • Tutorials and guided workflows for simulations, data analysis, and cross-domain computations
  • Module-level guides explaining the scientific models behind each implementation

Extended Testing

  • Unit and integration tests for all scientific modules (constants, maths, physics, chemistry, biology, geology, astronomy, meteorology)
  • Property-based testing and edge-case validation
  • Cross-module integration tests

Hub Expansion

  • Unified dispatch API connecting all modules through the Hub
  • Prelude with ergonomic re-exports for common use cases
  • Domain-specific query engines and tool pipelines

Computational Enhancements

  • Performance benchmarking across all scientific modules
  • Memory-optimized data structures for large-scale simulations
  • Deterministic, reproducible execution paths

Future Modules and Features

  • Interactive visualization utilities
  • Extended cross-domain analysis tools (e.g., astrochemistry, geophysics, bioinformatics pipelines)
  • Additional export formats and reporting capabilities
  • Automated validation pipelines for scientific correctness

Note

Modules, examples, and documentation will be released progressively. Follow updates and participate in shaping SciForge by providing feedback via the Contributing guide.

SciForge aims to become a trusted, high-quality platform for scientific computing, exploration, and education โ€” fully auditable, reproducible, and dependency-free.

Contributing to SciForge

**Email:** The email associated with my [crates.io] account : https://crates.io/users/rayanmorel4498-ai

Discord: The official discod's servor ascociated wiith the SciForge project : https://discord.gg/PtEHcJAruj

Project Overview

SciForge is a pure Rust (edition 2024) scientific computing library with zero external dependencies. It currently spans 11 modules, 575 source files, and 48 600+ lines of code covering mathematics, physics, chemistry, biology, geology, astronomy, meteorology, benchmarking, parsing, and a central hub.

How to Contribute

  1. Propose your change or idea โ€” describe the problem you want to solve or the improvement you envision.
  2. Include your suggestions for APIs โ€” indicate what functions, structs, or modules you think are necessary or redundant.
  3. Provide examples or code snippets where possible โ€” even small snippets or pseudocode help.

I will review your proposal and provide feedback. If approved, we can coordinate how to integrate it.

Types of Contributions

  • Bug fixes โ€” identify and propose solutions to issues.
  • Optimizations โ€” suggest ways to improve performance, memory usage, or runtime behavior.
  • New features โ€” propose additional analysis capabilities, APIs, or tools.
  • Documentation โ€” help clarify usage, examples, or internal logic.
  • Testing โ€” provide sample files, expected outputs, or validation scripts.
  • Logo & visual identity โ€” if you can improve or refine the SciForge logo, your contribution is very welcome.

Code Conventions

SciForge follows strict conventions. All contributions must adhere to:

  • Zero dependencies โ€” no external crates allowed.
  • Zero comments โ€” code must be self-explanatory through clear naming and structure.
  • **No `#[allow]` directives** โ€” all clippy and compiler warnings must be resolved, not suppressed.
  • Edition 2024 โ€” use current Rust idioms and features.
  • **Zero clippy warnings** โ€” cargo clippy must pass cleanly.
  • **All tests pass** โ€” cargo test must succeed (currently 94 tests: 28 benchmark + 66 parser).

Proposal Guidelines

When proposing improvements, please include:

  • A clear description of the problem or opportunity
  • The API surface you envision (functions, structs, modules)
  • Any considerations about backward compatibility or potential side effects
  • Optional: performance trade-offs or optimizations you foresee

Even rough ideas or pseudocode are welcome โ€” detailed implementation can come later.

API Discussion

I value input on:

  • Which APIs should be public and necessary
  • Which APIs are redundant or unnecessary
  • Any abstractions that could simplify usage or improve performance

Your suggestions help shape a stable and ergonomic API for SciForge.

Testing & Validation

  • Whenever possible, provide example files and expected outputs
  • Suggest how proposed changes can be validated in sandbox or test environments
  • Testing helps ensure new contributions integrate safely and correctly

Reporting Issues

If you encounter a bug or unexpected behavior:

  1. Describe the steps to reproduce it
  2. Provide expected vs. actual behavior
  3. Include relevant environment details (OS, Rust version, platform)

Please send reports via email or the discord.

Code of Conduct

I value respect, collaboration, and constructive feedback. Keep discussions professional and welcoming.

Thank you for helping make SciForge better. Your contributions โ€” big or small โ€” are always appreciated.

MIT License

Copyright (c) 2026 Rayan

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

Export Examples

Interactive HTML dashboards generated by the Benchmark and Parser modules.