CycloneDX/cyclonedx-dotnet-library
GitHub: CycloneDX/cyclonedx-dotnet-library
用于 .NET 的 CycloneDX 库,支持以编程方式生成和消费 CycloneDX 物料清单,并提供 SPDX 格式互操作能力。
Stars: 28 | Forks: 35
[](https://github.com/CycloneDX/cyclonedx-dotnet-library/actions?workflow=.NET+Core+CI)
[][License]
[](https://www.nuget.org/packages/CycloneDX.Core/)

[](https://cyclonedx.org/)
[](https://cyclonedx.org/slack/invite)
[](https://groups.io/g/CycloneDX)
[](https://twitter.com/CycloneDX_Spec)
# 用于 .NET 的 CycloneDX 库
用于 .NET 的 CycloneDX 库支持以编程方式使用和生成 CycloneDX 物料清单 (BOM)。CycloneDX 是一个轻量级的 BOM 规范,易于创建、易于阅读且解析简单。
这些库支持 .NET Standard 2.0、.NET 8 和 .NET 10。
## 快速入门
有关开始使用 CycloneDX .NET 库的帮助,请参阅[文档](https://cyclonedx.github.io/cyclonedx-dotnet-library/)。
## SPDX 互操作性
`CycloneDX.Spdx.Interop` 库包含了在 CycloneDX 和 SPDX 格式之间进行转换的方法。(目前仅支持 SPDX v2.3 JSON 格式。)
### 转换期间丢失信息的高级概述:
这是对转换过程中将会丢失的信息的高级概述。这仅代表当前状态,如下所示,某些功能尚待实现。
如果您熟悉这两种格式,并且希望为减少转换期间的数据丢失做出贡献,欢迎提交 pull request :)
#### SPDX -> CycloneDX
| 特性 | 说明 |
| --- | --- |
| 关系信息 | 待实现,与 CycloneDX 组件 assemblies、dependency graph 和 composition 相关。 |
| 文件中的许可证信息 | 需要审查,SPDX 和 CycloneDX 处理许可证信息证据的方式略有不同。 |
| Snippet 信息 | CycloneDX 目前不支持 Snippet。 |
| 非 SPDX 许可证 | 待实现 |
| 用于组件身份标识的 Package URL | SPDX 支持为一个 package 提供多个 PURL。但不支持指定其中任何一个作为组件标识符。目前使用第一个作为组件 purl。|
| 用于组件身份标识的 CPE | SPDX 支持为一个 package 提供多个 CPE。但不支持指定其中任何一个作为组件标识符。目前使用第一个作为组件 CPE。|
#### CycloneDX -> SPDX
| 特性 | 说明 |
| --- | --- |
| 组件 assemblies | 待实现 - 与 SPDX 关系信息相关 |
| SWID 标签 | SPDX 不支持 SWID 标签。 |
| 用于组件身份标识的 CPE 和 Package URL | SPDX 支持为一个 package 提供多个 CPE 和 PURL。但不支持指定其中任何一个作为组件标识符。 |
| 设备和硬件组件 | SPDX 不支持将设备或硬件作为组件。 |
| Composition | 待实现 - 与 SPDX 关系信息相关 |
| Dependency Graph | 待实现 - 与 SPDX 关系信息相关 |
| 外部引用 | 两种格式处理外部引用的方式不同。 |
| 非 SPDX 许可证 | 待实现 |
## 许可证
在 Apache 2.0 许可证的条款下,授予修改和重新分发的权限。有关完整的许可证内容,请参阅 [LICENSE] 文件。
标签:CycloneDX, SBOM, 依赖管理, 多人体追踪, 硬件无关, 组件分析