Sobre el proyecto
Exposed es un proyecto oficial de JetBrains que proporciona una biblioteca SQL ligera y un framework ORM para el lenguaje de programación Kotlin. Construido sobre los controladores de conectividad de bases de datos, admite tanto los controladores JDBC como R2DBC (desde la versión 1.0.0), ofreciendo dos enfoques distintos para el acceso a bases de datos: un Lenguaje Específico de Dominio (DSL) que envuelve SQL de forma tipada y una API ligera de Objeto de Acceso a Datos (DAO).
El mascota del proyecto es la sepia, elegida por su capacidad de imitar diversos entornos—similar a cómo Exposed puede adaptarse a una variedad de motores de bases de datos, permitiendo a los desarrolladores crear aplicaciones sin dependencias de ninguna base de datos específica y cambiar entre ellos con mínimos cambios.
Las bases de datos admitidas incluyen H2 (2.x), MariaDB, MySQL, Oracle, PostgreSQL (incluyendo pgjdbc-ng), Amazon Redshift (solo JDBC), Microsoft SQL Server y SQLite.
El framework está organizado en módulos principales: exposed-core proporciona componentes fundamentales y la API DSL; exposed-dao (opcional) habilita la API DAO y es compatible únicamente con exposed-jdbc; exposed-jdbc proporciona la implementación de transporte a nivel JDBC; y exposed-r2dbc proporciona soporte de conectividad de bases de datos relacionales reactivas.
Los módulos de extensión cubren funcionalidades adicionales como el almacenamiento de datos cifrados (exposed-crypt), el manejo de fecha y hora mediante la API de Tiempo de Java 8, Joda-Time y kotlinx-datetime, tipos de datos JSON/JSONB (exposed-json), cantidades monetarias (exposed-money), migraciones de esquema de base de datos (exposed-migration-core, exposed-migration-jdbc, exposed-migration-r2dbc), y los starters de integración con Spring Boot para Spring Boot 3 y 4, junto con los administradores de transacciones de Spring Framework.
Los requisitos incluyen Kotlin 2.2+ y JDK 8+ para la mayoría de los módulos, con JDK 11+ requerido para los módulos relacionados con R2DBC y JDK 17+ para los módulos relacionados con Spring y para exposed-crypt.
El enfoque DSL permite a los desarrolladores definir tablas como objetos de Kotlin con columnas tipadas, realizar operaciones CRUD, ejecutar uniones, utilizar funciones SQL y aplicar cláusulas group-by, todo con seguridad de tipos en tiempo de compilación. El enfoque DAO proporciona clases de entidad con objetos complementarios para consultas, admitiendo relaciones cargadas perezosamente y referenciadores.
Las versiones están disponibles en Maven Central bajo el espacio de nombres org.jetbrains.exposed. El proyecto está licenciado bajo la Licencia Apache 2.0 y da la bienvenida a las contribuciones mediante solicitudes de extracción vinculadas a problemas en JetBrains YouTrack.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.