OWASP CycloneDX is a full-stack Bill of Materials (BOM) standard that provides advanced supply chain capabilities for cyber risk reduction.
This Python package provides data models and tools for working with CycloneDX documents.
Note: This package is a software library not intended for standalone use. For generating Software Bill of Materials (SBOM), check out CycloneDX Python or Jake.
Via pip:
pip install cyclonedx-python-lib
Via Conda:
conda install -c conda-forge cyclonedx-python-lib
We endeavor to support all functionality for all current actively supported Python versions. However, some features may not be possible/present in older Python versions due to their lack of support.
As of version 3.0.0
, the library supports CycloneDX VEX documents production with official example compatibility for linking VEX to separate CycloneDX documents.
Complete documentation is available on Read the Docs. This includes:
- API Reference
- Usage Examples
- Integration Guides
- Best Practices
- Provide a general-purpose Python implementation of CycloneDX
- Provide type hints for implementation support
- Support JSON/XML document parsing and generation
- Validate CycloneDX documents against schema specifications
- Support multiple CycloneDX specification versions
- Maintain comprehensive data models for BOM manipulation
- Enable pip-based installation for downstream usage
BomFormat
- BOM format typesComponentType
- Types of components (e.g., APPLICATION, LIBRARY)ComponentScope
- Component scope typesDataFlow
- Data flow typesEncoding
- Encoding typesExternalReferenceType
- Types of external referencesHashAlgorithm
- Supported hash algorithmsImpactAnalysisAffectedStatus
- Impact analysis affected status typesImpactAnalysisJustification
- Impact analysis justification typesImpactAnalysisResponse
- Impact analysis response typesImpactAnalysisState
- Impact analysis state typesIssueClassification
- Issue classification typesLifecyclePhase
- Lifecycle phase typesPatchClassification
- Patch classification typesVulnerabilityScoreSource
- Vulnerability score source typesVulnerabilitySeverity
- Vulnerability severity types
Bom
- Core BOM modelBomRef
- BOM reference handlingMetadata
- BOM metadata
Component
- Component representationComponentEvidence
- Component evidence dataService
- Service representation
Dependency
- Dependency informationDependencyGraph
- Dependency relationships
License
- Base license modelLicenseExpression
- License expression handlingNamedLicense
- Named license representationSpdxLicense
- SPDX license support
ImpactAnalysis
- Impact analysis dataIssue
- Issue trackingVulnerability
- Vulnerability information
ExternalReference
- External reference dataHash
- Hash informationOrganizationalContact
- Contact informationOrganizationalEntity
- Organization information
Property
- Property handlingTool
- Tool representation
BomRefRepository
- BOM reference managementComponentRepository
- Component managementExternalReferenceRepository
- External reference managementLicenseRepository
- License managementPropertyRepository
- Property managementToolRepository
- Tool management
- Serial number generation for BOMs
- Hash calculation helpers
- License expression parsing
- XML/JSON serialization helpers
- 1.6
- 1.5
- 1.4
- 1.3
- 1.2
- 1.1
Feel free to open issues, bug reports or pull requests.
See the CONTRIBUTING file for details.
CycloneDX Python Lib is Copyright (c) OWASP Foundation. All Rights Reserved.
Permission to modify and redistribute is granted under the terms of the Apache 2.0 license.
See the LICENSE file for the full license.