Framework Go · Open Source

Estructura real,
sin magia

Construye APIs REST en Go con arquitectura modular, documentación OpenAPI automática y código que cualquier desarrollador puede leer y mantener.

go get github.com/slice-soft/ss-keel-core
main.go
func main() {
  app := core.New(core.KConfig{
    Port:        3000,
    ServiceName: "my-api",
    Env:         "development",
    Docs: core.DocsConfig{
      Title:   "My API",
      Version: "1.0.0",
    },
  })

  app.Use(&users.Module{})
  app.Use(&products.Module{})

  log.Fatal(app.Listen())
}
controller.go
func (c *UsersController) Routes() []core.Route {
  return []core.Route{
    core.GET("/users", c.FindAll).
      Tag("users").
      Describe("List users").
      WithResponse(core.WithResponse[UserDTO](200)),

    core.POST("/users", c.Create).
      Tag("users").
      WithBody(core.WithBody[CreateUserDTO]()).
      WithResponse(core.WithResponse[UserDTO](201)),
  }
}

Diseñado para proyectos reales

No para demos. Para proyectos que van a crecer, tener más de un desarrollador y vivir más de seis meses.

Sin magia

Sin reflexión, sin decoradores, sin generación de código. Builder patterns, interfaces y punteros. Lees el código de Keel y entiendes exactamente qué pasa.

OpenAPI automático

La especificación OpenAPI se genera en runtime desde las definiciones de rutas. La documentación siempre está sincronizada porque es el código mismo.

Modular por diseño

Módulo → Controlador → Servicio → Repositorio. Cada capa con una responsabilidad única. Cualquier desarrollador navega el código sin necesitar un mapa.

Listo para producción

Health checks, graceful shutdown, structured logging, request ID tracking, métricas y trazabilidad con OpenTelemetry. Sin configuración extra.

Una arquitectura clara

Cuatro capas con responsabilidades únicas. La estructura que escala sin que nadie tenga miedo de tocar código ajeno.

Módulo
Controlador
Servicio
Repositorio
Módulo

Agrupa todo lo relacionado a un dominio. Se registra en la app con una sola línea.

app.Use(&users.Module{})
Controlador

Recibe HTTP, valida la entrada y delega al servicio. No sabe nada de la base de datos.

core.POST("/users", c.Create)
Servicio

Lógica de negocio pura. No sabe nada de HTTP ni de cómo se almacenan los datos.

func (s *UsersService) Create(dto CreateUserDTO)
Repositorio

Acceso a datos con interfaz genérica. Intercambia la implementación sin tocar el servicio.

type Repository[T any, ID any] interface

Ecosistema de addons

Cada addon implementa una interfaz definida en el core. Úsalos oficiales o construye los tuyos — el contrato es el mismo.

Database Próximamente
ss-keel-gorm

SQL con GORM — Postgres, MySQL, SQLite

Database Próximamente
ss-keel-mongo

MongoDB con el driver oficial de Go

Cache Próximamente
ss-keel-redis

Cache distribuida con Redis

Auth Próximamente
ss-keel-jwt

Autenticación con JSON Web Tokens

Auth Próximamente
ss-keel-oauth

OAuth 2.0 — Google, GitHub y más

Messaging Próximamente
ss-keel-amqp

Pub/Sub con RabbitMQ

Messaging Próximamente
ss-keel-kafka

Eventos con Apache Kafka

Communication Próximamente
ss-keel-mail

Email — SMTP, Resend, SendGrid

Communication Próximamente
ss-keel-ws

WebSockets en tiempo real

Storage Próximamente
ss-keel-storage

Archivos — S3, Google Cloud Storage, local

Observability Próximamente
ss-keel-metrics

Métricas con Prometheus

Observability Próximamente
ss-keel-tracing

Trazabilidad con OpenTelemetry

Jobs Próximamente
ss-keel-cron

Tareas programadas con cron expressions

i18n Próximamente
ss-keel-i18n

Traducciones e internacionalización

¿Necesitas un adaptador personalizado? Implementa la interfaz del core y funciona con Keel desde el día uno. Ver interfaces →

Keel CLI

De cero a API
en segundos

Scaffolding de proyectos, generación de módulos, controladores, servicios, repositorios y guardas. Un comando y tienes la estructura lista.

  • Proyecto completo con un solo comando
  • Generación de cualquier capa de forma independiente
  • Servidor de desarrollo con live reload (keel run)
  • Auto-actualización con keel upgrade
Ver documentación del CLI →
terminal
$ keel new my-api
✓ Proyecto creado en ./my-api
✓ go.mod inicializado
✓ .env configurado

$ keel generate module users
✓ modules/users/module.go
✓ modules/users/controller.go
✓ modules/users/service.go
✓ modules/users/repository.go

$ keel generate crud products
✓ CRUD completo generado
✓ DTOs, validaciones y rutas listas

$ keel run
▶ Servidor corriendo en :3000
▶ Docs en http://localhost:3000/docs

¿Listo para estructurar
tu próxima API en Go?

Keel está en producción activa. Puedes leer el código, abrirlo en la documentación o clonarlo directamente. Sin demos vacías.