#spdx #serialization #serde #sbom

serde-spdx

SPDX文件的Serde序列化

15个版本 (8个破坏性版本)

0.9.1 2024年7月9日
0.8.4 2023年7月13日
0.7.2 2023年7月10日

#619编码

Download history 415/week @ 2024-04-27 646/week @ 2024-05-04 627/week @ 2024-05-11 580/week @ 2024-05-18 688/week @ 2024-05-25 708/week @ 2024-06-01 647/week @ 2024-06-08 321/week @ 2024-06-15 542/week @ 2024-06-22 461/week @ 2024-06-29 1066/week @ 2024-07-06 801/week @ 2024-07-13 486/week @ 2024-07-20 437/week @ 2024-07-27 274/week @ 2024-08-03 347/week @ 2024-08-10

每月1,640次下载
cargo-sbom 中使用

MIT 许可证

12KB
80

Workflow Status

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