SBOM.WIKI

The open encyclopedia for Software Bill of Materials

Standards Comparison

The two dominant SBOM formats serve different ecosystems. Choose based on your compliance requirements and toolchain.

SPDX

v3.0

ISO/IEC 5962:2021 standard maintained by the Linux Foundation. Focused on license compliance and provenance tracking.

  • SPDXVersionDocument format version
  • DocumentNamespaceUnique document URI
  • PackageNameComponent identifier
  • PackageVersionSemantic version string
  • PackageLicenseConcludedSPDX license expression
  • PackageSupplierEntity providing the package
View Full Specification →

CycloneDX

v1.6

OWASP-maintained standard optimized for security use cases, vulnerability tracking, and software composition analysis.

  • bomFormatAlways "CycloneDX"
  • serialNumberUnique BOM identifier (URN)
  • components[].nameComponent identifier
  • components[].versionSemantic version string
  • components[].licensesLicense choice array
  • vulnerabilities[]Known vulnerability refs
View Full Specification →

# SPDX: Software Package Data Exchange ✎ Edit

SPDX is an open standard for communicating software bill of material information, including provenance, licensing, and security references. Maintained by the Linux Foundation, it has become an ISO standard (ISO/IEC 5962:2021) and is widely adopted across the software supply chain.

SPDX documents can be represented in multiple formats including JSON, RDF/XML, Tag-Value, and YAML.

# History

SPDX originated in 2010 as a Linux Foundation project to standardize how software package metadata, including licensing information, is shared. The specification reached version 2.0 in 2015 and was accepted as an ISO standard in August 2021. Version 3.0, released in 2024, introduced a profile-based architecture supporting Security, Licensing, Build, AI, and Dataset profiles.

# Format Structure

An SPDX document consists of a creation information section, package information, file information, snippet information, and relationship descriptions. The 3.0 model introduces Elements, Artifacts, and Relationships as core abstractions, allowing extensible profiles to add domain-specific metadata.

SPDX Tag-Value
SPDXVersion: SPDX-3.0
DataLicense: CC0-1.0
SPDXID: SPDXRef-DOCUMENT
DocumentName: example-sbom
DocumentNamespace: https://example.org/sbom/v1
Creator: Tool: sbom-generator-1.0

# Key Fields

The minimum viable SPDX document requires: SPDXVersion, DataLicense (always CC0-1.0), SPDXID, DocumentName, DocumentNamespace, and at least one Creator entry. Packages additionally require PackageName, SPDXID, and PackageDownloadLocation.

# Tooling

Popular tools for generating and consuming SPDX documents include Syft (Anchore), FOSSology, SPDX Online Tools, and the official SPDX Java/Python libraries. Most modern CI/CD platforms can generate SPDX SBOMs natively or through plugins.

Contribute to SBOM.WIKI

This encyclopedia is community-maintained under a CC BY-SA 4.0 license. Every article can be improved, and new entries are always welcome. Join hundreds of contributors documenting the software supply chain.