grpc / grpc/grpc-java

Consider configuring `ProtoReflectionService` to use it without internal APIs

Offen
#7,138 5 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
enhancement
Vorherrschende Sprache
Java
Sterne
12.1k
Forks
4k
Ø Merge
2 T. 17 Std.
Gemergte PRs (30 T.)
37

Beschreibung

Due to the popularity of gRPC, some frameworks or libraries have an integration layer for gRPC.
* Armeria: https://line.github.io/armeria/docs/server-grpc
* Heldion: https://helidon.io/docs/v2/#/se/grpc/01_introduction
* Micronaut: https://micronaut-projects.github.io/micronaut-grpc/latest/guide/index.html

Especially, Armeria has its own server/client implementations to serve/call a gRPC stub.
`ProtoReflectionService` is using the internal reference of a gRPC-Java server instance since 1.30.0 #6967.
That means a stub running without gRPC-Java server could not use `ProtoReflectionService`. https://github.com/line/armeria/issues/2806

Armeria injects `ServerServiceDefinition`s to `ProtoReflectionService` using `notifyOnBuild()` hook.
https://github.com/line/armeria/blob/armeria-0.99.6/grpc/src/main/java/com/linecorp/armeria/server/grpc/FramedGrpcService.java#L271-L275
If `ProtoReflectionService` supports better ways to build `ProtoReflectionService`,
it could be a good extension point for gRPC-Java ecosystem.

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Start by reading ProtoReflectionService and the FramedGrpcService integration linked in the issue, including its notifyOnBuild() use. Determine an extension point that avoids depending on an internal gRPC-Java server instance while accepting ServerServiceDefinitions. Done means a non-gRPC-Java server implementation can use ProtoReflectionService.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
grpc, java
Bereich
api, backend
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.