10 个版本
0.5.0 | 2023年12月20日 |
---|---|
0.4.5 | 2021年12月29日 |
0.4.1 | 2021年7月13日 |
0.3.0 | 2021年3月21日 |
0.1.0 | 2020年6月22日 |
#241 in 科学
每月下载量 25
在 2 crates 中使用
2.5MB
17K SLoC
rsofa
rsofa 是一个库,提供国际天文学联合会 (http://www.iau.org/) 的 SOFA 库 (http://www.iausofa.org/) 的 Rust 实现。
rsofa 不是 SOFA 程序的移植,而是使用 bindgen 创建 SOFA C 库的直接包装器。rsofa 不是国际天文学联合会官方认可的。
尽管仍然是预 1.0 版本,但该软件包代表了 SOFA C 库的完整包装。未来要做的工作只是实现额外的测试覆盖率,以确保与 C 实现一致。然而,考虑到软件包的自动生成性质和直接 C 接口,偏差的可能性很低。
SOFA 版本历史
软件包版本 | SOFA 发布 |
---|---|
v0.5 | 2023-10-11 |
v0.4 | 2021-05-12 |
v0.3 | 2021-01-25 |
v0.2 | 2020-07-21 |
v0.1 | 2019-07-22 |
更新过程
每当 IAU SOFA C 库发布新版本时,如果该更新包括库中函数的增加或删除,则应更新 build.rs 文件以反映该变化。应将新函数添加到构建列表中,并删除已弃用的函数。
注意,必须通过复制 ./extern/src/sofa.h
的内容到 ./extern/sofa.h
来更新 ./extern/sofa.h
,并调整以下行:
// #include "math.h"
这防止了 bindgen 从 C 的 math.h
头文件生成绑定,这可能导致构建过程中的后续问题。它还指向包括官方发布版本的 sofam.h
的头文件,而不在相同级别重复。
可以使用以下方式手动生成绑定:
cargo install bindgen
bindgen ./extern/src/sofa.h -o ./src/bindings.rs
许可证
包装软件包采用 MIT 许可证。
除了 MIT 许可证外,使用此模块还应遵守 SOFA 的许可证和条款,这些内容在许可证文件中重现。
具体而言,但不限于,任何包含使用 rsofa 获得的结果的已发布作品或商业产品均应承认使用 SOFA 软件获得了这些结果。
无运行时依赖
~0–2MB
~39K SLoC