Repolode
zeromicro

zeromicro/go-zero

Framework de microserviços web e RPC em Go, com recursos integrados de resiliência e um gerador de código goctl orientado por especificações .api.

Estrelas
33,398
Forks
4,333
Issues abertas
255
Último commit
anteontem

O que é?

go-zero é um framework web e RPC escrito em Go, projetado para sistemas de microserviços que precisam manter a estabilidade sob alta concorrência. Ele reúne práticas comuns de engenharia, como controle encadeado de timeouts, controle de concorrência, limitação de taxa, circuit breaking adaptativo e redução adaptativa de carga, muitas das quais funcionam sem configuração adicional.

O framework vem acompanhado da ferramenta de linha de comando goctl. Os desenvolvedores descrevem APIs usando uma sintaxe .api simples ou arquivos .proto, e o goctl gera a estrutura do servidor em Go, incluindo handlers, lógica, contexto de serviço e structs tipadas para requisições e respostas. A partir do mesmo arquivo .api, também pode gerar código cliente para Java, Dart, TypeScript, JavaScript, Kotlin, iOS e Android.

O projeto também oferece orientações para assistentes de IA em fluxos de desenvolvimento, incluindo um adaptador MCP que disponibiliza a geração do goctl para ferramentas compatíveis com o Model Context Protocol. O framework principal é totalmente compatível com net/http.

Recursos principais

  • 01Circuit breaking, limitação de taxa, redução de carga e controle de timeouts integrados
  • 02goctl gera código de serviço em Go a partir de especificações .api ou .proto
  • 03Validação automática dos parâmetros das requisições
  • 04Geração de código cliente para várias linguagens a partir de um único arquivo .api
  • 05Totalmente compatível com net/http e integrado a middlewares existentes

Casos de uso

  • Criar APIs REST de alto tráfego que precisam de proteção de resiliência integrada
  • Desenvolver vários serviços RPC que se comunicam em uma arquitetura de microserviços
  • Gerar código boilerplate e SDKs cliente para Go e para front-ends móveis ou web a partir de uma única especificação de API

Início rápido

  1. 1

    Instale goctl com Go

    go install github.com/zeromicro/go-zero/tools/goctl@latest
  2. 2

    Crie o arquivo de API greet.api (o goctl gera o modelo)

    goctl api -o greet.api
  3. 3

    Gere o código do servidor Go a partir do arquivo de API

    goctl api go -api greet.api -dir greet
  4. 4

    Execute o serviço gerado

    cd greet && go mod tidy && go run greet.go -f etc/greet-api.yaml

Em coleções

Tópicos

Perguntas frequentes

O que é go-zero?
Framework de microserviços web e RPC em Go, com recursos integrados de resiliência e um gerador de código goctl orientado por especificações .api. go-zero é um framework web e RPC escrito em Go, projetado para sistemas de microserviços que precisam manter a estabilidade sob alta concorrência. Ele reúne práticas comuns de engenharia, como controle encadeado de timeouts, controle de concorrência, limitação de taxa, circuit breaking adaptativo e redução adaptativa de carga, muitas das quais funcionam sem configuração adicional.
go-zero é gratuito? Qual é a licença?
go-zero é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
go-zero ainda é mantido?
Manutenção ativa. O último commit de go-zero foi em 21 de out. de 2026.
Para que posso usar go-zero?
Criar APIs REST de alto tráfego que precisam de proteção de resiliência integrada Desenvolver vários serviços RPC que se comunicam em uma arquitetura de microserviços Gerar código boilerplate e SDKs cliente para Go e para front-ends móveis ou web a partir de uma única especificação de API
Como instalar go-zero?
Instale goctl com Go: go install github.com/zeromicro/go-zero/tools/goctl@latest Crie o arquivo de API greet.api (o goctl gera o modelo): goctl api -o greet.api Gere o código do servidor Go a partir do arquivo de API: goctl api go -api greet.api -dir greet Execute o serviço gerado: cd greet && go mod tidy && go run greet.go -f etc/greet-api.yaml
Onde consigo go-zero?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/zeromicro/go-zero

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

Projetos relacionados