module( name = "grpc-client-server", version = "0.0.0", ) ############################################################################### # B A Z E L C E N T R A L R E G I S T R Y # https://registry.bazel.build/ ############################################################################### # https://github.com/bazelbuild/rules_rust/releases bazel_dep(name = "rules_rust", version = "0.0.0") local_path_override( module_name = "rules_rust", path = "../..", ) bazel_dep(name = "rules_rust_prost", version = "0.54.1") local_path_override( module_name = "rules_rust_prost", path = "../../extensions/prost", ) # # Rules for protobuf / gRPC # https://github.com/bazelbuild/rules_proto/releases bazel_dep(name = "rules_proto", version = "7.1.0") # https://registry.bazel.build/modules/protobuf bazel_dep(name = "protobuf", version = "29.0", repo_name = "com_google_protobuf") # https://github.com/bazel-contrib/toolchains_llvm bazel_dep(name = "toolchains_llvm", version = "1.2.0") ############################################################################### # L L V M # https://github.com/bazel-contrib/toolchains_llvm/blob/master/tests/MODULE.bazel ############################################################################### llvm = use_extension("@toolchains_llvm//toolchain/extensions:llvm.bzl", "llvm") # LLVM Versions and platforms # https://github.com/bazel-contrib/toolchains_llvm/blob/master/toolchain/internal/llvm_distributions.bzl LLVM_VERSIONS = { "": "16.0.0", "darwin-aarch64": "16.0.3", "darwin-x86_64": "15.0.7", } # Host LLVM toolchain. llvm.toolchain( name = "llvm_toolchain", llvm_versions = LLVM_VERSIONS, ) use_repo(llvm, "llvm_toolchain", "llvm_toolchain_llvm") register_toolchains("@llvm_toolchain//:all") ############################################################################### # T O O L C H A I N S ############################################################################### # Rust toolchain RUST_EDITION = "2021" RUST_VERSION = "1.79.0" rust = use_extension("@rules_rust//rust:extensions.bzl", "rust") rust.toolchain( edition = RUST_EDITION, versions = [RUST_VERSION], ) use_repo(rust, "rust_toolchains") register_toolchains("@rust_toolchains//:all") # Custom Prost toolchain register_toolchains( "@//build/prost_toolchain", "@//build/proto_toolchain", ) ############################################################################### # R U S T C R A T E S ############################################################################### crate = use_extension("@rules_rust//crate_universe:extensions.bzl", "crate") # # protobuf / gRPC dependencies crate.spec( package = "prost", version = "0.13.1", ) crate.spec( default_features = False, package = "prost-types", version = "0.13.1", ) crate.spec( features = ["transport"], package = "tonic", version = "0.12.1", ) crate.spec( package = "tonic-build", version = "0.12.1", ) crate.spec( package = "protoc-gen-prost", version = "0.4.0", ) crate.annotation( crate = "protoc-gen-prost", gen_binaries = ["protoc-gen-prost"], ) crate.spec( package = "protoc-gen-tonic", version = "0.4.0", ) crate.annotation( crate = "protoc-gen-tonic", gen_binaries = ["protoc-gen-tonic"], ) # # External crates crate.spec( default_features = False, features = [ "macros", "net", "rt-multi-thread", "signal", ], package = "tokio", version = "1.39.3", ) crate.from_specs() use_repo(crate, "crates")