À propos du projet

Exposed est un projet officiel de JetBrains qui fournit une bibliothèque SQL légère et un framework ORM pour le langage de programmation Kotlin. Construit sur des pilotes de connectivité de bases de données, il prend en charge les pilotes JDBC et R2DBC (depuis la version 1.0.0), offrant deux approches distinctes pour l'accès aux bases de données : un langage spécifique au domaine (DSL) type-safe enveloppant SQL et une API légère d'objet d'accès aux données (DAO). La mascotte du projet est la seiche, choisie pour sa capacité à imiter divers environnements—similaire à la façon dont Exposed peut s'adapter à une variété de moteurs de bases de données, permettant aux développeurs de créer des applications sans dépendre d'une base de données spécifique et de basculer entre elles avec des modifications minimales. Les bases de données prises en charge incluent H2 (2.x), MariaDB, MySQL, Oracle, PostgreSQL (y compris pgjdbc-ng), Amazon Redshift (JDBC uniquement), Microsoft SQL Server et SQLite. Le framework est organisé en modules principaux : exposed-core fournit les composants fondamentaux et l'API DSL ; exposed-dao (optionnel) active l'API DAO et n'est compatible qu'avec exposed-jdbc ; exposed-jdbc fournit l'implémentation au niveau transport JDBC ; et exposed-r2dbc fournit le support de connectivité réactive aux bases de données relationnelles. Les modules d'extension couvrent des fonctionnalités supplémentaires, notamment le stockage de données chiffrées (exposed-crypt), la gestion des dates et heures via l'API Java 8 Time, Joda-Time et kotlinx-datetime, les types de données JSON/JSONB (exposed-json), les montants monétaires (exposed-money), les migrations de schémas de bases de données (exposed-migration-core, exposed-migration-jdbc, exposed-migration-r2dbc), et des starters d'intégration Spring Boot pour Spring Boot 3 et 4, ainsi que des gestionnaires de transactions Spring Framework. Les exigences incluent Kotlin 2.2+ et JDK 8+ pour la plupart des modules, avec JDK 11+ requis pour les modules liés à R2DBC et JDK 17+ pour les modules liés à Spring et exposed-crypt. L'approche DSL permet aux développeurs de définir des tables comme des objets Kotlin avec des colonnes typées, d'effectuer des opérations CRUD, d'exécuter des jointures, d'utiliser des fonctions SQL et d'appliquer des clauses group-by—le tout avec une sécurité de type à la compilation. L'approche DAO fournit des classes d'entités avec des objets compagnons pour les requêtes, prenant en charge les relations paresseuses et les référents. Les versions sont disponibles sur Maven Central sous l'espace de noms org.jetbrains.exposed. Le projet est sous licence Apache License 2.0 et accueille les contributions via des pull requests liées aux problèmes sur JetBrains YouTrack.