mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-05-14 03:50:39 +00:00
feat: support gRPC-Web on frontend gRPC server (#8027)
feat: add gRPC-Web support using tonic-web Signed-off-by: polar <palakjha916@gmail.com>
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -74,3 +74,4 @@ AGENTS.md
|
||||
|
||||
# local design docs
|
||||
docs/specs/
|
||||
.vs/
|
||||
|
||||
19
Cargo.lock
generated
19
Cargo.lock
generated
@@ -12118,6 +12118,7 @@ dependencies = [
|
||||
"tokio-util",
|
||||
"tonic 0.14.2",
|
||||
"tonic-reflection",
|
||||
"tonic-web",
|
||||
"tower 0.5.2",
|
||||
"tower-http 0.6.6",
|
||||
"tracing",
|
||||
@@ -14102,6 +14103,24 @@ dependencies = [
|
||||
"tonic-prost",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tonic-web"
|
||||
version = "0.14.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "29453d84de05f4f1b573db22e6f9f6c95c189a6089a440c9a098aa9dea009299"
|
||||
dependencies = [
|
||||
"base64 0.22.1",
|
||||
"bytes",
|
||||
"http 1.3.1",
|
||||
"http-body 1.0.1",
|
||||
"pin-project",
|
||||
"tokio-stream",
|
||||
"tonic 0.14.2",
|
||||
"tower-layer",
|
||||
"tower-service",
|
||||
"tracing",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tower"
|
||||
version = "0.4.13"
|
||||
|
||||
@@ -133,6 +133,7 @@ tokio-stream = { workspace = true, features = ["net"] }
|
||||
tokio-util.workspace = true
|
||||
tonic.workspace = true
|
||||
tonic-reflection = "0.14"
|
||||
tonic-web = "0.14"
|
||||
tower = { workspace = true, features = ["full"] }
|
||||
tower-http = { version = "0.6", features = ["full"] }
|
||||
tracing.workspace = true
|
||||
|
||||
@@ -355,7 +355,11 @@ impl Server for GrpcServer {
|
||||
.layer(MetricsMiddlewareLayer)
|
||||
.into_inner();
|
||||
|
||||
let mut builder = tonic::transport::Server::builder().layer(metrics_layer);
|
||||
let mut builder = tonic::transport::Server::builder()
|
||||
.accept_http1(true)
|
||||
.layer(metrics_layer)
|
||||
.layer(tonic_web::GrpcWebLayer::new());
|
||||
|
||||
if let Some(tls_config) = self.tls_config.clone() {
|
||||
builder = builder.tls_config(tls_config).context(StartGrpcSnafu)?;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user