11 个版本
0.1.7 | 2019年6月24日 |
---|---|
0.1.6 | 2019年3月20日 |
0.1.5 | 2019年2月14日 |
0.0.3 | 2019年2月7日 |
在 科学 中排名第 328
每月下载量 32 次
125KB
2K SLoC
这是一个进行中的项目 该项目已暂停
Civil
此包旨在解决常见的民用工程问题。目前一切都在进行中。理想情况下,当这个库成熟时,它应该支持对创建帮助确定街道几何设计、水沟尺寸和建筑项目基本经济分析的应用程序感兴趣的开发者。最终目标是提供一个简单的 API,用于常见的民用工程设计方程,以便应用程序开发者可以更多地关注特定于应用程序的实现,而不是研究方法。
一个很好的例子是,如果网页开发者能够使用这个 API 编写一个简短的功能,比如使用 Rust 计算给定渠道尺寸和粗糙度的明渠水流,然后将它编译成 WASM,并通过 JS 调用该函数,使用户输入产生渠道的图形表示,那么这将是一个很好的用例。另一个好的用例是,这个库中的函数被用于支持 CAD 套件中的模块或扩展。
Civil 的目标是足够全面以有用,但足够简单以灵活。因此,像读取数字高程模型、绘制流域和将几何对象转换为写入特定供应商文件类型(比如 .DWG)这样的复杂任务不在这个项目的范围之内。
为什么?
为什么是这个库?
- 没有类似的 Rust FOSS 库可以填补这个角色。
为什么要创建库?
- 工程师和设计师解决重要的、具体的问题。现代基础设施,如水和卫生设施,使人们的生活质量得到了改善,这在几代人之前是不可思议的。降低为更多人提供这些好处所带来的障碍,可以使世界变得更美好。健壮的、免费的可获得软件降低了这些障碍,而且目前可用的工具不多,比如游戏等领域的问题域。
为什么选择 Rust?
- Rust 具有与 C++ 相似的特性,具有编译器强制执行的内存安全措施,这使得它在某种程度上优于 C++。不过,这个库主要是用 Rust 编写的,因为我 1) 不懂 Fortran 2) 对 GNAT 的构建系统感到沮丧 3) 用 Go 或 Python 编写库并用作其他语言似乎有点奇怪。
通往 0.1.0 的道路
检查清单
完成程序的脚手架几乎完成。模块布局合理,主要的逻辑分组也已完成。模块文件正确引用了其他壳模块文件至少有一个有用的功能被暴露出来在适当的位置列出合理的待办事项以供参考
通往1.0.0的道路
检查清单
- 所有基本模块和功能都已编写
- 100%的功能文档
- 90%或更好的代码覆盖率
- 对函数进行部分基准测试以支持实现风格
超越!
检查清单
- 使用示例:作为简单CLI工具、WASM目标等的API
- Markdown书籍以阐明用法
- 优化
- 新特性
贡献
基本上,这个项目的任何方面都欢迎贡献。如果您在代码中看到差距,请发起一个pull请求。我不是专业的开发者,所以如果您看到一些明显的元编程错误,请提出。
本项目所需事项
- 核心库实现
- 测试
- 基准测试
- 文档
如果我一点也不知道土木工程怎么办?
有一些优秀的书籍详细列出了适合此库的大部分函数。只要您能够将方程翻译成Rust,有合理的输入和输出,您不需要完全理解它们的上下文和使用。
应该做的事情
- 文件层次结构应该清晰,并基于任务的逻辑分组进行直观的组织。
- 每个函数或结构体都应该提供清晰的文档。
- 清晰的文档应包括引用。
- 编写测试。
- 尽可能使公式与单位系统无关,并适当处理不同的单位系统(英制或公制)。当需要区分时,将按照传递 'imperial' 或 'metric' 作为最终参数的约定。
不应该做的事情
- 不要引入实际上不必要的依赖。
- 不要在顶级模块之间创建相互依赖。您的岩土工程函数不应该破坏您的流体力学函数。