Rust-Protos kompilieren

Beschreibt, wie Rust-Protos mit Cargo oder Bazel erstellt werden.

Cargo

Siehe die protobuf-example Crate für ein Beispiel, wie Sie Ihren Build einrichten.

Bazel

Der Prozess des Erstellens einer Rust-Bibliothek für eine Protobuf-Definition ist ähnlich wie bei anderen Programmiersprachen

  1. Verwenden Sie die sprachunabhängige Regel proto_library

    proto_library(
        name = "person_proto",
        srcs = ["person.proto"],
    )
    
  2. Erstellen Sie eine Rust-Bibliothek

    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"],
    )
    
  3. Verwenden Sie die Bibliothek, indem Sie sie in eine Rust-Binärdatei einbinden

    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",
        ],
    )