sciforge 0.0.1

A comprehensive scientific computing library in pure Rust with zero dependencies
Documentation
# SciForge

A comprehensive scientific computing library written in pure Rust.

[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
[![Rust Edition](https://img.shields.io/badge/Rust-Edition%202024-orange.svg)]()
[![Dependencies](https://img.shields.io/badge/Dependencies-0-brightgreen.svg)]()

## 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`:

```toml
[dependencies]
sciforge = "0.0.1"
```

### Example

```rust
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

```bash
cargo build
```

## Testing

```bash
cargo test
```

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

## Linting

```bash
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](Contributing.md) for guidelines.

## Roadmap

See [ComingSoon.md](ComingSoon.md) for upcoming features and development plans.

## Changelog

See [ChangeLog.md](ChangeLog.md) for version history.

## License

[MIT](LICENSE)