Exposed is a Kotlin SQL framework that provides lightweight database access through either a typesafe SQL-wrapping Domain-Specific Language or a Data Access Object API, with support for both JDBC and R2DBC drivers.
The framework solves the problem of writing database code in Kotlin by offering two complementary approaches. The DSL provides a typesafe way to construct SQL queries, while the DAO API offers a lighter-weight alternative for object-relational mapping. Both approaches sit on top of standard database connectivity drivers, allowing applications to work with multiple database engines without being locked into a specific one. The tool's design philosophy emphasizes the ability to switch between databases with minimal or no code changes.
Exposed suits Kotlin projects that need flexible database access without the overhead of a heavyweight ORM. It works well for teams that want typesafe query construction or prefer a simpler DAO pattern, and it supports a wide range of databases including PostgreSQL, MySQL, MariaDB, Oracle, SQL Server, SQLite, H2, and Amazon Redshift. The framework is particularly valuable for applications that may need to support multiple database backends or migrate between them.
The project maintains active development with regular updates to support new database drivers and Kotlin versions. The codebase shows consistent refinement of both the DSL and DAO layers, with ongoing work to expand R2DBC support alongside traditional JDBC connectivity. Documentation is actively maintained through an official documentation website, indicating sustained investment in helping developers adopt and use the framework effectively.