Un framework HTTP de alto rendimiento para Go con una API similar a Martini, diseñado para REST APIs, aplicaciones web y microservicios.
evrone/go-clean-template
Plantilla de Clean Architecture para servicios Go que muestra cómo organizar el código con transportes REST, gRPC, AMQP RPC y NATS RPC.
- Estrellas
- 7,708
- Forks
- 665
- Issues abiertos
- 3
- Último commit
- hace 11 días
¿Qué es?
go-clean-template es una base para crear microservicios Go que siguen los principios de Clean Architecture. Separa la lógica de negocio de la infraestructura, como las bases de datos, los frameworks web y los brokers de mensajes, para que los casos de uso principales dependan únicamente de interfaces y de la biblioteca estándar. El proyecto busca mantener los servicios organizados a medida que crecen.
La plantilla incluye tres dominios de ejemplo: autenticación de usuarios con JWT, gestión de tareas con transiciones de estado y traducción de texto con seguimiento del historial. Cada dominio se ofrece mediante cuatro transportes: una API REST basada en Fiber, gRPC y RPC sobre RabbitMQ (AMQP) y NATS. La inyección de dependencias se realiza mediante constructores New, y el repositorio incluye una configuración de Docker Compose para Postgres, RabbitMQ, NATS y Jaeger.
El proyecto también aborda la observabilidad con trazas de OpenTelemetry que propagan el contexto a través de los cuatro transportes, además de métricas de Prometheus, documentación de Swagger, pruebas de integración y migraciones de bases de datos.
Funciones clave
- 01Arquitectura Clean Architecture por capas con inyección de dependencias mediante constructores New
- 02API REST basada en Fiber, con documentación de Swagger generada por swag
- 03Servicios gRPC definidos con protobuf
- 04Servidores RPC sobre RabbitMQ (AMQP) y NATS request-reply
- 05Trazas de OpenTelemetry y métricas de Prometheus
- 06Stack de Docker Compose con Postgres, RabbitMQ, NATS y Jaeger
Casos de uso
- Iniciar un microservicio Go con una estructura de proyecto coherente
- Aprender a separar la lógica de negocio del transporte y el almacenamiento en Go
- Crear un servicio que exponga la misma lógica mediante REST, gRPC y colas de mensajes
Inicio rápido
- 1
Inicia Postgres, RabbitMQ y NATS con Docker Compose
make compose-up - 2
Ejecuta la aplicación con las migraciones
make run
Antes de usarlo
- El desarrollo local necesita Docker Compose para ejecutar Postgres, RabbitMQ y NATS.
Temas
Preguntas frecuentes
- ¿Qué es go-clean-template?
- Plantilla de Clean Architecture para servicios Go que muestra cómo organizar el código con transportes REST, gRPC, AMQP RPC y NATS RPC. go-clean-template es una base para crear microservicios Go que siguen los principios de Clean Architecture. Separa la lógica de negocio de la infraestructura, como las bases de datos, los frameworks web y los brokers de mensajes, para que los casos de uso principales dependan únicamente de interfaces y de la biblioteca estándar. El proyecto busca mantener los servicios organizados a medida que crecen.
- ¿go-clean-template es gratuito? ¿Qué licencia tiene?
- go-clean-template es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿go-clean-template sigue mantenido?
- Mantenimiento activo. El último commit de go-clean-template fue el 11 oct 2026.
- ¿Para qué puedo usar go-clean-template?
- Iniciar un microservicio Go con una estructura de proyecto coherente Aprender a separar la lógica de negocio del transporte y el almacenamiento en Go Crear un servicio que exponga la misma lógica mediante REST, gRPC y colas de mensajes
- ¿Cómo se instala go-clean-template?
- Inicia Postgres, RabbitMQ y NATS con Docker Compose: make compose-up Ejecuta la aplicación con las migraciones: make run
- ¿Dónde consigo go-clean-template?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/evrone/go-clean-template
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
GoWA es una API REST de WhatsApp autoalojada, escrita en Go, compatible con varias cuentas, webhooks, MCP e integración con Chatwoot.
Implementación en Go de la capa de ejecución de Ethereum, que funciona como nodo full o archive y ofrece acceso JSON-RPC y herramientas para desarrolladores.
Implementación pura en Go de la API WebRTC para crear conexiones P2P de audio, video y datos en tiempo real.
Servidor de aplicaciones PHP moderno basado en Caddy, con modo worker, Early Hints, HTTP/3 y HTTPS automático.
API Gateway declarativo y sin estado, de alto rendimiento y escrito en Go, para enrutar, agregar y proteger llamadas a microservicios backend.