spring-projects / spring-projects/spring-grpc
Support for grpc-web
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 413
- Forks
- 95
- Avg merge
- 4d 6h
- Merged PRs (30d)
- 2
Description
There is a grpc-web spec designed to make gRPC accessible to browser-based clients. There is currently no support for it in grpc-java, but for a Spring HTTP (MVC or webflux) app it is conceptually just a set of encoders and decoders. The existing Protobuf{Encoder,Decoder} and the corresponding JSON variants should be extendable, making it an easier target for webflux. There might be an issue with JSON and bidirectional streaming, since that is not supported in the existing webflux components (we'd have to manually scan for the JSON object boundaries in a non-blocking way because the gson library used by grpc-java is blocking).
Similar to #424 because it involves decoders and encoders and the JSON support is already nearly there in spring-web.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the grpc-web PROTOCOL-WEB.md specification, the existing ProtobufEncoder and ProtobufDecoder, their JSON variants, and the related discussion in issue #424. Determine the encoder and decoder changes needed for Spring MVC or WebFlux, including whether JSON bidirectional streaming is feasible; done means grpc-web requests and responses are supported without breaking existing behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- grpc, java, spring
- Domain
- api, backend, web-dev
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100