A modular server framework built on Ktor.
Auth, REST APIs, background jobs, messaging, profiling, and more — wired together with Kontainer for per-request dependency injection. Use what you need, ignore the rest.
App lifecycle, type-safe routing, CLI framework, fixtures, configuration, and the repair system.
Typed API routes with automatic parameter extraction, authorization DSL, endpoint documentation, SSE support.
Multi-realm authentication. Email/password, Google SSO, GitHub SSO, JWT tokens, and session management.
Background jobs with retry and scheduling, file depot, distributed locks, workers, and key-value storage.
Email sending with pluggable backends — SendGrid, AWS SES, or custom. Sent message storage and retry.
Zero-config per-request profiling, performance metrics, and a built-in debug GUI for every request.
Structured logging with database persistence, filtering, log levels, and a web UI for browsing logs.
Server-rendered templates, flash sessions, static web resources, cache busting, and asset pipelines.
Test harness with fixtures, Kontainer service injection, and route testing utilities.
Funktor modules are database-agnostic. Each module declares what it needs; you choose which backend provides it. Mix Karango and Monko in the same app.
Entity wrappers, Flow-based cursors, lazy references, and a suspend-first repository interface. The shared layer underneath Karango and Monko.
Write ArangoDB queries in Kotlin with compile-time safety. KSP generates the boilerplate. Repository pattern with entity hooks.
Typed MongoDB repositories with entity lifecycle hooks, index management, and Funktor integration.