Skip to main content

About Siderust

Building the future of Rust, one crate at a time.

Our Mission

Siderust aims to be the reference ephemeris and orbit‑analysis library for embedded flight‑software as well as research‐grade pipelines. Every algorithm ships with validation tests against authoritative data (JPL Horizons, IMCCE, SOFA). No unsafe blocks, no hidden allocations.

Who We Serve

  • Spacecraft engineers building autonomous navigation and guidance systems
  • Observatory operators planning observations and tracking celestial targets
  • Researchers requiring reproducible, validated astronomical computations
  • Embedded systems developers needing deterministic, allocation-free libraries

Our Values

1

Correctness first: every algorithm validated against JPL Horizons, IMCCE, and SOFA

2

Zero unsafe code and zero hidden allocations; suitable for bare-metal and real-time systems

3

Type-level guarantees: reference frames and units encoded in the type system

4

Reproducible science: deterministic builds and comprehensive benchmarks

5

Documentation as a first-class citizen

What We Build

Our libraries provide mission-critical astronomical computation with an uncompromising focus on:

  • Validation: Every algorithm tested against JPL Horizons, IMCCE, and SOFA authoritative ephemerides with published accuracy metrics
  • Safety Guarantees: Zero unsafe blocks, zero hidden allocations. Suitable for bare-metal embedded systems and real-time flight software
  • Type-Level Correctness: Reference frames (ICRS, Ecliptic, Topocentric), coordinate centers (Helio, Geo, Bary), and physical units encoded in types; impossible states don't compile
  • Reproducibility: Deterministic builds, pinned algorithm versions, comprehensive benchmarks, and no platform-dependent behavior
  • Performance: SIMD auto-vectorization, zero-cost abstractions, and optimized numerical kernels (VSOP87, ELP2000) benchmarked at <200ns per evaluation

Our Ecosystem

siderust : Ephemeris and celestial mechanics (VSOP87, ELP2000, DE440, DE-441, Kepler solvers)
affn : Affine transformations with compile-time reference frame safety
qtty : Physical quantities with dimensional analysis (Length, Angle, Mass, Time, etc.)

How to Contribute

We welcome contributions from everyone! Whether you're fixing a bug, adding a feature, or improving documentation, your help is appreciated.

Getting Started

  1. 1

    Find an issue or create one

    Browse our GitHub organization for issues labeled "good first issue" or "help wanted".

  2. 2

    Fork and clone the repository

    Create your own fork and set up the development environment locally.

  3. 3

    Create a feature branch

    Work on your changes in a dedicated branch from main.

  4. 4

    Make your changes

    Write clean code, add tests, and update documentation as needed.

  5. 5

    Submit a pull request

    Open a PR with a clear description. We'll review and provide feedback promptly.

Development Setup

# Clone the repository
git clone https://github.com/Siderust/<project-name>
cd <project-name>

# Build the project
cargo build

# Run tests
cargo test

# Run clippy for linting
cargo clippy

# Format code
cargo fmt

Code Guidelines

  • Follow the existing code style and formatting
  • Write tests for new functionality
  • Add doc comments for public APIs
  • Keep PRs focused and atomic
  • Avoid unsafe code unless absolutely necessary

Ready to contribute?

Check out our open issues and start making an impact today.

Browse Repositories

Connect With Us

Have questions or want to get involved? Reach out through our GitHub organization.