Add grpc reflections
Signed-off-by: Nikolai Rodionov <allanger@badhouseplants.net>
This commit is contained in:
15
Cargo.lock
generated
15
Cargo.lock
generated
@@ -477,6 +477,7 @@ dependencies = [
|
||||
"tokio",
|
||||
"tonic",
|
||||
"tonic-prost",
|
||||
"tonic-reflection",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -1696,6 +1697,20 @@ dependencies = [
|
||||
"tonic-build",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tonic-reflection"
|
||||
version = "0.14.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "34da53e8387581d66db16ff01f98a70b426b091fdf76856e289d5c1bd386ed7b"
|
||||
dependencies = [
|
||||
"prost",
|
||||
"prost-types",
|
||||
"tokio",
|
||||
"tokio-stream",
|
||||
"tonic",
|
||||
"tonic-prost",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tower"
|
||||
version = "0.5.2"
|
||||
|
||||
@@ -14,6 +14,7 @@ prost = "0.14.1"
|
||||
tokio = { version = "1.48.0", features = ["rt-multi-thread"] }
|
||||
tonic = "0.14.2"
|
||||
tonic-prost = "0.14.2"
|
||||
tonic-reflection = "0.14.2"
|
||||
|
||||
[features]
|
||||
jack = ["dep:jack"]
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
mod audio_engine;
|
||||
use clap::Parser;
|
||||
use lib::termix::audio_backend::audio_backend_server::{AudioBackend, AudioBackendServer};
|
||||
use lib::termix::audio_backend::{FILE_DESCRIPTOR_SET, audio_backend_server::{AudioBackend, AudioBackendServer}};
|
||||
use tonic::{transport::Server, Request, Response, Status};
|
||||
use log::{debug, error, log_enabled, info, Level};
|
||||
use tonic_reflection::server::v1::{ReflectionService, ServerReflection};
|
||||
/// Simple program to greet a person
|
||||
#[derive(Parser, Debug)]
|
||||
#[command(version, about, long_about = None)]
|
||||
@@ -32,12 +33,13 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
env_logger::init();
|
||||
let args = Args::parse();
|
||||
info!("starting the grpc server on port {}", args.grpc_port);
|
||||
|
||||
let reflections = tonic_reflection::server::Builder::configure().register_encoded_file_descriptor_set(FILE_DESCRIPTOR_SET).build_v1().unwrap();
|
||||
let addr = "[::1]:50051".parse()?;
|
||||
let greeter = TermixAudioBackend::default();
|
||||
|
||||
Server::builder()
|
||||
.add_service(AudioBackendServer::new(greeter))
|
||||
.add_service(reflections)
|
||||
.serve(addr)
|
||||
.await?;
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
use std::io::Result;
|
||||
use std::{env, io::Result, path::PathBuf};
|
||||
|
||||
fn main() -> Result<()> {
|
||||
//let proto_dir = "proto";
|
||||
@@ -6,7 +6,11 @@ fn main() -> Result<()> {
|
||||
//for path in paths {
|
||||
// prost_build::compile_protos(&[path.unwrap().path()], &[proto_dir])?;
|
||||
//}
|
||||
tonic_prost_build::compile_protos("proto/audio_backend.proto")
|
||||
//
|
||||
let out_dir = PathBuf::from(env::var("OUT_DIR").unwrap());
|
||||
tonic_prost_build::configure()
|
||||
.file_descriptor_set_path(out_dir.join("audio_backend_descriptor.bin"))
|
||||
.compile_protos(&["proto/audio_backend.proto"], &["proto"])
|
||||
.unwrap_or_else(|e| panic!("Failed to compile protos {:?}", e));
|
||||
|
||||
Ok(())
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
pub mod termix {
|
||||
pub mod audio_backend {
|
||||
pub const FILE_DESCRIPTOR_SET: &[u8] = tonic::include_file_descriptor_set!("audio_backend_descriptor");
|
||||
tonic::include_proto!("termix.audio_backend");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user