Transforming a Clojure Database into a Library with GraalVM Native Image and FFI
ChronDB est né comme serveur et constitue une base clé-valeur temporelle utilisant Git comme moteur de stockage et exposant les protocoles PostgreSQL, Redis et REST/HTTP. L’architecture est organisée en cinq couches et peut être embarquée dans des langages via une bibliothèque partagée générée par GraalVM Native Image. Elle comprend une API C, une passerelle Java et un pont Clojure qui orchestrent le stockage et l’index, chacun se concentrant sur une responsabilité distincte. L’intégration avec Rust et Python s’appuie sur FFI et des handles opaques (entiers), le JSON servant de format universel pour les échanges. Les avantages incluent une absence de dépendances JVM au runtime, une source de vérité unique et la facilité d’ajouter de nouveaux bindings pour d’autres langages.