17 个版本
新增 0.5.5 | 2024 年 8 月 6 日 |
---|---|
0.5.4 | 2024 年 7 月 17 日 |
0.5.3 | 2024 年 6 月 4 日 |
0.5.0 | 2024 年 3 月 1 日 |
0.3.1 | 2021 年 12 月 9 日 |
139 在 Cargo 插件 中
6,966 每月下载量
1.5MB
33K SLoC
cargo-cyclonedx
此 CycloneDX 插件为 cargo
创建了一个自定义的 cargo
子命令,该命令生成描述 cargo
项目的软件物料清单 (SBOM) 文件。
CycloneDX 是一种轻量级的 SBOM 规范,易于创建,可由人和机器读取,易于解析。
用法
安装
cargo install cargo-cyclonedx
从 cargo
执行
cargo cyclonedx
这将在工作空间中每个存在的 Cargo.toml
文件旁边生成一个 bom.xml
文件。
命令行选项
--manifest-path <PATH>
Path to Cargo.toml
-f, --format <FORMAT>
Output BOM format: json, xml
--describe <DESCRIBE>
Possible values:
- crate: Describe the entire crate in a single SBOM file, with Cargo targets as subcomponents. (default)
- binaries: A separate SBOM is emitted for each binary (bin, cdylib) while all other targets are ignored
- all-cargo-targets: A separate SBOM is emitted for each Cargo target, including things that aren't directly executable (e.g rlib)
-v, --verbose...
Use verbose output (-vv for debug logging, -vvv for tracing)
-q, --quiet...
Disable progress reports (-qq to suppress warnings)
--all-features
Activate all available features
--no-default-features
Do not activate the `default` feature
-F, --features <FEATURES>
Space or comma separated list of features to activate
--target <TARGET>
The target to generate the SBOM for, e.g. 'x86_64-unknown-linux-gnu'.
Use 'all' to include dependencies for all possible targets.
Defaults to the host target, as printed by 'rustc -vV'
--target-in-filename
Include the target platform of the BOM in the filename
-a, --all
List all dependencies instead of only top-level ones (default)
--top-level
List only top-level dependencies
--override-filename <FILENAME>
Custom string to use for the output filename
--license-strict
Reject the deprecated '/' separator for licenses, treating 'MIT/Apache-2.0' as an error
--license-accept-named <LICENSE_ACCEPT_NAMED>
Add license names which will not be warned about when parsing them as a SPDX expression fails
--spec-version <SPEC_VERSION>
The CycloneDX specification version to output: `1.3`, `1.4` or `1.5`. Defaults to 1.3
-h, --help
Print help (see a summary with '-h')
-V, --version
Print version
与其他工具的不同之处
许多语言无关的工具支持为 Rust 项目生成 SBOM。然而,它们通常依赖于解析 Cargo.lock
文件,这严重限制了它们可以获取的信息。
相比之下,cargo cyclonedx
从Cargo.lock
和cargo metadata
中获取数据,这使得它支持许多仅限于Cargo.lock
的工具所不支持的功能。
- 为特定的crate或二进制文件创建SBOM,而不是整个工作区
- 尊重已启用的Cargo功能的特定组合,匹配您的构建配置
- 省略dev依赖项,这些依赖项不会影响最终的可执行文件
- 记录额外的字段,例如每个组件的许可证
贡献
有关详细信息,请参阅CONTRIBUTING。
漏洞赏金
我们正在运行由Sovereign Tech Fund的Bug Resilience Program资助的漏洞赏金计划。非常感谢!
版权 & 许可证
CycloneDX Rust Cargo版权所有(c)OWASP基金会。版权所有。
在Apache 2.0许可的条款下,允许修改和重新分发。有关完整的许可证,请参阅LICENSE文件。
依赖项
~14–23MB
~340K SLoC