Skip to main content

RAstro

FastAPI framework, high performance, easy to learn, fast to code, ready for production

Test Crate PyPi Docs


Documentation: https://duncaneddy.github.io/rastro

Rust Library Reference: https://docs.rs/crate/rastro/latest

Source Code: https://github.com/duncaneddy/rastro


RAstro

rastro is a modern space dynamics library for research and engineering applications. It is designed to be high performance, easy to learn, and fast to code, and ready for flight.

The key features are:

  • Intuitive: API designed to be easily composable, making it easy to solve complex problems correctly by building on core functionality.
  • Easy to Learn: Designed to be easy to use and learn. Less time reading papers, more time building.
  • Fast to code: Rastro provides a Python 3.6+ wrapper that is auto-generated from the core rust libraries. Making it easy to use without compromising performance.
  • Fast to run: Very high performance, on par with C++ libraries, thanks to core library being written in Rust.

RAstro gets its name from the combination of Rust and astrodynamics (Rust + astro = RAstro). Space dynamics is an expansive field that covers multiple domains of mathematics, astrodynamics, attitude dynamics, and systems engineering. While the underlying concepts have been studied and known since Kepler wrote down his three laws, there are few modern software libraries that make these concepts easily accessible. Space dynamics software generally runs into the following pitfalls:

  1. It is usually expensive, commercially licensed software making it inaccessible for students, hobby projects, or new endeavours.
  2. They are heritage libraries making integration with modern tools challenging
  3. They are heritage APIs, while extremely well tested, also have an extremely steep learning curve. Additionally, the closed-source nature makes it difficult, if not impossible, to understand the true algorithmic implementation. This can make root-causing issues and learning from the software prohibitive.

Due to these challenges, students, researchers, and engineers frequently end up reimplementing common astrodynamics functions with an unfortunately frequent regularity. While reimplementation of common code can be a good learning mechanisms, in most cases it is both error-prone and costs time better spent on other endeavours. This project seeks to address this challenge by providing an easy-to-use, well-tested library, built in Rust for performance with bindings to Python for ease of use.

This project builds on experience from past projects in building space dynamics software:

Documentation

You can find the package documentation here. This documentation is meant to provide a human-friendly walkthrough of the software and package. RAstro is currently in the early stages of development so the documentation will likely not be complete. Sections marked [WIP] will have some software functionality implemented but not be considered documented.

The most complete API reference guide will always be the Rust crate API reference, found [TODO]. This is always up-to-date with the latest release since it is autogenerated at build time during the release process.

Software Usage and License

The RAstro package is licensed and distributed under an MIT License to encourage adoption and to make it easy to integrate with other tools.

The only thing asked is that if you do use the package in your work, or appreciate the project, either send a message or star the project. Knowing that the project is being actively used is a large motivator for continued development.

Support and Acknowledgement

RAstro is currently being developed primarily for my own enjoyment and because I find having these tools helpful in professional work. I plan to continue developing it for the time being regardless of greater adoption, time permitting.

That being said, it's incredibly encouraging and useful to know if the software is being adopted or found useful in wider practice. If you're using RAstro for school, research, or a commercial endeavour, I'd love to know about it! Tweet me @duncaneddy or email me at duncan.eddy (at) gmail.com.

I'd love to hear your feedback or thoughts!

Metadata

Release files for rastro 0.1.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rastro 0.1.8
File Size Uploaded
rastro-0.1.8.tar.gz 7.9 kB Details

Release files / rastro-0.1.8.tar.gz

Download URL rastro-0.1.8.tar.gz
Size 7.9 kB
Tags Source
SHA-256 checksum
How to use checksums
6f2af89dd7d56c39e4f069a99ce04fe8a02e55a6c12adac38f574b2cd0c8d92b
BLAKE2b-256 checksum
How to use checksums
0a3983306f439c28565db3fbeb535516adb1a653d9ea3f6ded6ca3f3ad538c3a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.8.3 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.15

Release history Release notifications | RSS feed

This release

0.1.8 This release

1 release file

0.1.6

1 release file

0.1.5

1 release file

0.1.4

1 release file

0.1.3

1 release file

0.1.2

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page