diff --git a/seaweed-volume/Cargo.lock b/seaweed-volume/Cargo.lock index ffc7d31f3..ce365ba8d 100644 --- a/seaweed-volume/Cargo.lock +++ b/seaweed-volume/Cargo.lock @@ -4272,6 +4272,19 @@ dependencies = [ "syn", ] +[[package]] +name = "tonic-reflection" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "878d81f52e7fcfd80026b7fdb6a9b578b3c3653ba987f87f0dce4b64043cba27" +dependencies = [ + "prost 0.13.5", + "prost-types 0.13.5", + "tokio", + "tokio-stream", + "tonic", +] + [[package]] name = "tower" version = "0.4.13" @@ -4744,6 +4757,7 @@ dependencies = [ "toml", "tonic", "tonic-build", + "tonic-reflection", "tower 0.4.13", "tower-http 0.5.2", "tracing", diff --git a/seaweed-volume/Cargo.toml b/seaweed-volume/Cargo.toml index d33563467..699a9f9d1 100644 --- a/seaweed-volume/Cargo.toml +++ b/seaweed-volume/Cargo.toml @@ -25,6 +25,7 @@ tokio-stream = "0.1" # gRPC + protobuf tonic = { version = "0.12", features = ["tls"] } +tonic-reflection = "0.12" prost = "0.13" prost-types = "0.13" diff --git a/seaweed-volume/build.rs b/seaweed-volume/build.rs index bff3e68fa..08d5cb392 100644 --- a/seaweed-volume/build.rs +++ b/seaweed-volume/build.rs @@ -1,7 +1,9 @@ fn main() -> Result<(), Box> { + let out_dir = std::path::PathBuf::from(std::env::var("OUT_DIR")?); tonic_build::configure() .build_server(true) .build_client(true) + .file_descriptor_set_path(out_dir.join("seaweed_descriptor.bin")) .compile_protos( &[ "proto/volume_server.proto", diff --git a/seaweed-volume/src/lib.rs b/seaweed-volume/src/lib.rs index 2c4aa7bd6..c295c983d 100644 --- a/seaweed-volume/src/lib.rs +++ b/seaweed-volume/src/lib.rs @@ -9,6 +9,9 @@ pub mod version; /// Generated protobuf modules. pub mod pb { + pub const FILE_DESCRIPTOR_SET: &[u8] = + tonic::include_file_descriptor_set!("seaweed_descriptor"); + pub mod remote_pb { tonic::include_proto!("remote_pb"); } diff --git a/seaweed-volume/src/main.rs b/seaweed-volume/src/main.rs index c66625b55..4fe7e960e 100644 --- a/seaweed-volume/src/main.rs +++ b/seaweed-volume/src/main.rs @@ -455,8 +455,18 @@ async fn run(config: VolumeServerConfig) -> Result<(), Box Result<(), Box