跳转到主要内容

ScanCode是一款扫描代码以检测许可证、版权、软件包及其文档化依赖项以及其他有趣事实的工具。scancode-toolkit-mini是一个特殊的构建版本,默认不包含预构建的二进制依赖项。这些依赖项可以单独安装或通过extra_requires scancode-toolkit-mini[full]安装。

项目描述

一个典型的软件项目通常会重新使用数百个第三方包。许可证和包、依赖关系和来源信息并不总是容易找到,也没有规范化:ScanCode为您发现和规范化这些数据。

有关ScanCode的更多信息,请参阅此处:https://scancode-toolkit.readthedocs.io/

查看代码:https://github.com/nexB/scancode-toolkit

探索更多

构建和测试状态

我们在多个CI上对每个提交运行30,000多个测试,以确保与Windows、Linux和macOS的多个版本的良好平台兼容性。

Azure

RTD构建

GitHub actions文档

GitHub actions发布

Azure tests status (Linux, macOS, Windows)

Documentation Status

Documentation Tests

Release tests

为什么使用ScanCode?

  • 作为一款独立命令行工具,ScanCode易于安装、运行,并嵌入到您的CI/CD处理流程中。它可以在Windows、macOS和Linux上运行。

  • ScanCode被多个项目和组织使用,例如Eclipse基金会OpenEmbedded.orgFSFEFSFOSS Review ToolkitClearlyDefined.ioRedHat 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的方法。

快速入门

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

有关讨论和聊天,我们有

  • 一个官方的Gitter频道,用于基于Web的聊天。Gitter现在可以通过ElementIRC桥接访问。那里还有其他针对AboutCode项目的特定频道。

  • scancode的讨论频道专门针对使用scancode-toolkit的用户和开发者。

源代码和下载

许可证

  • 整体许可证为Apache-2.0

  • 参考数据集使用CC-BY-4.0(最初为公共领域)。

  • 第三方组件和测试套件代码及数据的多个其他次要许可(LGPL、MIT、BSD、GPL 2/3等)。

有关ScanCode中使用的第三方代码的来源和许可证的更多详细信息,请参阅NOTICE文件和.ABOUT文件。

项目详情


下载文件

下载适合您平台的应用程序。如果您不确定要选择哪个,请了解有关安装软件包的更多信息。

源代码分发

scancode-toolkit-mini-32.2.1.tar.gz (15.2 MB 查看哈希值)

上传时间: 源代码

构建版本

scancode_toolkit_mini-32.2.1-cp312-none-any.whl (113.3 MB 查看哈希值)

上传时间: CPython 3.12

scancode_toolkit_mini-32.2.1-cp311-none-any.whl (113.3 MB 查看哈希值)

上传时间: CPython 3.11

scancode_toolkit_mini-32.2.1-cp310-none-any.whl (113.3 MB 查看哈希值)

上传时间: CPython 3.10

scancode_toolkit_mini-32.2.1-cp39-none-any.whl (113.3 MB 查看哈希值)

上传时间: CPython 3.9

scancode_toolkit_mini-32.2.1-cp38-none-any.whl (113.3 MB 查看哈希值)

上传时间: CPython 3.8

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面