gRPC (gRPC Remote Procedure Calls[1]) também conhecido como Google Remote Procedure Call é um sistema de código aberto de chamada de procedimento remoto (RPC) desenvolvido inicialmente no Google em 2015 como a próxima geração de a infraestrutura RPC, Stubby.[2][3] Ele usa HTTP/2 para transporte, Protocol Buffers como a linguagem de descrição da interface e fornece recursos como autenticação, streaming bidirecional e controle de fluxo, ligações de bloqueio ou não, e cancelamento e tempos limite. Ele gera ligações de cliente e servidor de plataforma cruzada para muitos idiomas. Os cenários de uso mais comuns incluem serviços de conexão em uma arquitetura de estilo de microsserviços ou conexão de clientes de dispositivos móveis a serviços de back-end.[3]

O uso complexo de HTTP/2 pelo gRPC impossibilita a implementação de um cliente gRPC no navegador, exigindo um proxy.[4]

Autenticação editar

O gRPC oferece suporte ao uso de TLS e autenticação baseada em token. A conexão com os serviços do Google deve usar TLS. Existem dois tipos de credenciais: credenciais de canal e credenciais de chamada.[5]

Codificação editar

O gRPC usa buffers de protocolo para codificar dados. Ao contrário das APIs REST com JSON, elas têm uma especificação mais rígida. Por ter uma única especificação, o gRPC elimina o debate e economiza tempo do desenvolvedor porque o gRPC é consistente em todas as plataformas e implementações.[6]

Adoção editar

Várias organizações diferentes adotaram o gRPC, como Uber,[7] Square, Netflix, IBM, CoreOS, Docker, CockroachDB, Cisco, Juniper Networks, Spotify,[8] Zalando[9] e Dropbox.[10]

O projeto de código aberto u-bmc usa gRPC para substituir o IPMI.[11] Em 8 de janeiro de 2019, o Dropbox anunciou que a próxima versão do "Courier", sua estrutura RPC no centro de sua arquitetura orientada a serviços (SOA), seria migrada para ser baseada em gRPC, principalmente porque se alinhava bem com seus Estruturas RPC.

Referências

  1. «FAQ». gRPC 
  2. «Introducing gRPC, a new open source HTTP/2 RPC Framework» 
  3. a b «About gRPC». gRPC (em inglês). Consultado em 25 de maio de 2021 
  4. «The state of gRPC in the browser». gRPC (em inglês) 
  5. «gRPC». grpc.io. Consultado em 24 de fevereiro de 2020 
  6. JamesNK. «Compare gRPC services with HTTP APIs». docs.microsoft.com (em inglês). Consultado em 24 de fevereiro de 2020 
  7. «gRPC at Uber» 
  8. «gRPC at Spotify» (PDF). jfokus.se. Consultado em 12 de maio de 2020 
  9. «Zalando Tech Radar». opensource.zalando.com. Consultado em 8 de abril de 2021 
  10. «How we migrated Dropbox from Nginx to Envoy». Dropbox.Tech. Consultado em 30 de outubro de 2020 
  11. «u-bmc». GitHub.com