grpc / grpc/grpc-java

CompletableFuture stubs

Abierto
#2,797 10 comentarios 27 reacciones 0 asignados Ver en GitHub
enhancement
Lenguaje dominante
Java
Estrellas
12.1k
Forks
4k
Merge medio
2 d 17 h
PR fusionados (30 d)
37

Descripción

Hello,
I'd like to start a discussion about adding a `CompletableFuture`-based stub implementations to gRPC. I understand that generated gRPC code must be backwards compatible with Java 6, so here are some alternative implementation strategies to consider.

1. Implement `CompletableFuture`-based stubs in a stand-alone class generated by a stand-alone protoc plugin. The CF stub class would reference the public `MethodDescriptors` of the stock generated client. This option is easiest to implement, but presents a fragmented programming model.
1. Implement `CompletableFuture`-based stubs inline with the existing generated stubs by adding `@@protoc_insertion_point`s to the stock c++ generator. A protoc plugin would be used to populate the insertion points. This option has the benefit of presenting a homogenous programming model for this, and all future plugin-based stub extensions, but requires a coordinated one time change with the protoc project.
1. Extend the c++ generator with optional support for `CompletableFuture`. Use a protoc flag to turn it on and off. Not a great option, but possible.

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Comience revisando las tres estrategias propuestas para stubs basados en CompletableFuture, especialmente el cliente gRPC generado, los MethodDescriptors públicos, el protoc plugin y los C++ generator insertion points. Una contribución necesitaría un enfoque de implementación decidido y un alcance acordado para integrar la compatibilidad con CompletableFuture, preservando la compatibilidad con Java 6.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
java
Área
api
Tipo de issue
Nueva funcionalidad
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Tranquilo
Claridad
Necesita aclaración
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.