À propos du projet
Bun est un ORM Golang moderne conçu pour les développeurs qui préfèrent écrire du SQL directement mais souhaitent bénéficier de la sécurité des types, de requêtes structurées et de la portabilité des bases de données. Contrairement aux ORM qui abstractent le SQL, Bun l'embrasse — permettant de construire des requêtes complexes et lisibles via des méthodes Go tout en conservant un contrôle total sur le SQL généré.
Il prend en charge plusieurs bases de données, notamment PostgreSQL, MySQL/MariaDB, SQLite, Microsoft SQL Server et Oracle, chacune avec son propre pilote et dialecte. Les requêtes peuvent être scannées dans des structs, des maps, des slices ou des valeurs scalaires, offrant une flexibilité dans la manière dont les données sont consommées. Les relations entre les tables sont définies via des struct tags, permettant le chargement eager des modèles associés comme has-many ou belongs-to.
Bun inclut des fonctionnalités prêtes pour la production telles que les migrations (avec changements de schéma versionnés), les opérations en lot (insert/update/delete), les suppressions soft, et l'intégration OpenTelemetry pour l'observabilité. Le débogage est pris en charge par un logging verbeux des requêtes, et la performance est optimisée en s'appuyant sur le package standard Go `database/sql` avec une surcharge minimale.
La bibliothèque fournit une documentation extensive, des exemples et un kit de démarrage pour un usage en production. Elle s'intègre également avec Uptrace, un outil APM open-source, pour le tracing distribué et la surveillance. Un support communautaire est disponible via Discord et les discussions GitHub.
Idéal pour les équipes recherchant un équilibre entre l'expressivité du SQL et la commodité d'un ORM, Bun évite la magie tout en offrant des couches d'accès aux données puissantes et maintenables dans les applications Go.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.