Repolode
fullstorydev

fullstorydev/grpcurl

Uma ferramenta de linha de comando para chamar servidores gRPC, como o curl, mas usando entradas JSON, com descoberta de schemas via server reflection ou arquivos proto.

Alternativa open source a:Postman

Estrelas
12,861
Forks
589
Issues abertas
121
Último commit
há 9 dias

O que é?

grpcurl permite invocar métodos RPC em servidores gRPC pela linha de comando. Como o gRPC usa Protocol Buffers binários na transmissão, o curl comum não consegue se comunicar com esses servidores. grpcurl aceita corpos de requisição em JSON, converte-os para protobuf e exibe as respostas em um formato legível.

A ferramenta descobre os schemas de três formas: consultando um servidor compatível com gRPC server reflection, lendo arquivos-fonte .proto ou carregando arquivos protoset compilados. Ela lida com métodos unários e de streaming, incluindo streams bidirecionais controlados interativamente pelo terminal. Funciona com servidores TLS e sem criptografia, incluindo mutual TLS com certificados de cliente.

Além da CLI, o repositório oferece um pacote de biblioteca Go com helpers para criar outras ferramentas que invocam endpoints gRPC dinamicamente.

Recursos principais

  • 01Envia corpos de requisição JSON e os converte automaticamente para protobuf.
  • 02Suporta métodos unários, de streaming do servidor, de streaming do cliente e de streaming bidirecional.
  • 03Descobre schemas via server reflection, arquivos .proto ou arquivos protoset.
  • 04Suporta conexões sem criptografia, TLS e mutual TLS.
  • 05Lista serviços e descreve símbolos, além de poder exportar arquivos proto ou protoset.

Casos de uso

  • Depurar um serviço gRPC enviando requisições de teste pelo terminal.
  • Automatizar chamadas gRPC em pipelines de shell, por exemplo, usando jq para gerar corpos de requisição.
  • Explorar uma API gRPC desconhecida listando seus serviços e métodos.
  • Criar ferramentas internas que invocam endpoints gRPC dinamicamente por meio da biblioteca Go.

Início rápido

  1. 1

    Instale o grpcurl no macOS com Homebrew

    brew install grpcurl
  2. 2

    Ou instale a partir do código-fonte com a toolchain do Go

    go install github.com/fullstorydev/grpcurl/cmd/grpcurl@latest
  3. 3

    Liste os serviços em um servidor compatível com reflection

    grpcurl localhost:8787 list

Antes de usar

  • A invocação requer um servidor gRPC; para entender o esquema, são necessários server reflection, arquivos proto ou arquivos protoset.

Tópicos

Perguntas frequentes

O que é grpcurl?
Uma ferramenta de linha de comando para chamar servidores gRPC, como o curl, mas usando entradas JSON, com descoberta de schemas via server reflection ou arquivos proto. grpcurl permite invocar métodos RPC em servidores gRPC pela linha de comando. Como o gRPC usa Protocol Buffers binários na transmissão, o curl comum não consegue se comunicar com esses servidores. grpcurl aceita corpos de requisição em JSON, converte-os para protobuf e exibe as respostas em um formato legível.
grpcurl é gratuito? Qual é a licença?
grpcurl é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
grpcurl ainda é mantido?
Manutenção ativa. O último commit de grpcurl foi em 13 de out. de 2026.
Para que posso usar grpcurl?
Depurar um serviço gRPC enviando requisições de teste pelo terminal. Automatizar chamadas gRPC em pipelines de shell, por exemplo, usando jq para gerar corpos de requisição. Explorar uma API gRPC desconhecida listando seus serviços e métodos. Criar ferramentas internas que invocam endpoints gRPC dinamicamente por meio da biblioteca Go.
Como instalar grpcurl?
Instale o grpcurl no macOS com Homebrew: brew install grpcurl Ou instale a partir do código-fonte com a toolchain do Go: go install github.com/fullstorydev/grpcurl/cmd/grpcurl@latest Liste os serviços em um servidor compatível com reflection: grpcurl localhost:8787 list
Onde consigo grpcurl?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/fullstorydev/grpcurl

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados