3个版本 (破坏性更新)
0.3.1 | 2024年8月14日 |
---|---|
0.2.0 | 2024年8月8日 |
0.1.0 | 2024年7月31日 |
#159 在 过程宏
每月358次下载
46KB
655 行
embed-licensing
将依赖项的许可信息嵌入,以符合免费软件许可。
这允许在运行时输出所有依赖项的列表。
功能
- 在构建时使用过程宏收集依赖项
- 名称
- 版本
- 作者(来自Cargo.toml)
- 许可(来自Cargo.toml的
license
字段或license-file
的内容) - 网站(来自Cargo.toml的
homepage
、repository
或documentation
)
- 收集依赖项的许可
- 收集依赖项的许可例外
- 可选收集开发(仅针对直接依赖项)和构建依赖项(默认情况下,仅收集普通依赖项)
- 可选限制依赖项到特定平台(目标配置选项)
非功能特性
- 准备好使用的HTML模板(每个应用程序都有不同的需求)
- CLI工具(已经有很好的工具了,请参阅替代方案)
- 手动覆盖错误或不完整的数据(这应该通过crate上游进行更改)
准确性
这个crate使用的机制永远不会完全准确。对于确定依赖项的许可证,只使用Cargo清单中的license
和license-file
属性。同样,作者也只从Cargo清单中获取。
因此,在您使用此crate之前,请始终咨询法律专业人士,以确认此crate的输出是否符合所有依赖项的许可证义务。
替代方案
- cargo-about是这个项目的最初灵感。它采用不同的方法,并从handlebars模板生成一个静态文件。
- cargo-deny 是一个用于依赖项的代码检查器,包括它们的许可证。它还提供
cargo deny list
子命令,用于列出所有依赖项的许可证(以及使用它们的依赖项)。 - cargo-license 输出的列表类似于
cargo deny list
,但具有更可配置的输出。 - cargo-cyclonedx 为 crate 创建一个 CycloneDX SBOM。
所有替代方案都不允许在编译时(作为 proc-macro)运行并使用运行时结果。
许可证
本项目可在 MPL 2.0 许可证下使用。具体详情可在每个文件的头部找到。
依赖项
~2–3MB
~46K SLoC