Skip to main content

Siderust

Active

Astronomy and celestial-mechanics library for Rust, built for real observation and orbit work.

13 stars
5 forks
Rust
AGPL-3.0
Updated today

Why it exists

Siderust collects the pieces you need for ephemerides, observers, coordinates, and event searches. We keep the library close to the underlying models and validate the results against established references.

Key Features

  • VSOP87 & ELP2000 planetary/lunar ephemerides
  • Type-safe coordinate systems (ICRS, Ecliptic, Topocentric)
  • No unsafe blocks, no hidden allocations
  • Validated against authoritative data

Getting Started

# Add to your Cargo.toml
[dependencies]
siderust = "0.9.1"

# Compute Mars position
use siderust::{
    bodies::Mars,
    astro::JulianDate,
};
use chrono::Utc;

let jd = JulianDate::from_utc(Utc::now());
let mars = Mars::vsop87e(jd);
println!("{}", mars.position);

Contributing

We welcome contributions! Here's how you can help:

  • 1 Fork the repository and create your branch from main
  • 2 Make your changes and add tests if applicable
  • 3 Ensure all tests pass with cargo test
  • 4 Submit a pull request with a clear description

License

This project is licensed under the AGPL-3.0 license. See the LICENSE file for details.

Latest Release

v0.9.1 Jun 6, 2026
View release notes

Tags

astronomy ephemeris celestial-mechanics space rust