This is a repository to vendor and provide build rules for the third party crates that Pigweed's rust code depends on. Currently only Bazel build rules are provided.
This repository provides two separate sets of crates. One for
std environments and one for
no_std environments. The set that is used is determined by the
//:std_enabled constraint setting and defaults to
std. To use
@rust_crates//:no_std to your platform definition.
The list of vendored crates is defined by the dependencies listed in //crates/Cargo.toml and //crates_std/Cargo.toml. The contents of the
//crates_std directories are generated by the
To update the vendored crates, build files, and aliases to match run the following commands from the top level directory of the repository:
bazel run //:crates_vendor -- --repin bazel run //:crates_vendor_std -- --repin cargo run -- --config config.toml > aliases.bzl
Licenses can be checked with
cargo license -d in the appropriate stub_crate.
We keep this, and all Markdown files in this repository, in a consistent Markdown format using mdformat. To install and format, use the following commands:
pip install mdformat-gfm mdformat README.md
= note: collect2: fatal error: cannot find 'ld' compilation terminated.
If you get the above error when running
bazel run //:crates_vendor -- --repin, ensure
lld is installed on your system. For instance, on Debian based systems:
sudo apt install lld