Skip to content

Addons

Addons are separate Go modules that implement the core interfaces. Install only what you need.

PackageDescriptionInterface
ss-keel-gormPostgreSQL, MySQL, SQLite via GORMRepository[T, ID]
ss-keel-mongoMongoDB via mongo-driverRepository[T, ID]
PackageDescriptionInterface
ss-keel-redisRedis via go-redis — cache and sessionsCache
PackageDescriptionInterface
ss-keel-jwtJWT generation, validation, ready-to-use guardsGuard
ss-keel-oauthOAuth2 — Google, GitHub, and moreGuard
PackageDescriptionInterface
ss-keel-amqpRabbitMQ via amqp091-goPublisher / Subscriber
ss-keel-kafkaKafka via franz-goPublisher / Subscriber
PackageDescriptionInterface
ss-keel-mailEmail via SMTP, Resend, or SendGridMailer
ss-keel-wsWebSockets via Fiber
PackageDescriptionInterface
ss-keel-storageS3, GCS, and local disk — unified APIStorage
PackageDescriptionInterface
ss-keel-metricsPrometheus metrics + /metrics endpointMetricsCollector
ss-keel-tracingOpenTelemetry distributed tracingTracer
PackageDescriptionInterface
ss-keel-cronScheduled jobs with cron expressionsScheduler
PackageDescriptionInterface
ss-keel-i18nInternationalization and translationsTranslator

Every addon is just a struct that implements a core interface. You can build your own today:

// Implement Cache with in-memory storage
type InMemoryCache struct {
mu sync.RWMutex
store map[string][]byte
}
func (c *InMemoryCache) Get(ctx context.Context, key string) ([]byte, error) {
c.mu.RLock()
defer c.mu.RUnlock()
v, ok := c.store[key]
if !ok {
return nil, errors.New("key not found")
}
return v, nil
}
// ... implement Set, Delete, Exists

See the Interfaces reference for all contracts.