keplerian 0.3.0

Domain-agnostic Keplerian dynamics: typed anomaly solvers, elements, propagation, Lambert, and transfer search.
Documentation

keplerian

Crates.io docs.rs CI License: AGPL-3.0-only

Domain-agnostic Keplerian dynamics in Rust: typed anomaly solvers, classical elements, two-body propagation, Lambert transfers, and transfer/search helpers built only on qtty and affn.

Scope

This crate owns reusable central-force / two-body dynamics that do not require astronomy-specific semantics.

In scope:

  • elliptic, parabolic, and hyperbolic anomaly conversions and Kepler solves,
  • typed Keplerian elements and typed Cartesian states,
  • analytic two-body propagation under a fixed gravitational parameter,
  • Lambert boundary-value solvers,
  • transfer invariants and caller-driven Lambert search grids.

Out of scope:

  • epochs, time scales, and calendars,
  • ephemerides, bodies, observatories, or frame pipelines,
  • non-Keplerian perturbation models.

Crate boundary

qtty   ─── typed quantities and units
affn   ─── typed geometry, frames, centers
   │
   └──> keplerian

Features

Feature Default Effect
std yes Standard library (implies alloc); forwards qtty/std and affn/std.
alloc no Heap-backed APIs such as Vec search grids; forwards qtty/alloc and affn/alloc.
serde no Serde derives for public data types (implies alloc).

Pure core-only builds use --no-default-features. Combine with --features alloc and/or --features serde as needed.

License

AGPL-3.0-only.