Skip to content

Commit 150704d

Browse files
committed
Update readme
Signed-off-by: Prabhu Subramanian <[email protected]>
1 parent 0a5ef6b commit 150704d

File tree

1 file changed

+22
-11
lines changed

1 file changed

+22
-11
lines changed

README.md

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,24 +10,36 @@
1010

1111
![cdxgen logo](./docs/_media/cdxgen.png)
1212

13-
cdxgen is a CLI tool, library, [REPL](./ADVANCED.md), and server to create a valid and compliant [CycloneDX][cyclonedx-homepage] Bill of Materials (BOM) containing an aggregate of all project dependencies for C/C++, Node.js, PHP, Python, Ruby, Rust, Java, .Net, Dart, Haskell, Elixir, and Go projects in JSON format. CycloneDX is a full-stack BOM specification that is easily created, human and machine-readable, and simple to parse. The tool supports CycloneDX specification versions from 1.4 - 1.6.
13+
cdxgen is a CLI tool, library, [REPL](./ADVANCED.md), and server to create a valid and compliant [CycloneDX][cyclonedx-homepage] Bill of Materials (BOM) containing an aggregate of all project dependencies in JSON format. CycloneDX is a full-stack BOM specification that is easily created, human and machine-readable, and simple to parse. The tool supports CycloneDX specification versions from 1.4 - 1.6.
1414

15-
When used with plugins:
15+
Supported BOM formats:
1616

17-
- cdxgen could generate an OBOM for Linux docker images and even VMs running Linux or Windows operating systems
18-
- cdxgen also includes an evinse tool to generate component evidence, CBOM, and SaaSBOM for some languages
17+
- Software (SBOM) - For many languages and container images.
18+
- Cryptography (CBOM) - For Java and Python projects.
19+
- Operations (OBOM) - For Linux container images and VMs running Linux or Windows operating systems.
20+
- Software-as-a-Service (SaaSBOM) - For Java, Python, JavaScript, TypeScript, and PHP projects.
21+
- Attestations (CDXA) - Generate SBOM with templates for multiple standards. Sign the BOM document at a granular level to improve authenticity.
22+
- Vulnerability Disclosure Report (VDR) - Use cdxgen with [OWASP depscan](https://github.com/owasp-dep-scan/dep-scan) to automate the generation of VDR at scale.
1923

2024
## Why cdxgen?
2125

2226
Most SBOM tools are like simple barcode scanners. For easy applications, they can parse a few package manifests and create a list of components only based on these files without any deep inspection. Further, a typical application might have several repos, components, and libraries with complex build requirements. Traditional techniques to generate an SBOM per language or package manifest either do not work in enterprise environments or don't provide the confidence required for both compliance and automated analysis. So we built cdxgen - the universal polyglot SBOM generator that is user-friendly, precise, and comprehensive!
2327

2428
<img src="./docs/_media/why-cdxgen.jpg" alt="why cdxgen" width="256">
2529

30+
Our philosophy:
31+
32+
- Explainability: Don't list, but explain with evidence.
33+
- Precision: Try using multiple techniques to improve precision, even if it takes extra time.
34+
- Personas: Cater to the needs of a range of personas such as security researchers, compliance auditors, developers, and SOC.
35+
- Lifecycle: Support BOM generation for various product lifecycles.
36+
2637
## Documentation
2738

28-
Please visit our [documentation site][docs-homepage] for detailed usage, tutorials and support documentation.
39+
Please visit our [documentation site][docs-homepage] for detailed usage, tutorials, and support documentation.
2940

3041
Sections include:
42+
3143
- [Getting Started][docs-homepage]
3244
- [CLI Usage][docs-cli]
3345
- [Server Usage][docs-server]
@@ -37,7 +49,6 @@ Sections include:
3749
- [Permissions][docs-permissions]
3850
- [Support (Enterprise & Community)][docs-support]
3951

40-
4152
### Automatic usage detection
4253

4354
For node.js projects, lock files are parsed initially, so the SBOM would include all dependencies, including dev ones. An AST parser powered by babel-parser is then used to detect packages that are imported and used by non-test code. Such imported packages would automatically set their scope property to `required` in the resulting SBOM. You can turn off this analysis by passing the argument `--no-babel`. Scope property would then be set based on the `dev` attribute in the lock file.
@@ -472,8 +483,6 @@ Use the [CycloneDX CLI][cyclonedx-cli-github] tool for advanced use cases such a
472483

473484
Permission to modify and redistribute is granted under the terms of the Apache 2.0 license. See the [LICENSE][github-license] file for the full license.
474485

475-
476-
477486
## Integration as library
478487

479488
cdxgen is [ESM only](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c) and could be imported and used with both deno and Node.js >= 20
@@ -498,7 +507,6 @@ const dbody = await submitBom(args, bomNSData.bomJson);
498507

499508
Please check out our [contribute to CycloneDX/cdxgen documentation][github-contribute] if you are interested in helping.
500509

501-
502510
Before raising a PR, please run the following commands.
503511

504512
```bash
@@ -510,9 +518,9 @@ npm run lint
510518
npm test
511519
```
512520

513-
514521
<!-- LINK LABELS -->
515522
<!-- Badges -->
523+
516524
[badge-github-contributors]: https://img.shields.io/github/contributors/cyclonedx/cdxgen
517525
[badge-github-license]: https://img.shields.io/github/license/cyclonedx/cdxgen
518526
[badge-github-releases]: https://img.shields.io/github/v/release/cyclonedx/cdxgen
@@ -522,13 +530,15 @@ npm test
522530
[badge-swh]: https://archive.softwareheritage.org/badge/origin/https://github.com/CycloneDX/cdxgen/
523531

524532
<!-- cdxgen github project -->
533+
525534
[github-contribute]: https://github.com/CycloneDX/cdxgen/contribute
526535
[github-contributors]: https://github.com/CycloneDX/cdxgen/graphs/contributors
527536
[github-issues]: https://github.com/CycloneDX/cdxgen/issues
528537
[github-license]: https://github.com/cyclonedx/cdxgen/blob/master/LICENSE
529538
[github-releases]: https://github.com/CycloneDX/cdxgen/releases
530539

531540
<!-- cdxgen documentation site -->
541+
532542
[docs-homepage]: https://cyclonedx.github.io/cdxgen
533543
[docs-advanced-usage]: https://cyclonedx.github.io/cdxgen/#/ADVANCED
534544
[docs-cli]: https://cyclonedx.github.io/cdxgen/#/CLI
@@ -539,6 +549,7 @@ npm test
539549
[docs-support]: https://cyclonedx.github.io/cdxgen/#/PROJECT_TYPES
540550

541551
<!-- web links-->
552+
542553
[appthreat-homepage]: https://www.appthreat.com
543554
[cyclonedx-homepage]: https://cyclonedx.org
544555
[cyclonedx-cli-github]: https://github.com/CycloneDX/cyclonedx-cli
@@ -552,4 +563,4 @@ npm test
552563
[npmjs-cdxgen]: https://www.npmjs.com/package/@cyclonedx/cdxgen
553564
[podman-github-rootless]: https://github.com/containers/podman/blob/master/docs/tutorials/rootless_tutorial.md
554565
[podman-github-remote]: https://github.com/containers/podman/blob/master/docs/tutorials/mac_win_client.md
555-
[swh-cdxgen]: https://archive.softwareheritage.org/browse/origin/?origin_url=https://github.com/CycloneDX/cdxgen
566+
[swh-cdxgen]: https://archive.softwareheritage.org/browse/origin/?origin_url=https://github.com/CycloneDX/cdxgen

0 commit comments

Comments
 (0)