15个版本 (8个破坏性版本)
0.9.1 | 2024年7月9日 |
---|---|
0.8.4 | 2023年7月13日 |
0.7.2 | 2023年7月10日 |
#619 在 编码
每月1,640次下载
在 cargo-sbom 中使用
12KB
80 行
serde-spdx
本库提供了一个类型安全的、与serde兼容的SPDX格式。它旨在用于可能需要读取或写入SPDX文件的自定义Rust代码。
最新文档可在此处找到。
serde是Rust的一个流行的序列化框架。更多信息可以在官方仓库找到:https://github.com/serde-rs/serde
SPDX是维护软件物料清单(SBOM)的行业标准格式。更多信息可以在官方网站上找到:https://spdx.dev/
用法
对于大多数情况,只需使用根spdx::v_2_3::Spdx结构体与[serde]一起读取和写入到结构体。
示例
use serde_spdx::spdx::v_2_3::Spdx;
let data = fs::read_to_string("sbom.spdx.json");
let spdx: Spdx = serde_json::from_str(&data).unwrap();
由于许多spdx::v_2_3::Spdx结构体包含大量可选字段,因此通常方便使用构建器模式来构建这些结构体。每个结构体都有一个默认的构建器。
示例
use serde_spdx::spdx::v_2_3::SpdxCreationInfoBuilder;
let creation_info = SpdxCreationInfoBuilder::default()
.created("created")
.creators(vec![])
.build()
.unwrap();
内部实现细节
根结构体自动从解析的SPDX JSON模式生成,这发生在构建时(通过构建脚本)。
许可证:MIT
依赖关系
~1.3–2.4MB
~49K SLoC