3 个版本 (破坏性)
0.4.0 | 2024年2月22日 |
---|---|
0.2.0 | 2022年5月13日 |
0.1.0 | 2021年3月11日 |
在 算法 中排名第 2000
每月下载量 23
430KB
9K SLoC
摘要
此项目是 C++ CavalierContours 库的延续,用 Rust 重新编写,旨在扩展更多功能、更好的文档,并创建稳定的 C FFI。此项目具有 C++ 仓库的所有功能,以及更多的代码文档、测试覆盖率,并为处理多段线添加了一些额外功能。有关跟踪进度和贡献,请查看项目 GitHub 问题。有关并行偏移算法和背景信息,请参阅旧 C++ 仓库中的 README.md
此处。
此库在主 cavalier_contours
crate 中不使用任何不安全代码(应用了 #![forbid(unsafe_code)]
)。在 cavalier_contours_ffi
crate 中使用不安全代码进行 C 绑定。
交互式网页用于可视化测试
此项目编译为 wasm 以创建用于可视化和测试的交互式网络演示页面。
- 交互式网络演示页面: https://cavaliercontours.dev/
- 交互式网络演示页面仓库: https://github.com/jbuckmccready/cavalier_contours_web_demo
为什么选择 Rust?
- 使用 C 或 C++ 的所有相同优势(出色的性能/优化、原生编译、无垃圾收集、无运行时)来创建具有 C FFI 的快速可移植库
- 围绕构建和包的内置工具非常好(cargo + crates)
- 编写和维护测试的内置工具非常好
- 所有这些内置工具使得开源贡献和参与更容易
- 借用检查器 + 生命周期允许进行更高级的内存分配优化,而不会出现内存错误/损坏错误
- 类型系统允许在不会出现内存错误/损坏错误的情况下,大量使用线程/并发
- 区分联合和模式匹配作为一等语言特性
- 针对 wasm 的高效工具
你是 Rust 新手但仍然想做出贡献吗?
我推荐您查看官方 Rust 书籍这里。Visual Studio Code + rust-analyzer 扩展非常适合编辑。如果您正在寻找具体要工作的项目,请检查标记为 good first issue
的项目问题。
许可证
根据您的选择,许可如下
- Apache License,版本 2.0 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
。
贡献
除非您明确声明,否则任何有意提交以包含在作品中的贡献,根据 Apache-2.0 许可证定义,应按上述方式双许可,不附加任何额外条款或条件。
lib.rs
:
此模块包含 cavalier_contours 的 C 外部函数接口。
依赖项
~215KB