cdxgen  by CycloneDX

CLI tool for CycloneDX SBOM generation

created 5 years ago
745 stars

Top 47.6% on sourcepulse

GitHubView on GitHub
1 Expert Loves This Project
Project Summary

cdxgen is a versatile command-line tool for generating CycloneDX Software Bill of Materials (SBOMs) across numerous languages and container images. It caters to security researchers, compliance auditors, and developers by providing precise, evidence-based SBOMs, supporting multiple SBOM formats including Software, Cryptography, Operations, and Attestations.

How It Works

cdxgen employs a polyglot approach, utilizing various analysis techniques such as manifest parsing, source code analysis, and binary analysis to achieve high precision. It aims for explainability by providing evidence for detected components and supports multiple CycloneDX specification versions (1.4-1.6). The tool can also integrate with Dependency-Track for automated submission and offers a server mode for dynamic SBOM generation.

Quick Start & Requirements

  • Install: npm install -g @cyclonedx/cdxgen (or via Homebrew, Winget, Docker).
  • Prerequisites: Java >= 21 is required for C/C++ and Python SBOM generation. FETCH_LICENSE=true requires a GitHub token for unthrottled license lookups.
  • Demo: https://cyclonedx.github.io/cdxgen/

Highlighted Details

  • Supports Software (SBOM), Cryptography (CBOM), Operations (OBOM), and Attestations (CDXA) BOM formats.
  • Can generate SBOMs from source code, container images (Docker/OCI), and live systems (via obom alias).
  • Offers BOM signing capabilities using JSON Web Signatures for authenticity.
  • Includes automatic usage detection for Node.js projects to differentiate production vs. development dependencies.

Maintenance & Community

The project is actively maintained by the CycloneDX community. Further details and community interaction can be found via their documentation and potential community channels linked from their GitHub repository.

Licensing & Compatibility

Licensed under the Apache 2.0 license, permitting commercial use and modification.

Limitations & Caveats

cdxgen may freeze with Java versions older than 21; ensure Java >= 21 is correctly configured. The "universal" SBOM type can generate a very large number of components requiring significant triaging.

Health Check
Last commit

1 day ago

Responsiveness

1 day

Pull Requests (30d)
76
Issues (30d)
24
Star History
62 stars in the last 90 days

Explore Similar Projects

Starred by Elie Bursztein Elie Bursztein(Cybersecurity Lead at Google DeepMind), Chip Huyen Chip Huyen(Author of AI Engineering, Designing Machine Learning Systems), and
1 more.

oss-fuzz-gen by google

0.3%
1k
LLM-powered fuzz target generator for C/C++/Java/Python projects, benchmarked via OSS-Fuzz
created 1 year ago
updated 5 days ago
Starred by David Cournapeau David Cournapeau(Author of scikit-learn), Chip Huyen Chip Huyen(Author of AI Engineering, Designing Machine Learning Systems), and
6 more.

repomix by yamadashy

0.8%
18k
CLI tool to pack codebases into AI-friendly formats for LLMs
created 1 year ago
updated 5 days ago
Feedback? Help us improve.