ScanCode是一个用于扫描代码以检查许可证、版权、软件包及其文档化依赖项以及其他有趣事实的工具。
项目描述
典型的软件项目通常重新使用数百个第三方包。许可证和包、依赖项和来源信息并不总是容易找到,并且未经规范化:ScanCode为您发现并规范化这些数据。
在此处了解有关ScanCode的更多信息:https://scancode-toolkit.readthedocs.io/.
查看代码:https://github.com/nexB/scancode-toolkit
发现更多
ScanCode.io服务器项目在此处:https://scancodeio.readthedocs.io
ScanCode Workbench项目,用于可视化scancode结果数据:https://github.com/nexB/scancode-workbench
其他伴随的SCA项目,用于代码来源、许可证和安全分析在此处:https://aboutcode.org
构建和测试状态
我们在多个持续集成环境中对每个提交运行30,000多个测试,以确保与多个版本的Windows、Linux和macOS的良好平台兼容性。
Azure |
RTD构建 |
GitHub操作文档 |
GitHub操作发布 |
---|---|---|---|
为什么使用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 Web应用来组织并运行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 安装程序、NuGet、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 tar包:
./extractcode mytar.tar.bz2
有关详细信息,请参阅所有extractcode选项和如何提取归档。
支持
如果您遇到问题、有建议或发现错误,请在以下地址提交工单:https://github.com/nexB/scancode-toolkit/issues
对于讨论和聊天,我们有
源代码和下载
许可证
整体许可证为Apache-2.0
对于参考数据集,使用CC-BY-4.0(最初为公共领域)。
第三方组件和测试套件代码和数据使用多种其他次要许可或copyleft许可证(LGPL、MIT、BSD、GPL 2/3等)。
有关ScanCode使用的第三方代码的来源和许可证的更多信息,请参阅NOTICE文件和.ABOUT文件。
项目详情
下载文件
下载适合您平台的文件。如果您不确定该选择哪个,请了解有关安装包的更多信息。
源代码分发
构建分发版
scancode-toolkit-32.2.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a3e736681f68008e71c878f6c6d428c123f85a3aba4400266ac5e3af35d1e64a |
|
MD5 | 18065cea9d27569f353a561822f35a95 |
|
BLAKE2b-256 | 33a8063aba20b4029def8856eec904d5c94fae96a104dd709a866504fa62a04f |
scancode-toolkit-32.2.1-cp312-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 97c5995d11b8d37b17eeeaa3780f039160b9e361ca204089c94c9f34c30cc749 |
|
MD5 | 2d65b95cc50397c54a91b51adedcba7d |
|
BLAKE2b-256 | ba21bed8bde08c641f6ef54bf4eac2202f6160fdeabe05da4e3c121e1b351c25 |