| load("@rules_rust//crate_universe:defs.bzl", "crate", "crates_vendor", "render_config") |
| load("@rules_rust//rust:defs.bzl", "rust_binary", "rust_test") |
| |
| crates_vendor( |
| name = "crates_vendor", |
| annotations = { |
| "axum": [crate.annotation( |
| compile_data_glob = ["**/*.md"], |
| )], |
| }, |
| mode = "remote", |
| packages = { |
| "axum": crate.spec( |
| version = "0.4.0", |
| ), |
| "hyper": crate.spec( |
| features = ["full"], |
| version = "0.14.22", |
| ), |
| "mime": crate.spec( |
| version = "0.3", |
| ), |
| "serde_json": crate.spec( |
| version = "1.0", |
| ), |
| # TODO: This dependency is added and pinned forward due to the |
| # following issue: https://github.com/hyperium/hyper/issues/3038 |
| "socket2": crate.spec( |
| features = ["all"], |
| version = "0.4.7", |
| ), |
| "tokio": crate.spec( |
| features = ["full"], |
| version = "1.26.0", |
| ), |
| "tower": crate.spec( |
| features = ["util"], |
| version = "0.4", |
| ), |
| "tower-http": crate.spec( |
| features = ["trace"], |
| version = "0.2.1", |
| ), |
| "tracing": crate.spec( |
| version = "0.1", |
| ), |
| "tracing-subscriber": crate.spec( |
| version = "0.3", |
| ), |
| }, |
| # Demonstrate that `crates_vendor` can accept a render_config. To regen this target, simply |
| # navigate to this directory and run `bazel run //vendor_remote_pkgs:crates_vendor_pkgs`. |
| render_config = render_config( |
| regen_command = "See https://github.com/bazelbuild/rules_rust/blob/main/examples/crate_universe/vendor_local_pkgs/BUILD.bazel", |
| ), |
| repository_name = "crates_vendor_pkgs", |
| ) |
| |
| rust_binary( |
| name = "vendor_remote", |
| srcs = glob(["**/*.rs"]), |
| edition = "2018", |
| deps = [ |
| "@crates_vendor_pkgs//:axum", |
| "@crates_vendor_pkgs//:hyper", |
| "@crates_vendor_pkgs//:mime", |
| "@crates_vendor_pkgs//:serde_json", |
| "@crates_vendor_pkgs//:tokio", |
| "@crates_vendor_pkgs//:tower", |
| "@crates_vendor_pkgs//:tower-http", |
| "@crates_vendor_pkgs//:tracing", |
| "@crates_vendor_pkgs//:tracing-subscriber", |
| ], |
| ) |
| |
| rust_test( |
| name = "unit_test", |
| crate = ":vendor_remote", |
| edition = "2018", |
| ) |