tree: 679e2deec5f60affb0166e259c7a0bd98995aac6 [path history] [tgz]
  1. crates/
  2. crates_std/
  3. src/
  4. .gitignore
  5. aliases.bzl
  6. BUILD.bazel
  7. Cargo.Bazel.lock-std
  8. Cargo.lock
  9. Cargo.toml
  10. config.toml
  11. README.md
  12. rustfmt.toml
  13. WORKSPACE
README.md

Pigweed Rust Third Party Crates

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.

std and no_std

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 no_std add @rust_crates//:no_std to your platform definition.

Adding and Updating the Crates

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 and //crates_std directories are generated by the //:crates_vendor and //:crates_vendor_std targets.

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.

Markdown Formatting

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

FAQ

collect2: fatal error: cannot find ‘ld’ error

  = 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