A Rust library for orbital mechanics calculations, inspired by Orekit. orskit provides orbital propagation, station geometry, and measurement handling with language bindings for Python and Java.
core: Core orbital mechanics structures and utilitiesorbit: Orbital propagation using numerical ODE solvers (RK4, Dopri5, Dop853)stations: Ground station and geographic location utilitiesmeasurements: Measurement and observation handlingutils: Common constants and utility functions
python/: Python bindings using PyO3 (for Python 3.8+)java/: Java FFM (Foreign Function & Memory) bindings for Java 25+
cargo build --releasecd bindings/python
pip install maturin
maturin developRequires Java 25+ and Gradle 9+:
cd bindings/java
./gradlew build # Unix/Linux/macOS
gradlew.bat build # Windows
# Or with locally installed Gradle
gradle buildThe Java bindings use Kotlin-based Gradle with modern best practices:
- Gradle 9.0+: Latest Gradle version with performance improvements
- Kotlin DSL: Type-safe build configuration (
build.gradle.kts) - Configuration Cache: Faster build times with incremental caching
- Build Cache: Reusable build outputs across machines
- JaCoCo: Code coverage reporting
- Parallel Builds: Multi-threaded compilation
- Java 25 Preview Features: Support for latest Java features
The gradle.properties file includes:
- Daemon Settings: Long-lived Gradle daemon for faster builds
- JVM Configuration: Optimized heap size (4GB max) and G1 garbage collector
- Parallel Execution: Automatic worker detection for concurrent builds
- Caching: Configuration cache and build cache enabled for incremental builds
- Feature Preview: Auto-download of Java installations
The project includes gradlew (Unix/Linux/macOS) and gradlew.bat (Windows) scripts for reproducible builds without installing Gradle locally.
- nalgebra (0.34): Linear algebra for vectors and matrices
- ode-solvers (0.6): Numerical ODE integration (RK4, Dopri5, Dop853)
- hifitime (4.1): High-fidelity time handling for precise orbital mechanics
- PyO3 (0.21): Python-Rust interop
Licensed under either of:
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.