Open
Description
homepage_url
https://github.com/CycloneDX/cyclonedx-python-lib#readme-ov-file
contact_email
jan.kowalleck [at] owasp.org
code_view_url
https://github.com/CycloneDX/cyclonedx-python-lib
spdx_license_expression
Apache-2.0
description
This Python package(library) provides data models, validators and more, to help you create/render/read CycloneDX documents.
Responsibilities
- Provide a general purpose Python-implementation of CycloneDX.
- Provide type hints for said implementation, so developers and dev-tools can rely on it.
- Provide data models to work with CycloneDX.
- Provide data model-validators according to CycloneDX Specification.
- Provide JSON- and XML-serializers, that…
- support all shipped data models.
- respect any supported CycloneDX Specification and generates valid output accordingly.
- generate reproducible/deterministic results.
- Provide formal JSON- and XML-validators according to CycloneDX Specification.
- Provide mechanisms for JSON- and XML-deserialization of all shipped data models.
- Pre-populate bom-ref, so linkage is possible. (affects only some data models)
Capabilities
- Enums and Data models for the following use cases:
- Bom and Metadata
- BomRef
- Component, Evidence, Patch, Pedigree, and more
- Organizational Contact and Entity
- Cryptographic properties and more
- Definition and Standard
- Dependency
- Impact and related Analysis
- Issue
- License Named, SPDX, Expression, and more
- Lifecycle
- Release Notes
- Service
- Tool
- Vulnerability and related Analysis
- Attachment Copyright, DataFlow, ExternalReference, Hash, Property, and more
- Factories for the following use cases:
- Create data models from any license descriptor string
- Builders for the following use cases:
- Build a Component data model that represents this library
- Build a Tool data model that represents this library
- Implementation of the CycloneDX Specification for the following versions:
1.6
1.5
1.4
1.3
1.2
1.1
1.0
- Serializer that converts Bom data models to XML string
- Serializer that converts Bom data models to JSON string
- Formal validators for JSON string and XML string.
- Shipped data model are serializable to and deserializable from both, JSON and XML.
primary_languages
Python
short_term_roadmap
all things are community efforts - come and help/contribute
- Work In Progress: work towards implementation-completeness regarding CycloneDX data models.
Driven by the community - contributionsare welcome. - Finish refactor!: streamline comparison/hashing functions CycloneDX/cyclonedx-python-lib#755
- Finish feat!: BomRef affect equality/comparisson CycloneDX/cyclonedx-python-lib#754
- Have known bugs fixed
- Continue supporting the community in contributing new features
long_term_roadmap
all things are community efforts - come and help/contribute
- support upcoming CycloneDX 1.7 - at least the basics, more on demand.
CDX 1.7 is expected around May/June 2025. - on demand: continue work towards implementation-completeness regarding CycloneDX
- goal: eventually support all specified data models
- [TRACKING] Complete support for CycloneDX v1.6 CycloneDX/cyclonedx-python-lib#696
- [TRACKING] Complete support for CycloneDX v1.5 CycloneDX/cyclonedx-python-lib#578
- [TRACKING] Complete support for CycloneDX v1.4 CycloneDX/cyclonedx-python-lib#581
- driven by the community - contributions welcome!
- remove models' "sanity" checks - data models must become dumb, not opinionated
this should resolve many deserialization issues. - [LEGAL] get rid of (optional/transitive) dependencies licensed under GPL CycloneDX/cyclonedx-python-lib#743
- improve docs, improve readability, general maintenance
- support EOL Python versions for as long as possible, unless a technical reason forces to drop
proprietary_data
- Yes, the tool depends on proprietary data sources
commercial_features
- Yes, the tool has a commercial version with different/additional features
capabilities
- Identifiers - Use Package-URL (PURL) identifiers
- Identifiers - Use SPDX license expressions
- Scanning - Analyze package manifests and lockfiles
- Scanning - Analyze package files
- Scanning - Scan for copyright
- Scanning - Scan for license
- Scanning - Analyze source code
- Scanning - Analyze containers
- Scanning - Analyze installed system packages (linux distros)
- Scanning - Analyze installed application packages
- Scanning - Other analysis
- Packages - Inventory packages
- Packages - Inventory packages dependencies
- Packages - Resolve dependencies
- Packages - Navigate or display dependency graph
- Compliance - Generate CycloneDX SBOMs
- Compliance - Generate SPDX SBOMs
- Compliance - Validate CycloneDX SBOM
- Compliance - Validate SPDX SBOMs
- Compliance - Generate CycloneDX VEX
- Compliance - Generate CSAF VEX
- Compliance - Generate OpenVex
- Compliance - Generate other compliance documents
- Policies - Define and check license policies
- Policies - Define and check security policies
- Policies - Define and check other policies
- Data - Database of Package metadata
- Data - Database of Package dependency relationships
- Data - Database of License obligations
- Data - Database of Licenses
- Data - Database of Vulnerabilities
- License - Help triage license issues
- License - Generate license credit and attribution notices
- License - Generate source code redistribution lists
- Vulnerabilities - Detect vulnerable code in packages
- Vulnerabilities - Find known vulnerabilities for package
- Vulnerabilities - Determine reachable vulnerabilities
- Vulnerabilities - Help triage vulnerabilities
- Binaries - Analyze binaries
- Binaries - Analyze ELF binaries
- Binaries - Analyze Windows binaries
- Binaries - Analyze firmware binaries
- Binaries - Analyze Other binaries
- Matching - Match source code
- Matching - Match binary code
- Tracing - Trace code execution
- Tracing - Trace build
- Code Security - Analyze code statically (SAST/linting)
- Code Security - Analyze code dynamically (DAST)
- Download - Source package
- Download - Source repositories
- Download - Binary package
- Deployment - Deployable as containers (Docker/OCI/k8s/etc)
- Deployment - Deployable in CI/CD pipelines
- Deployment - Deployable as a library
- Run - Run as a command line tool
- Run - Run as a web application
- Run - Run as an API service
other_capabilities
License triage - When incorrect SPDX license identifiers are detected and can be mapped to correct SPDX License identifiers where possible this is identified