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-kratos/kratos
Framework leve em Go para criar microsserviços cloud-native, com transports HTTP e gRPC unificados, middleware e geração de código baseada em Protobuf.
- Estrelas
- 25,984
- Forks
- 4,182
- Issues abertas
- 121
- Último commit
- anteontem
O que é?
Kratos é um framework em Go para criar microsserviços cloud-native. Ele oferece APIs pequenas e explícitas para transport, middleware, registro de serviços, configuração, logging, encoding e geração de código, permitindo que os desenvolvedores dediquem mais tempo à lógica de negócio.
O framework prioriza a API: os serviços são definidos em Protobuf, e a CLI do Kratos gera código de servidor e cliente HTTP e gRPC a partir dessas definições. HTTP e gRPC compartilham uma camada de transport, e o middleware cobre recuperação de falhas, logging, validação, tracing, métricas e autenticação. Os componentes de registro, configuração e encoding são pluggable.
O projeto inclui uma CLI para criar a estrutura inicial de novos serviços, e um ecossistema contrib oferece integrações opcionais, como registries, armazenamentos de configuração e observabilidade baseada em OpenTelemetry. O logging usa o pacote log/slog da biblioteca padrão.
Recursos principais
- 01Fluxo de trabalho baseado em Protobuf que gera código HTTP e gRPC.
- 02Camada de transport unificada para HTTP e gRPC.
- 03Middleware combinável para recuperação de falhas, logging, validação, tracing, métricas e autenticação.
- 04Componentes pluggable de registro, configuração e encoding.
- 05Logging com log/slog da biblioteca padrão e extensões de OpenTelemetry nos pacotes contrib.
Casos de uso
- Criar um conjunto de microsserviços em Go que se comuniquem por gRPC e HTTP.
- Definir APIs em Protobuf e gerar stubs de servidor e cliente para uma equipe que trabalha com Go.
- Criar a estrutura inicial de um novo serviço em Go com um layout de projeto padrão.
Início rápido
- 1
Instale Go toolchain, protoc e protoc-gen-go conforme indicado nos requisitos
- 2
Instale o Kratos CLI
go install github.com/go-kratos/kratos/cmd/kratos/v3@latest - 3
Crie um novo serviço chamado helloworld
kratos new helloworld - 4
Acesse o projeto, baixe as dependências e execute o serviço
cd helloworld && go mod tidy && kratos run
Antes de usar
- Para gerar código, é necessário instalar protoc e protoc-gen-go separadamente.
- É necessário ter Go 1.25 ou posterior.
Em coleções
Tópicos
Perguntas frequentes
- O que é kratos?
- Framework leve em Go para criar microsserviços cloud-native, com transports HTTP e gRPC unificados, middleware e geração de código baseada em Protobuf. Kratos é um framework em Go para criar microsserviços cloud-native. Ele oferece APIs pequenas e explícitas para transport, middleware, registro de serviços, configuração, logging, encoding e geração de código, permitindo que os desenvolvedores dediquem mais tempo à lógica de negócio.
- kratos é gratuito? Qual é a licença?
- kratos é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- kratos ainda é mantido?
- Manutenção ativa. O último commit de kratos foi em 21 de out. de 2026.
- Para que posso usar kratos?
- Criar um conjunto de microsserviços em Go que se comuniquem por gRPC e HTTP. Definir APIs em Protobuf e gerar stubs de servidor e cliente para uma equipe que trabalha com Go. Criar a estrutura inicial de um novo serviço em Go com um layout de projeto padrão.
- Como instalar kratos?
- Instale Go toolchain, protoc e protoc-gen-go conforme indicado nos requisitos Instale o Kratos CLI: go install github.com/go-kratos/kratos/cmd/kratos/v3@latest Crie um novo serviço chamado helloworld: kratos new helloworld Acesse o projeto, baixe as dependências e execute o serviço: cd helloworld && go mod tidy && kratos run
- Onde consigo kratos?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/go-kratos/kratos
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Implementação Java do Apache Dubbo, um framework de RPC e microsserviços para comunicação, descoberta e gerenciamento de tráfego entre serviços.
Plugin do protoc que gera um servidor proxy reverso para traduzir chamadas HTTP RESTful com JSON em requisições gRPC para serviços Go.
Um gateway de API nativo do Kubernetes que implementa a Gateway API com Envoy e atende a casos de uso de gateway de IA.
Framework web HTTP de alto desempenho para Go, com uma API semelhante à do Martini, feito para REST APIs, aplicações web e microsserviços.
Ferramenta de documentação de arquitetura de software que cataloga domínios, serviços, eventos, mensagens e schemas para equipes e agentes de IA.