blob: 9cfedf4fa02463748cb593b77e0cca1572d32e3f [file] [log] [blame] [view]
# Extensions
Bazel rules for interfacing with other rules and integrations with popular 3rd party tools.
## Setup
The extension rules are released with each release of `rules_rust` (core) which can be found on [the GitHub Releases page](https://github.com/bazelbuild/rules_rust/releases). We recommend using the latest release from that page.
### Bzlmod
Note that rules_rust bzlmod support is still a work in progress. Most features should work, but bugs are more likely. This is not a desired end-state - please report (or better yet, help fix!) bugs you run into.
To use `rules_rust` extensions in a project using bzlmod, add the following to your `MODULE.bazel` file:
```python
bazel_dep(name = "rules_rust_{EXTENSION}", version = "{VERSION}")
```
Don't forget to substitute in your desired release's version number and `{EXTENSION}` with the
name of the desired extension. E.g.:
```python
bazel_dep(name = "rules_rust_bindgen", version = "0.55.0")
```
### WORKSPACE
To use `rules_rust` extensions in a project using a WORKSPACE file, add the following to your `WORKSPACE` file to add the external repositories for the Rust toolchain:
```python
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
# To find additional information on this release or newer ones visit:
# https://github.com/bazelbuild/rules_rust/releases
http_archive(
name = "rules_rust_{EXTENSION}",
# See releases page
)
# Refer to the documentation of the desired rules for how to load other necessary dependencies.
```
Don't forget to substitute in your desired release's version number, integrity hash, and `{EXTENSION}` with the name of the desired extension.