Consider configuring `ProtoReflectionService` to use it without internal APIs
- 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
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