15个版本 (8个破坏性更改)
0.9.1 | 2024年7月9日 |
---|---|
0.8.4 | 2023年7月13日 |
0.7.2 | 2023年7月10日 |
#976 in 编码
每月下载量1,478
在cargo-sbom中使用
88KB
106 代码行
serde-cyclonedx
此包提供了一种类型安全的、与serde兼容的CycloneDx格式。它适用于可能需要读取或写入CycloneDx文件的Rust代码。
最新的文档可在此处找到。
serde是Rust中流行的序列化框架。更多信息可以在官方仓库找到:https://github.com/serde-rs/serde
CycloneDx是维护软件物料清单(SBOM)的行业标准格式。更多信息可以在官方网站找到:https://cyclonedx.org/
用法
对于大多数情况,只需使用根cyclonedx::v_1_4::CycloneDx结构体和[serde]来读取和写入到结构体中。
示例
use serde_cyclonedx::cyclonedx::v_1_4::CycloneDx;
let data = fs::read_to_string("sbom.cyclonedx.json");
let cyclonedx: CycloneDx = serde_json::from_str(&data).unwrap();
由于许多cyclonedx::v_1_4::CycloneDx结构体包含很多可选字段,因此通常使用构建器模式来构建这些结构体非常方便。每个结构体都有一个具有默认值的构建器。
示例
use serde_cyclonedx::cyclonedx::v_1_4::CycloneDxBuilder;
let cyclonedx = CycloneDxBuilder::default()
.bom_format("CycloneDX")
.spec_version("1.4")
.version(1)
.build()
.unwrap();
内部实现细节
根结构体自动从解析的CycloneDX JSON模式生成,这是在构建时完成的(通过buildscript)。
许可证:MIT
依赖项
~1.3–2.4MB
~49K SLoC