📜 Cargo plugin to generate list of all licenses for a crate 🦀
Cargo plugin for generating a listing of all of the crates used by a root crate, and the terms under which they are licensed.
Please Note: This is a tool that we use (and like!) and it makes sense to us to release it as open source. However, we can’t take any responsibility for your use of the tool, if it will function correctly or fulfil your needs. No functionality in - or information provided by - cargo-about constitutes legal advice.
cargo install cargo-about
# Generates `about.toml` and `about.hbs` in your cargo project cargo about init # Generate the license information with cargo about generate about.hbs > license.html
about.toml
[accepted]
Priority list of all the accepted licenses for a project.
cargo-aboutwill try to satisfy the licenses in the order that they are declared in this list.
accepted = [ "Apache-2.0", "MIT", ]
[targets]
A list of targets that are actually building for. Crates which are only included via
cfg()expressions that don't match one or more of the listed targets will be ignored.
targets = [ "x86_64-unknown-linux-gnu", "x86_64-unknown-linux-musl", "x86_64-pc-windows-msvc", "x86_64-apple-darwin", ]
ignore-build-dependencies
If true, all crates that are only used as build dependencies will be ignored.
ignore-build-dependencies = true
ignore-dev-dependencies
If true, all crates that are only used as dev dependencies will be ignored.
ignore-dev-dependencies = true
[[DEPENDENCY.additional]]
rootName of the root folder
licenseName of the license. Has to be parsable from SPDX, see https://spdx.org/licenses/
license-fileThe path to the license file where the license is specified
license-startThe starting line number of the license in the specified license file
license-endThe ending line number of the license in the specified license file
# Example [[physx-sys.additional]] root = "PhysX" license = "BSD-3-Clause" license-file = "PhysX/README.md" license-start = 3 license-end = 28
[[DEPENDENCY.ignore]]
Sometimes libraries include licenses for example code that you don't want to use.
licenseName of the license that you want to ingore. Has to be parsable from SPDX, see https://spdx.org/licenses/
license-fileThe path to the license file where the license is specified
[[imgui-sys.ignore]] license = "Zlib" license-file = "third-party/cimgui/imgui/examples/libs/glfw/COPYING.txt"
about.hbs
See handlebars
overviewA list of
LicenseSet
licensesA list of
License
LicenseSet
countThe number of times the license is used
nameThe name of the license
idThe
idof the license
License
nameThe full name of the license
idThe SPDX identifier
textThe license text
source_pathThe path of the license
used_byA list of
UsedBy
UsedBy
crateMetadata for a cargo package
pathOptional path of the dependency that is being used by the license
about.hbs
You can view the full license here
[ERROR] Crate 'aho-corasick': Unable to satisfy [Unlicense OR MIT], with the following accepted licenses [Apache-2.0]
In this case you are missing either
MITor
Unlicenseas an
acceptedlicense in your
about.toml
We welcome community contributions to this project.
Please read our Contributor Guide for more information on how to get started.
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.