2 个不稳定版本
0.2.0 | 2022年11月15日 |
---|---|
0.1.0 | 2022年11月6日 |
#1692 in 数据结构
140KB
2K SLoC
kodiak-taxonomy
用这个强大且易于使用的分类法来整理事物。
这个库是科迪亚克项目的基础,因此命名为crate。虽然科迪亚克对分类法有一些相当具体的要求,但kodiak-taxonomy
仍然是通用的,具有自身价值,也可能对其他项目感兴趣。
分类法[^维基百科]是一种按类型组织事物的分类方案。通常,分类法提供严格的层次组织,提供树状结构。然而,在实践中,这样的分类法限制了我们对复杂现实的建模能力。
当你寻找一个能够克服这种限制的强大分类法时,kodiak-taxonomy
可能非常适合你。所以,请随意使用它。如果你考虑在你的项目中使用kodiak-taxonomy
但缺少功能或有任何其他担忧,请不要犹豫,在GitHub上提交问题。
我们期待您的反馈。
你可能还在寻找
感受
待办:展示kodiak-taxonomy支持的两种分类法示例
在EXAMPLES.md中提供额外的示例,并将其链接。
TL;DR
科迪亚克对其分类法的具体要求
- 一个元素可以有多个上级行为
- 分类法的顶部允许多个元素,即用户可以自由创建多个根节点
- 元素可以由任意元数据补充(尚未实现)
- 边(一个超元素和它的子元素的元组)可以由任意属性补充(尚未实现)
已知问题/限制
- 🏗️ 版本 0.1.0 尚未支持其他项目,因此API尚未在实践中证明其力量。
- 🚧 代码完全由单元测试覆盖,但是,一些集成测试仍然缺失,文档还有改进的空间。
- 尚未考虑Rust API指南。
- 🐧 版本 0.1.x 仅在Linux上开发和测试。
路线图和未来考虑
版本 0.7.0(计划中)
- 将公共函数的性能考虑纳入文档。
版本 0.6.0(计划中)
- 实现Iterator trait。
- 为Node实现Display trait。
版本 0.5.0(计划中)
- 实现Serde的Serialize和Deserialize。
版本 0.4.0(计划中)
- 在Node和Edge级别添加对任意元数据和属性的支持。
版本 0.3.0(进行中)
- 重新思考API:将
Taxonomy
实现为一个围绕std::collections::HashMap的轻量级包装,并移除TaxonomyError(参见CHECKLIST_RUST_API_CONFORMANCE) - 改进文档(参见CHECKLIST_RUST_API_CONFORMANCE)
- 与任何未来版本一起发布软件物料清单(SBOM)。
- 使用Tarpaulin的LLVM引擎检查代码覆盖率。
版本0.2.0(已交付)
- 审查并遵循Rust API指南。
- 改进文档:例如,遵守Rust API指南中的C-LINK。
- 使用tarpaulin测量并添加到GitHub项目的完整代码覆盖率,包含测试
- 切换到
#![forbid(unsafe_code)]
版本0.1.0(已交付)
- 初始版本。
附加资源
- 主页 polarlabs: polarlabs.io
- 包: crates.io/kodiak-taxonomy
- API文档: docs.rs/kodiak-taxonomy
贡献
有关更多详细信息,请参阅CONTRIBUTING。
附录
Cargo Geiger 安全报告
Metric output format: x/y
x = unsafe code used by the build
y = total unsafe code found in the crate
Symbols:
🔒 = No `unsafe` usage found, declares #![forbid(unsafe_code)]
❓ = No `unsafe` usage found, missing #![forbid(unsafe_code)]
☢️ = `unsafe` usage found
Functions Expressions Impls Traits Methods Dependency
0/0 0/0 0/0 0/0 0/0 🔒 kodiak-taxonomy 0.2.0
0/0 0/0 0/0 0/0 0/0
许可证
根据您的选择,许可方式为以下之一
- Apache许可证2.0版本(LICENSE-APACHE或https://opensource.org/licenses/Apache-2.0)
- MIT许可证(LICENSE-MIT或http://opensource.org/licenses/MIT)
。