Сборка Rust Protos
Описывает, как собирать Rust protos с помощью Cargo или Bazel.
Cargo
См. пакет protobuf-example для примера настройки сборки.
Bazel
Процесс сборки Rust библиотеки для определения Protobuf аналогичен другим языкам программирования:
-
Используйте независимое от языка правило
proto_library:proto_library( name = "person_proto", srcs = ["person.proto"], ) -
Создайте Rust библиотеку:
load("//third_party/protobuf/rust:defs.bzl", "rust_proto_library") proto_library( name = "person_proto", srcs = ["person.proto"], ) rust_proto_library( name = "person_rust_proto", deps = [":person_proto"], ) -
Используйте библиотеку, включив ее в Rust бинарный файл:
load("//third_party/bazel_rules/rules_rust/rust:defs.bzl", "rust_binary") load("//third_party/protobuf/rust:defs.bzl", "rust_proto_library") proto_library( name = "person_proto", srcs = ["person.proto"], ) rust_proto_library( name = "person_rust_proto", deps = [":person_proto"], ) rust_binary( name = "greet", srcs = ["greet.rs"], deps = [ ":person_rust_proto", ], )
{{% alert title="Примечание" color="note" %}} Не используйте
rust_upb_proto_library или rust_cc_proto_library напрямую.
rust_proto_library проверяет глобальный флаг сборки, чтобы выбрать подходящий
бэкенд за вас. {{% /alert %}}