Need help with cargo-about?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

EmbarkStudios
134 Stars 6 Forks Other 88 Commits 8 Opened issues

Description

📜 Cargo plugin to generate list of all licenses for a crate 🦀

Services available

!
?

Need anything else?

Contributors list

📜 cargo-about

Embark Embark Crates.io Docs dependency status Build Status

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.

Getting started

Installing

cargo install cargo-about

Generate license information for your own project

# 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-about
will 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]]

  • root
    Name of the root folder
  • license
    Name of the license. Has to be parsable from SPDX, see https://spdx.org/licenses/
  • license-file
    The path to the license file where the license is specified
  • license-start
    The starting line number of the license in the specified license file
  • license-end
    The 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.

  • license
    Name of the license that you want to ingore. Has to be parsable from SPDX, see https://spdx.org/licenses/
  • license-file
    The 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

Variables

  • overview
    A list of
    LicenseSet
  • licenses
    A list of
    License

Types

LicenseSet

  • count
    The number of times the license is used
  • name
    The name of the license
  • id
    The
    id
    of the license

License

  • name
    The full name of the license
  • id
    The SPDX identifier
  • text
    The license text
  • source_path
    The path of the license
  • used_by
    A list of
    UsedBy

UsedBy

  • crate
    Metadata for a cargo package
  • path
    Optional path of the dependency that is being used by the license

Example

    {{#each overview}}
  • {{name}} ({{count}})
  • {{/each}}

Preview of the default
about.hbs

license You can view the full license here

FAQ

Unable to satisfy the following licenses

[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

MIT
or
Unlicense
as an
accepted
license in your
about.toml

Contributing

Contributor Covenant

We welcome community contributions to this project.

Please read our Contributor Guide for more information on how to get started.

License

Licensed under either of

  • Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
  • MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)

at your option.

Contribution

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.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.