Javalin is a lightweight web framework for Java and Kotlin designed for building REST APIs and web applications. It functions as an embedded Jetty web server, allowing applications to run as standalone processes without the need for an external servlet container.
The project provides specialized frameworks for diverse communication patterns, including a REST API framework with automatic OpenAPI schema generation, a GraphQL API framework with query and mutation resolvers, and a WebSocket server for bidirectional real-time communication. It also includes a dedicated framework for pushing real-time updates via Server-Sent Events.
Beyond API capabilities, the system covers server-side UI rendering through pluggable template engines and a buildless integration for serving Vue components. It includes a comprehensive suite of middleware for request interception, role-based access control, TLS encryption, and request rate limiting.
The server is configured through a programmatic configuration block that defines routes, handlers, and lifecycle event callbacks before the application starts.