8个版本
0.1.8 | 2021年12月29日 |
---|---|
0.1.6 | 2021年12月29日 |
0.1.5 | 2021年3月21日 |
#551 in 科学
4.5MB
379 行
FastAPI框架,高性能,易于学习,快速编码,适合生产
文档: https://duncaneddy.github.io/rastro
Rust库参考: https://docs.rs/crate/rastro/latest
源代码: https://github.com/duncaneddy/rastro
RAstro
rastro是一个为研究和工程应用而设计的现代航天动力学库。它旨在高性能、易于学习和快速编码,并已准备好投入飞行。
其主要特点包括
- 直观:API设计易于组合,通过构建在核心功能上,可以轻松地正确解决复杂问题。
- 易于学习:设计易于使用和学习。减少阅读论文的时间,更多时间用于构建。
- 快速编码:Rastro提供了一个Python 3.6+包装器,该包装器从核心Rust库自动生成。使其易于使用,同时不会牺牲性能。
- 快速运行:非常高的性能,与C++库相当,归功于核心库是用Rust编写的。
RAstro的名字来源于Rust和航天动力学(Rust + astro = RAstro)的结合。航天动力学是一个广泛的领域,涵盖了数学、航天动力学、姿态动力学和系统工程等多个数学领域。虽然这些基本概念自从开普勒写下他的三条定律以来就被研究和了解,但很少有现代软件库能轻易地访问这些概念。航天动力学软件通常会遇到以下问题
- 通常价格昂贵,商业许可证软件,使得学生、爱好项目或新项目无法访问。
- 它们是遗产库,与现代化工具的集成具有挑战性
- 它们是遗产API,虽然经过严格测试,但学习曲线非常陡峭。此外,闭源特性使得理解真正的算法实现变得困难,甚至不可能。这可能会使根本原因分析和从软件中学习变得难以承受。
由于这些挑战,学生、研究人员和工程师经常不得不频繁地重新实现常见的航天动力学函数。虽然重新实现常用代码可以是良好的学习机制,但在大多数情况下,它既容易出错,又浪费了本可以用于其他项目的宝贵时间。本项目旨在通过提供一个易于使用、经过良好测试的库来解决这个问题,该库是用Rust编写的,以实现性能,并为Python提供了绑定,以实现易用性。
本项目基于以往在构建空间动力学软件方面的经验
- brahe 一个纯Python天体力学库
- SatelliteDynamics.jl 一个Julia天体力学库
文档
您可以在这里找到软件包的文档。这份文档旨在提供一个人性化的软件和包的概述。RAstro目前处于开发初期,因此文档可能不完整。标有[WIP]的部分表示某些软件功能已实现,但尚未被认为是已文档化的。
最完整的API参考指南始终是Rust crate API参考,请见[待办事项]。由于它是发布过程中在构建时自动生成的,因此它总是与最新版本保持一致。
软件使用和许可证
RAstro软件包采用MIT许可证进行授权和分发,以鼓励其采用并使其易于与其他工具集成。
我们唯一的要求是,如果您在您的工作中使用了此包或欣赏该项目,请发送消息或标记项目。知道项目正在被积极使用是持续开发的重要动力。
支持和致谢
RAstro目前主要是我自己为了乐趣和因为我发现这些工具在专业工作中很有帮助而开发的。无论采用程度如何,只要时间允许,我计划继续开发它。
话虽如此,知道软件被广泛采用或认为是有用的,这非常鼓舞人心和有用。如果您在学校、研究或商业活动中使用RAstro,我很乐意了解!给我发推文@duncaneddy或给我发邮件到duncan.eddy (at) gmail.com。
我很乐意听取您的反馈或想法!
依赖关系
~5–7.5MB
~111K SLoC