Diferenças entre REST e gRPC

RESTgRPC
Texto / JSONProtocol Buffers
UnidirecionalBidirecional e assíncrono
Alta latênciaBaixa latência
Sem contrato (maior chance de erros)Contrato definido pelo .proto
Sem suporte a streaming (Request / Response)Suporte a streaming
Design pré-definido (REST foca nas operações HTTP (GET, PUT, POST, DELETE, etc) -> CRUD)Design é livre
Uso de muitas biblioteca de terceirosSem dificuldades de implementação de bibliotecas de terceiros (geração de códigos com stubs)