Repolode
smallnest

smallnest/rpcx

Framework RPC em Go para criar microsserviços, com descoberta de serviços extensível, vários transportes e codecs e acesso entre linguagens via HTTP.

Estrelas
8,319
Forks
1,173
Issues abertas
4
Último commit
há 2 meses

O que é?

rpcx é um framework RPC escrito em Go, inspirado no Alibaba Dubbo, para dividir aplicações em serviços que se comunicam pela rede. Funções Go podem ser expostas diretamente como métodos RPC, sem a necessidade de escrever arquivos proto, e os clientes as chamam por meio de uma API simples que inclui opções de balanceamento de carga e failover.

O framework oferece suporte aos transportes TCP, HTTP, QUIC e KCP, e a codecs como JSON, Protobuf, MessagePack e bytes brutos. A descoberta de serviços pode usar configuração peer-to-peer, zookeeper, etcd, consul ou mDNS, e o balanceamento de carga oferece estratégias aleatórias, round-robin, hash consistente, ponderadas, entre outras. Também é possível chamar serviços de outras linguagens por meio de um gateway HTTP, e há implementações em Java e Rust.

O framework inclui recursos como autorização, passagem de metadados, compressão, heartbeats, comunicação bidirecional e requisições de backup. Alguns plugins, incluindo etcd, zookeeper e consul, foram movidos para repositórios separados a partir da versão 1.7.6.

Recursos principais

  • 01Transforma métodos Go comuns em endpoints RPC sem arquivos proto.
  • 02Oferece suporte aos transportes TCP, HTTP, QUIC e KCP.
  • 03Oferece codecs JSON, Protobuf, MessagePack e de bytes brutos.
  • 04Oferece descoberta de serviços via peer-to-peer, zookeeper, etcd, consul ou mDNS.
  • 05Inclui estratégias de balanceamento de carga e modos de tolerância a falhas failover, failfast e failtry.

Casos de uso

  • Dividir um backend Go em microsserviços que se comunicam entre si via RPC.
  • Permitir que serviços escritos em outras linguagens chamem serviços Go por meio do gateway HTTP.
  • Criar comunicação interna entre serviços que precise de descoberta de serviços e balanceamento de carga.

Em coleções

Tópicos

Perguntas frequentes

O que é rpcx?
Framework RPC em Go para criar microsserviços, com descoberta de serviços extensível, vários transportes e codecs e acesso entre linguagens via HTTP. rpcx é um framework RPC escrito em Go, inspirado no Alibaba Dubbo, para dividir aplicações em serviços que se comunicam pela rede. Funções Go podem ser expostas diretamente como métodos RPC, sem a necessidade de escrever arquivos proto, e os clientes as chamam por meio de uma API simples que inclui opções de balanceamento de carga e failover.
rpcx é gratuito? Qual é a licença?
rpcx é open source sob a licença Other. Confira os termos da licença antes de usá-lo em produtos comerciais.
rpcx ainda é mantido?
Atualizado nos últimos 6 meses. O último commit de rpcx foi em 3 de set. de 2026.
Para que posso usar rpcx?
Dividir um backend Go em microsserviços que se comunicam entre si via RPC. Permitir que serviços escritos em outras linguagens chamem serviços Go por meio do gateway HTTP. Criar comunicação interna entre serviços que precise de descoberta de serviços e balanceamento de carga.
Onde consigo rpcx?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/smallnest/rpcx

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

Projetos relacionados