An invisible REST and web framework for Kotlin that binds controllers to Vert.x routers with minimal annotations.
Kovert is an invisible REST and web framework for Kotlin that binds controller classes to Vert.x routers. It automatically infers HTTP verbs and paths from method names, reducing boilerplate and keeping code clean. The framework handles parameter binding, JSON serialization, and async operations with minimal annotations.
Kotlin developers building REST APIs or web applications on the Vert.x platform who want a lightweight, convention-based routing layer without invasive framework code.
Developers choose Kovert for its minimal intrusion and smart conventions—it eliminates verbose routing configurations while providing flexibility through custom contexts and async support. It integrates seamlessly with Vert.x and Kotlin ecosystems like Kovenant and Injekt.
The invisible REST and web framework
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Infers HTTP verbs and paths from method names using conventions like 'getCompanyByName' for GET /company/:name, drastically reducing annotation boilerplate as shown in the sample logs.
Allows custom context classes such as RestContext to encapsulate request data, providing type-safe access and isolation from raw Vert.x objects, enhancing code clarity.
Seamlessly binds path, query, form, and JSON body parameters to method arguments, with complex types handled via Jackson serialization without manual parsing.
Integrates with Kovenant promises for non-blocking request handling, ensuring Vert.x IO threads aren't blocked and maintaining proper context dispatch for scalability.
Currently tightly coupled with Vert.x; promised support for Undertow and SparkJava is not yet implemented, limiting framework portability and choice.
Requires configuration of Vert.x, Kovenant, and optional Injekt for full features, which can be overwhelming for simple projects or developers new to this ecosystem.
Routing inference relies on specific method naming rules (e.g., 'By', 'In' for parameters); deviations can lead to unexpected routes, forcing reliance on annotations or careful naming.