Framework de Go para microservicios web y RPC, con funciones de resiliencia integradas y un generador de código goctl basado en especificaciones .api.
go-kratos/kratos
Un framework ligero de Go para crear microservicios nativos de la nube con transportes HTTP y gRPC unificados, middleware y generación de código basada en Protobuf.
- Estrellas
- 25,984
- Forks
- 4,182
- Issues abiertos
- 121
- Último commit
- anteayer
¿Qué es?
Kratos es un framework de Go para crear microservicios nativos de la nube. Ofrece API pequeñas y explícitas para transporte, middleware, registro de servicios, configuración, logging, codificación y generación de código, para que los desarrolladores puedan dedicar más tiempo a la lógica de negocio.
El framework prioriza las API: los servicios se definen en Protobuf y Kratos CLI genera código de servidor y cliente HTTP y gRPC a partir de esas definiciones. HTTP y gRPC comparten una misma capa de transporte, y el middleware cubre recuperación ante errores, logging, validación, trazas, métricas y autenticación. Los componentes de registro, configuración y codificación son intercambiables.
El proyecto incluye una CLI para crear la estructura inicial de servicios nuevos, y un ecosistema contrib ofrece integraciones opcionales, como registros, almacenes de configuración y observabilidad basada en OpenTelemetry. El logging se basa en el paquete log/slog de la biblioteca estándar.
Funciones clave
- 01Flujo de trabajo centrado en Protobuf que genera código HTTP y gRPC.
- 02Capa de transporte unificada que admite HTTP y gRPC.
- 03Middleware componible para recuperación ante errores, logging, validación, trazas, métricas y autenticación.
- 04Componentes intercambiables de registro, configuración y codificación.
- 05Logging con log/slog de la biblioteca estándar y extensiones de OpenTelemetry en los paquetes contrib.
Casos de uso
- Crear un conjunto de microservicios en Go que se comuniquen mediante gRPC y HTTP.
- Definir API en Protobuf y generar stubs de servidor y cliente para un equipo de Go.
- Crear la estructura inicial de un servicio nuevo en Go con una organización de proyecto estándar.
Inicio rápido
- 1
Instala Go toolchain, protoc y protoc-gen-go tal como se indica en los requisitos
- 2
Instala Kratos CLI
go install github.com/go-kratos/kratos/cmd/kratos/v3@latest - 3
Crea un nuevo servicio llamado helloworld
kratos new helloworld - 4
Entra en el proyecto, descarga las dependencias y ejecuta el servicio
cd helloworld && go mod tidy && kratos run
Antes de usarlo
- Para generar código, es necesario instalar protoc y protoc-gen-go por separado.
- Se requiere Go 1.25 o posterior.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es kratos?
- Un framework ligero de Go para crear microservicios nativos de la nube con transportes HTTP y gRPC unificados, middleware y generación de código basada en Protobuf. Kratos es un framework de Go para crear microservicios nativos de la nube. Ofrece API pequeñas y explícitas para transporte, middleware, registro de servicios, configuración, logging, codificación y generación de código, para que los desarrolladores puedan dedicar más tiempo a la lógica de negocio.
- ¿kratos es gratuito? ¿Qué licencia tiene?
- kratos es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿kratos sigue mantenido?
- Mantenimiento activo. El último commit de kratos fue el 21 oct 2026.
- ¿Para qué puedo usar kratos?
- Crear un conjunto de microservicios en Go que se comuniquen mediante gRPC y HTTP. Definir API en Protobuf y generar stubs de servidor y cliente para un equipo de Go. Crear la estructura inicial de un servicio nuevo en Go con una organización de proyecto estándar.
- ¿Cómo se instala kratos?
- Instala Go toolchain, protoc y protoc-gen-go tal como se indica en los requisitos Instala Kratos CLI: go install github.com/go-kratos/kratos/cmd/kratos/v3@latest Crea un nuevo servicio llamado helloworld: kratos new helloworld Entra en el proyecto, descarga las dependencias y ejecuta el servicio: cd helloworld && go mod tidy && kratos run
- ¿Dónde consigo kratos?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/go-kratos/kratos
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Implementación en Java de Apache Dubbo, un framework de RPC y microservicios para crear comunicación, descubrimiento y gestión del tráfico entre servicios.
Plugin de protoc que genera un servidor proxy inverso para traducir llamadas HTTP RESTful con JSON en solicitudes gRPC para servicios Go.
Gateway de API nativo de Kubernetes que implementa Gateway API sobre Envoy y admite casos de uso de gateway para IA.
Un framework HTTP de alto rendimiento para Go con una API similar a Martini, diseñado para REST APIs, aplicaciones web y microservicios.
Herramienta de documentación de arquitectura de software que cataloga dominios, servicios, eventos, mensajes y esquemas para equipos y agentes de IA.