开放代码社区 › sbom-tool
sbom-tool
开发工具GoEnglish 简体中文 SBOM-TOOL 是通过源码仓库、代码指纹、构建环境、制品信息、制品内容、依赖组件等多种维度信息,为软件项目生成软件物料清单(SBOM)的一款CLI工具。 采集源代码工程信息,包括仓库地址、版本信息等 采集并生成代码指纹,利用一定算法生成代码指纹 采集工程构建依赖环境信息,包括操作系统、内核、编译器、构建工具等 采集工程构建的依赖组件,支持多种语言、多种包管理器的依赖采集 采集最终制品包信息,包括包名、类型、唯一校验码等 采集制品内容信息,包括文件名类型、唯一校验码等 组装SBOM文档,基于上述采集的信息组装标准SBOM文档 规范格式转换,支持XSPDX、SPDX等
仓库地址
https://gitee.com/JD-opensource/sbom-tool.gitREADME
[](https://oss-compass.org/analyze/sru6zzan) # SBOM-TOOL [English](https://gitee.com/JD-opensource/sbom-tool/blob/master/README.md) | 简体中文 SBOM-TOOL 是通过源码仓库、代码指纹、构建环境、制品信息、制品内容、依赖组件等多种维度信息,为软件项目生成软件物料清单(SBOM)的一款CLI工具。 ## 功能特性 ### 信息采集 - 采集源代码工程信息,包括仓库地址、版本信息等 - 采集并生成代码指纹,利用一定算法生成代码指纹 - 采集工程构建依赖环境信息,包括操作系统、内核、编译器、构建工具等 - 采集工程构建的依赖组件,支持多种语言、多种包管理器的依赖采集 - 采集最终制品包信息,包括包名、类型、唯一校验码等 - 采集制品内容信息,包括文件名类型、唯一校验码等 ### SBOM文档 - 组装SBOM文档,基于上述采集的信息组装标准SBOM文档 - 规范格式转换,支持XSPDX、SPDX等规范,支持JSON等格式 - 规范格式校验,支持XSPDX、SPDX等规范,支持JSON等格式 ## 代码指纹生成能力 | 开发语言 | 是否支持 | |---------------|------| | `C/C++` | 是 | | `Java` | 是 | | `C#` | 是 | | `Dart` | 是 | | `Golang` | 是 | | `Javascript` | 是 | | `Objective-C` | 是 | | `Php` | 是 | | `Python` | 是 | | `Ruby` | 是 | | `Rust` | 是 | | `Swift` | 是 | | `Lua` | 是 | ## 依赖包扫描能力 现已支持以下编程语言相关的配置文件解析、二进制包解析,后续会逐步支持更多的编程语言。 | 包类型 | 包管理器 | 解析文件 | 是否支持依赖图谱 | |-------------|--------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------| | `maven` | [Maven](https://maven.apache.org) | <ul><li>`pom.xml`</li> <li>`*.jar`</li> <li>`*.war`</li><li>`[graph]maven-dependency-tree.txt(mvn dependency:tree -DoutputFile=maven-dependency-tree.txt)`</li></ul> | 是 | | `maven` | [Gradle](https://gradle.org) | <ul><li>`*.gradle`</li> <li>`.gradle.lockfile`</li> <li>`[graph]gradle-dependency-tree.txt(gradlew gradle-baseline-java:dependencies > gradle-dependency-tree.txt)`</li></ul> | 是 | | `conan` | [Conan](https://conan.io) | <ul><li>`conanfile.txt`</li> <li>`conan.lock`</li><li>`[graph]conan-graph-info.json(conan graph info -f json > conan-graph-info.json)`</li></ul> | 是 | | `npm` | [NPM](https://www.npmjs.com) | <ul><li>`package.json`</li> <li>`package-lock.json`</li></ul> | 否 | | `npm` | [Yarn](https://yarnpkg.com) | <ul><li>`[graph]yarn.lock`</li></ul> | 是 | | `npm` | [PNPM](https://pnpm.io/) | <ul><li>`[graph]pnpm.lock`</li></ul> | 是 | | `golang` | [Go Module](https://go.dev/ref/mod) | <ul><li>`go.mod`</li> <li>`Go Binary file`</li> <li>`[graph]go-mod-graph.txt(go mod graph > go-mod-graph.txt)` </li></ul> | 是 | | `golang` | [Glide](https://github.com/Masterminds/glide) | <ul><li>`glide.yml`</li> <li>`glide.yaml`</li></ul> | 否 | | `golang` | [GoDep](https://github.com/tools/godep) | <ul><li>`Godeps.json` </li></ul> | 否 | | `golang` | [Dep](https://github.com/golang/dep) | <ul><li>`Gopkg.toml` </li></ul> | 否 | | `golang` | [GVT](https://github.com/FiloSottile/gvt) | <ul><li>`*/vendor/manifest`</li></ul> | 否 | | `pypi` | [PIP](https://pip.pypa.io) | <ul><li>`Pipfile.lock`</li> <li>`*dist-info/METADATA`</li> <li>`PKG-INFO`</li> <li>`*requirements*.txt`</li> <li>`setup.py` </li><li>`[graph]pipenv-graph.txt(pipenv graph > pipenv-graph.txt)`</li></ul> | 是 | | `pypi` | [Poetry](https://python-poetry.org) | <ul><li>`[graph]poetry.lock`</li></ul> | 是 | | `conda` | [Conda](https://conda.io) | <ul><li>`environment.yml`</li> <li>`environment.yaml`</li> <li>`package-list.txt`</li></ul> | 否 | | `composer` | [Composer](https://get