Skip to content

Repository files navigation

AboutCode

What is AboutCode?

AboutCode is a family of FOSS projects to uncover metadata about software:

  • where does the code come from? which software package?
  • what is its license? copyright?
  • is the code vulnerable, maintained, well coded?
  • what are its dependencies, are there vulnerabilities/licensing issues?

All these are questions that are important to answer: there are millions of free and open source software components available on the web for reuse.

Knowing where a software package comes from, what its license is and whether it is vulnerable should be a problem of the past such that everyone can safely consume more free and open source software. We support not only open source software, but also open data, generated and curated by our applications.

Note

This is a repository with information on aboutcode open source activities and not the actual code repository. See the projects section below for links to all the code repositories of our projects with a brief overview and our wiki if you are looking to participate.

Important Links

Tip

To manually build the documentation, run make docs from the root of this repo.

Contributing

We welcome contributions! Whether you're fixing bugs, adding features, or improving documentation, we'd love your help.

Get started:

Projects

Core Tools

ProjectDescriptionMaintainer
ScanCode ToolkitDetect origin, license, and vulnerabilities in code, packages, and dependencies@AyanSinhaMahapatra
ScanCode.ioWeb UI and API for running complex scans in pipelines with CycloneDX and SPDX support@tdruez
ScanCode LicenseDBFree database of 2400+ software licenses with metadata and detection rules (public instance)@AyanSinhaMahapatra, @DennisClark
ScanCode WorkbenchDesktop application to visualize and review ScanCode Toolkit scan results@AyanSinhaMahapatra, @mjherzog
DejaCodeEnterprise application for open source license compliance and supply chain integrity@tdruez, @DennisClark
VulnerableCodeDatabase of software package vulnerabilities with Web UI and API (public instance)@TG1999, @keshav-space
PURLDBDatabase of package metadata keyed by PURL with API access@JonoYang

Inspectors

Special-purpose analysis tools that run as ScanCode Toolkit plugins, ScanCode.io pipeline steps, or from the command line.

ProjectDescriptionMaintainer
binary-inspectorExtract symbols from ELF, Mach-O, WinPE and other binary formats@AyanSinhaMahapatra
container-inspectorAnalyze structure and provenance of Docker image layers@JonoYang, @chinyeungli
source-inspectorInspect source code to collect symbols, strings, and comments@JonoYang
nuget-inspectorResolve dependencies for .NET/NuGet projects without requiring dotnet SDK@JonoYang
python-inspectorAnalyze PyPI packages and resolve Python dependencies@TG1999, @chinyeungli
debian-inspectorParse and inspect Debian control files and codebases@JonoYang, @AyanSinhaMahapatra
elf-inspectorInspect binary ELF files and collect metadata@AyanSinhaMahapatra
go-inspectorExtract dependencies and symbols from Go binaries@JonoYang
rust-inspectorExtract dependencies and symbols from Rust binaries@AyanSinhaMahapatra

Libraries

ProjectDescriptionMaintainer
license-expressionParse, analyze, and normalize SPDX license expressions@AyanSinhaMahapatra
commoncodeCommon utilities for paths, dates, files, and hashes@AyanSinhaMahapatra
extractcodeUniversal archive extraction library and CLI tool@JonoYang
fetchcodeReliably fetch code via HTTP, FTP, and version control systems@JonoYang

Other Tools

ProjectDescriptionMaintainer
aboutcode-toolkitDocument code provenance and generate attribution notices using ABOUT files@chinyeungli
universParse and compare package versions across all ecosystems@TG1999
federatedcodeDecentralized, federated metadata system for open source software@keshav-space

AboutCode Data

AboutCode Data is a set of conventions for data structures that all AboutCode tools can use to exchange data. ABOUT files and ScanCode Toolkit data are examples of this approach, supporting projects like libraries.io and OSS Review Toolkit.

Standards and Related Projects

AboutCode is based on key industry standards and works closely with other FOSS organizations:

PURL (Package URL)

PURL is a URL string used to identify and locate software packages universally across programming languages, package managers, and tools. It originated from ScanCode and is in process to become an Ecma standard.

Maintainer: @johnmhoran

VERS (Version Range Specification)

VERS is an emerging specification for resolving dependency and vulnerable version ranges. It originated as part of the PURL project and is in process to become an Ecma standard.

Specification: VERSION-RANGE-SPEC.rst

Related Organizations

  • Package URL: A widely used standard to identify software packages with simple, readable URLs. See the PURL discussions for Ecma standardization details.

  • SPDX: System Package Data Exchange, a specification to document the origin and licensing of packages.

  • CycloneDX: OWASP CycloneDX is a full-stack Bill of Materials (BOM) standard for supply chain security.

  • ClearlyDefined: A project to help FOSS projects improve their licensing and documentation clarity (incubating with opensource.org).


License: Apache License 2.0 | Code of Conduct: CODE_OF_CONDUCT.rst

About

AboutCode project: tools and data to uncover things about code: the provenance, origin, license, and more (packages, security, quality, etc.) of FOSS code. Get started at https://aboutcode.readthedocs.io/

Topics

Resources

Contributing

Security policy

Stars

302 stars

Watchers

27 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages