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.
zeromicro/go-zero
Framework de Go para microservicios web y RPC, con funciones de resiliencia integradas y un generador de código goctl basado en especificaciones .api.
- Estrellas
- 33,398
- Forks
- 4,333
- Issues abiertos
- 255
- Último commit
- anteayer
¿Qué es?
go-zero es un framework web y RPC escrito en Go, diseñado para sistemas de microservicios que deben mantener la estabilidad bajo una alta concurrencia. Incluye prácticas de ingeniería habituales, como control encadenado de tiempos de espera, control de concurrencia, limitación de tasa, apertura adaptativa de circuitos y reducción adaptativa de carga, muchas de ellas sin necesidad de configuración adicional.
go-zero se complementa con la herramienta de línea de comandos goctl. Los desarrolladores describen las API con una sintaxis sencilla .api o en archivos .proto, y goctl genera la estructura inicial del servidor en Go, con handlers, lógica, contexto del servicio y structs tipados para solicitudes y respuestas. A partir del mismo archivo .api también puede generar código cliente para Java, Dart, TypeScript, JavaScript, Kotlin, iOS y Android.
El proyecto también ofrece orientación para flujos de desarrollo con asistentes de IA, incluido un adaptador MCP que permite exponer la generación de goctl a herramientas compatibles con el Model Context Protocol. El framework principal es totalmente compatible con net/http.
Funciones clave
- 01Apertura de circuitos, limitación de tasa, reducción de carga y control de tiempos de espera integrados
- 02goctl genera código de servicio en Go a partir de especificaciones .api o .proto
- 03Validación automática de los parámetros de las solicitudes
- 04Generación de código cliente para varios lenguajes a partir de un único archivo .api
- 05Totalmente compatible con net/http e integrable con middleware existente
Casos de uso
- Crear API REST de alto tráfico que necesitan protección de resiliencia integrada
- Desarrollar varios servicios RPC que se comunican entre sí en una arquitectura de microservicios
- Generar código repetitivo y SDK de cliente para Go y para interfaces web o móviles a partir de una única especificación de API
Inicio rápido
- 1
Instalar goctl con Go
go install github.com/zeromicro/go-zero/tools/goctl@latest - 2
Crear el archivo de API greet.api (goctl genera la plantilla)
goctl api -o greet.api - 3
Generar el código del servidor Go a partir del archivo de API
goctl api go -api greet.api -dir greet - 4
Ejecutar el servicio generado
cd greet && go mod tidy && go run greet.go -f etc/greet-api.yaml
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es go-zero?
- 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-zero es un framework web y RPC escrito en Go, diseñado para sistemas de microservicios que deben mantener la estabilidad bajo una alta concurrencia. Incluye prácticas de ingeniería habituales, como control encadenado de tiempos de espera, control de concurrencia, limitación de tasa, apertura adaptativa de circuitos y reducción adaptativa de carga, muchas de ellas sin necesidad de configuración adicional.
- ¿go-zero es gratuito? ¿Qué licencia tiene?
- go-zero es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿go-zero sigue mantenido?
- Mantenimiento activo. El último commit de go-zero fue el 21 oct 2026.
- ¿Para qué puedo usar go-zero?
- Crear API REST de alto tráfico que necesitan protección de resiliencia integrada Desarrollar varios servicios RPC que se comunican entre sí en una arquitectura de microservicios Generar código repetitivo y SDK de cliente para Go y para interfaces web o móviles a partir de una única especificación de API
- ¿Cómo se instala go-zero?
- Instalar goctl con Go: go install github.com/zeromicro/go-zero/tools/goctl@latest Crear el archivo de API greet.api (goctl genera la plantilla): goctl api -o greet.api Generar el código del servidor Go a partir del archivo de API: goctl api go -api greet.api -dir greet Ejecutar el servicio generado: cd greet && go mod tidy && go run greet.go -f etc/greet-api.yaml
- ¿Dónde consigo go-zero?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/zeromicro/go-zero
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Framework RPC independiente del lenguaje, con un generador de código que crea clientes y servidores interoperables en muchos lenguajes de programación.
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.
Un framework HTTP de alto rendimiento para Go con una API similar a Martini, diseñado para REST APIs, aplicaciones web y microservicios.
Framework Java con opiniones definidas para crear aplicaciones y servicios Spring listos para producción con una configuración mínima.
Gateway de API cloud-native basado en Istio y Envoy, con funciones de gateway de IA para proveedores de LLM y alojamiento de servidores MCP.