Rust Protos のビルド

Cargo または Bazel を使用して Rust プロトを構築する方法について説明します。

Cargo

ビルドを設定する方法の例については、protobuf-example クレートを参照してください。

Bazel

Protobuf 定義の Rust ライブラリを構築するプロセスは、他のプログラミング言語と同様です

  1. 言語に依存しない proto_library ルールを使用します

    proto_library(
        name = "person_proto",
        srcs = ["person.proto"],
    )
    
  2. 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"],
    )
    
  3. 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",
        ],
    )