astrora_core 0.1.1

Astrora - Rust-backed astrodynamics library - core computational components
Documentation
Astrora Documentation
====================

**Astrora** is a modern, high-performance astrodynamics library for Python, powered by Rust.

Astrora provides a comprehensive suite of tools for orbital mechanics, spacecraft trajectory analysis,
and mission design. By implementing performance-critical components in Rust, Astrora achieves
10-100x speedups over pure Python implementations while maintaining a familiar, easy-to-use Python API.

.. note::
   Astrora is the successor to the archived `poliastro <https://github.com/poliastro/poliastro>`_ library,
   rebuilt from the ground up with modern Python-Rust integration patterns.

Key Features
-----------

* **High Performance**: 10-100x faster than pure Python implementations
* **Modern Architecture**: Rust backend with seamless Python integration via PyO3
* **Comprehensive**: Orbital propagation, coordinate transformations, Lambert solvers, and more
* **Well Documented**: Full API documentation with examples and tutorials
* **Battle Tested**: Cross-validated against GMAT, Nyx-space, and NASA/ESA tools
* **Easy to Use**: Familiar Python API compatible with poliastro where practical

Quick Start
----------

Installation
~~~~~~~~~~~

.. code-block:: bash

   pip install astrora

Basic Usage
~~~~~~~~~~

.. code-block:: python

   from astrora import Orbit
   from astrora.bodies import Earth
   import numpy as np

   # Create an orbit from classical orbital elements
   orbit = Orbit.from_classical(
       Earth,
       a=7000.0,      # Semi-major axis (km)
       ecc=0.01,      # Eccentricity
       inc=28.5,      # Inclination (degrees)
       raan=0.0,      # Right ascension of ascending node (degrees)
       argp=0.0,      # Argument of periapsis (degrees)
       nu=0.0         # True anomaly (degrees)
   )

   # Propagate the orbit forward in time
   orbit_future = orbit.propagate(3600.0)  # Propagate 1 hour (3600 seconds)

   # Get state vectors
   r, v = orbit.rv()
   print(f"Position: {r} km")
   print(f"Velocity: {v} km/s")

Performance
----------

Astrora leverages Rust's performance characteristics to provide significant speedups:

* **Lambert Problem**: 50-200x faster (with batch operations and parallelization)
* **Numerical Propagation**: 10-50x faster
* **Coordinate Transformations**: 20-80x faster (batch operations)
* **Overall Workflow**: 5-20x typical improvement

Contents
--------

.. toctree::
   :maxdepth: 2
   :caption: User Guide

   installation
   quickstart
   user_guide/index
   examples/index

.. toctree::
   :maxdepth: 2
   :caption: API Reference

   api/core
   api/twobody
   api/coordinates
   api/time
   api/bodies
   api/maneuver
   api/plotting
   api/util

.. toctree::
   :maxdepth: 2
   :caption: Developer Guide

   developer/architecture
   developer/contributing
   developer/benchmarks
   developer/validation

.. toctree::
   :maxdepth: 1
   :caption: About

   changelog
   license
   references

Indices and tables
==================

* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`