Skip to content

Bill of Materials for Rust Crates

License

Notifications You must be signed in to change notification settings

sensorfu/cargo-bom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

99 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bill of Materials for Rust Crates

Crates.io

A Software Bill of Materials (software BOM) is a list of components in a piece of software. Software vendors often create products by assembling open source and commercial software components. The software BOM describes the components in a product. It is analogous to a list of ingredients on food packaging.

Source: Wikipedia

This tool (cargo bom) can be used to construct Bill of Materials for software using Cargo package manager.

The output of cargo bom has two sections. First it prints out a table with all top level dependencies, version numbers and names of licenses. Then it prints all license texts found from depended projects (files matching globs "LICENSE*" and "UNLICENSE*").

Example usage

$ cargo bom >BOM.txt
$ head BOM.txt
┌───────────┬─────────┬─────────────────┐
│ Name      │ Version │ Licenses        │
├───────────┼─────────┼─────────────────┤
│ anyhow    │ 1.0.68  │ Apache-2.0, MIT │
├───────────┼─────────┼─────────────────┤
│ cargo     │ 0.67.0  │ Apache-2.0, MIT │
├───────────┼─────────┼─────────────────┤
│ itertools │ 0.10.5  │ Apache-2.0, MIT │
├───────────┼─────────┼─────────────────┤
│ structopt │ 0.3.26  │ Apache-2.0, MIT │

Windows

In Windows the output to file can be written via the following PowerShell command:

cargo bom | Out-File -FilePath BOM.txt -Encoding oem

Bill of Materials

The Bill of Materials for this project can be found from BOM.txt.

License

cargo bom is distributed under the terms of the MIT license.

See LICENSE for details.