# Bill of Materials for Rust Crates ![Crates.io](https://img.shields.io/crates/v/cargo-bom.svg) > 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](https://en.wikipedia.org/wiki/Software_bill_of_materials) This tool (`cargo bom`) can be used to construct Bill of Materials for software using [Cargo](http://doc.crates.io/) 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 ```console $ 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: ```powershell 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](./BOM.txt). # License `cargo bom` is distributed under the terms of the MIT license. See [LICENSE](./LICENSE) for details.