#cyclone-dx #serde #sbom #serialization

serde-cyclonedx

Serde序列化CycloneDx文件

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

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

#976 in 编码

Download history 372/week @ 2024-04-14 327/week @ 2024-04-21 243/week @ 2024-04-28 317/week @ 2024-05-05 344/week @ 2024-05-12 266/week @ 2024-05-19 303/week @ 2024-05-26 446/week @ 2024-06-02 328/week @ 2024-06-09 246/week @ 2024-06-16 313/week @ 2024-06-23 370/week @ 2024-06-30 634/week @ 2024-07-07 302/week @ 2024-07-14 325/week @ 2024-07-21 211/week @ 2024-07-28

每月下载量1,478
cargo-sbom中使用

MIT许可证

88KB
106 代码行

Workflow Status

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