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
Correctness first: every algorithm validated against JPL Horizons, IMCCE, and SOFA
Zero unsafe code and zero hidden allocations; suitable for bare-metal and real-time systems
Type-level guarantees: reference frames and units encoded in the type system
Reproducible science: deterministic builds and comprehensive benchmarks
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
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
Find an issue or create one
Browse our GitHub organization for issues labeled "good first issue" or "help wanted".
- 2
Fork and clone the repository
Create your own fork and set up the development environment locally.
- 3
Create a feature branch
Work on your changes in a dedicated branch from
main. - 4
Make your changes
Write clean code, add tests, and update documentation as needed.
- 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 RepositoriesConnect With Us
Have questions or want to get involved? Reach out through our GitHub organization.