ScanCode是一款扫描代码以检测许可证、版权、软件包及其文档化依赖项以及其他有趣事实的工具。scancode-toolkit-mini是一个特殊的构建版本,默认不包含预构建的二进制依赖项。这些依赖项可以单独安装或通过extra_requires scancode-toolkit-mini[full]安装。
项目描述
一个典型的软件项目通常会重新使用数百个第三方包。许可证和包、依赖关系和来源信息并不总是容易找到,也没有规范化:ScanCode为您发现和规范化这些数据。
有关ScanCode的更多信息,请参阅此处:https://scancode-toolkit.readthedocs.io/。
查看代码:https://github.com/nexB/scancode-toolkit
探索更多
ScanCode.io服务器项目在这里: https://scancodeio.readthedocs.io
用于可视化scancode结果数据的ScanCode Workbench项目: https://github.com/nexB/scancode-workbench
此处还有其他配套SCA项目,用于代码来源、许可证和安全分析: https://aboutcode.org
构建和测试状态
我们在多个CI上对每个提交运行30,000多个测试,以确保与Windows、Linux和macOS的多个版本的良好平台兼容性。
Azure |
RTD构建 |
GitHub actions文档 |
GitHub actions发布 |
---|---|---|---|
为什么使用ScanCode?
作为一款独立命令行工具,ScanCode易于安装、运行,并嵌入到您的CI/CD处理流程中。它可以在Windows、macOS和Linux上运行。
ScanCode被多个项目和组织使用,例如Eclipse基金会、OpenEmbedded.org、FSFE、FSF、OSS Review Toolkit、ClearlyDefined.io、RedHat Fabric8分析等。
ScanCode在源代码和二进制文件中检测许可证、版权、包清单、直接依赖关系等,并被认为是该领域的最佳和参考工具,被多个开源工具作为软件组成数据收集的核心工具重新使用。
ScanCode提供最精确的许可证检测引擎,并与许可证文本数据库和您的代码进行完全比较(也称为diff或红色线比较),而不是仅仅依赖于近似正则表达式模式或概率搜索、编辑距离或机器学习。
用Python编写的ScanCode易于通过插件扩展,以贡献新的和改进的扫描器、数据摘要、包清单解析器和新的输出。
您可以将扫描结果保存为JSON、YAML、HTML、CycloneDX或SPDX,甚至使用Jinja模板创建自己的格式。
您还可以使用配套的ScanCode.io网络应用来组织和运行ScanCode服务器端,以组织和存储多个扫描项目,包括脚本化扫描管道。
您可以使用ScanCode Workbench桌面应用程序轻松地可视化和分析ScanCode输出数据。
ScanCode正在积极维护,拥有一个不断增长的用户和贡献者社区。
ScanCode经过大量测试,具有超过20,000个测试的自动化测试套件。
ScanCode拥有广泛且不断增长的文档。
ScanCode可以处理软件包,构建清单和锁文件格式以收集软件包URL并提取元数据:Alpine软件包、BUCK文件、ABOUT文件、Android应用程序、Autotools、Bazel、JavaScript Bower、Java Axis、MS Cab、Rust Cargo、Cocoapods、Chef Chrome应用程序、PHP Composer和composer.lock、Conda、CPAN、Debian、Apple dmg、Java EAR、WAR、JAR、FreeBSD软件包、Rubygems gemspec、Gemfile和Gemfile.lock、Go模块、Haxe软件包、InstallShield安装程序、iOS应用程序、ISO镜像、Apache IVY、JBoss Sar、R CRAN、Apache Maven、Meteor、Mozilla扩展、MSI安装程序、JavaScript npm软件包、package-lock.json、yarn.lock、NSIS安装程序、NugGet、OPam、Cocoapods、Python PyPI setup.py、setup.cfg以及一些相关的锁文件格式、半结构化的README文件,如README.android、README.chromium、README.facebook、README.google、README.thirdparty、RPMs、Shell存档、Squashfs镜像、Java WAR、Windows可执行文件以及Windows注册表等。有关所有可用软件包解析器的完整列表,请参阅此处。
请参阅我们的路线图以获取即将推出的功能。
文档
ScanCode文档托管在scancode-toolkit.readthedocs.io。
如果您是scancode结果数据可视化的新手,请从我们的新手页面开始。
如果您想比较ScanCode不同版本的输出更改,或想查看ScanCode生成的扫描结果,请查看我们的参考扫描。
其他重要文档页面
有关相关配套项目和工具的信息,请参阅https://aboutcode.org。
安装
在安装ScanCode之前,请确保已正确安装先决条件。这意味着为x86/64架构安装Python 3.8。我们支持Python 3.8、3.9、3.10、3.11和3.12。
有关受支持的平台和Python版本的信息,请参阅先决条件。
有几种常见的安装ScanCode的方法。
**作为应用程序安装:安装Python 3.8,下载发布存档,解压缩并运行**。这是推荐的安装方法。
作为库的开发安装,使用“pip install scancode-toolkit” [注意,这不支持arm64机器]
在Fedora 40+中,您可以使用dnf install scancode-toolkit安装
快速入门
ScanCode成功安装后,您可以运行一个打印在屏幕上的示例扫描,并以JSON格式显示
scancode -clip --json-pp - samples
按照如何运行扫描教程在ScanCode默认分发的samples目录上执行基本扫描。
查看更多命令示例
scancode --examples
有关更多信息,请参阅如何选择扫描中要检测的内容和如何指定输出格式。
存档提取
默认情况下,ScanCode不会在扫描过程中从tar包、zip文件和其他存档中提取文件。在运行扫描之前,必须先提取代码库中存在的存档:extractcode是一个捆绑的实用工具,充当主要通用的存档提取器。例如,以下命令将在mytar.tar.bz2-extract目录中递归提取mytar.tar.bz2存档
./extractcode mytar.tar.bz2
有关详细信息,请参阅所有extractcode选项和如何提取存档。
支持
如果您遇到问题、有建议或发现了错误,请在以下位置提交工单:https://github.com/nexB/scancode-toolkit/issues
有关讨论和聊天,我们有
源代码和下载
许可证
整体许可证为Apache-2.0
参考数据集使用CC-BY-4.0(最初为公共领域)。
第三方组件和测试套件代码及数据的多个其他次要许可(LGPL、MIT、BSD、GPL 2/3等)。
有关ScanCode中使用的第三方代码的来源和许可证的更多详细信息,请参阅NOTICE文件和.ABOUT文件。
项目详情
下载文件
下载适合您平台的应用程序。如果您不确定要选择哪个,请了解有关安装软件包的更多信息。
源代码分发
构建版本
scancode-toolkit-mini-32.2.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2a93e90b0797696bb2247fe8230e155d3fb0124408426b885b35bbf52854a00e |
|
MD5 | 2d834145ac4167496973fff9c70627dc |
|
BLAKE2b-256 | 52212e8e21c0413212d4c5457b1d1811691dc344b38b62429e995cf5f8e3218d |
scancode_toolkit_mini-32.2.1-cp312-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2d1832b2458cf3e43a21721e09cd228834d4d05d5abde7bd430f447efd180feb |
|
MD5 | 4d05a4767b3183d616c5a643f4970f31 |
|
BLAKE2b-256 | ddea685b3a7e1427a34433e24e3b494534fe8595f4c3678cac275bab1204ca71 |
scancode_toolkit_mini-32.2.1-cp311-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d6d791d75f797107fd19b97e48754376b5d7ab8d847a4b2e5a8538f9c578b7ad |
|
MD5 | 5a6b1340e886f0f57145e9dd38eb0f95 |
|
BLAKE2b-256 | 29725f6cce8d3a9a503a658535b22dbcd41c8cd2f59a625da1ffd0e2b2a6f98f |
scancode_toolkit_mini-32.2.1-cp310-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fe7c76f8fdb4ba91c0c0b159f86b423cab680b8e7bf5dd443163bcc8cb43ace3 |
|
MD5 | cf7a81f58d824a095acb3e100ffb6dba |
|
BLAKE2b-256 | 189d5a7fb8142b159739e0aef0a857317bfd87f3f381d27c6d33017525dc8a73 |
scancode_toolkit_mini-32.2.1-cp39-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6b2b3f6900b2edc59fe6ebcae50916e910dfe18857f9375cfd6a436ace1c4993 |
|
MD5 | 6d59b9c71a4f5c4fdf28c82f9ae50188 |
|
BLAKE2b-256 | 3e3b6bfc6238736102e7e66f426fd7256ed72f811d4236e237af691a9fc25522 |
scancode_toolkit_mini-32.2.1-cp38-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e038deecad2e88523f8e3f76de4f0b1f3e9faa5014ab46ba0eaca01bf1cf8bd6 |
|
MD5 | df605995aa48ec7903e1a9d8c8420907 |
|
BLAKE2b-256 | e98a619a66773015f7c06d0c42efb5f6b77dce0a82357586bb8ebbb579f5e43d |