ChronDB, una base de datos Clojure inicialmente diseñada como servidor, ha evolucionado para convertirse en una biblioteca políglota gracias a la integración con GraalVM. Originalmente concebida para almacenar datos con Git y exponer protocolos como PostgreSQL, Redis y REST, el equipo de desarrollo buscaba una solución más ligera para gestionar el estado en entornos de desarrollo efímeros (spuff) escritos en Rust. La integración directa de ChronDB en Rust, sin la necesidad de un proceso JVM, resultó un desafío que se resolvió mediante el uso de GraalVM Native Image y la Foreign Function Interface (FFI).
La arquitectura resultante se organiza en cinco capas: bindings de lenguaje (Rust, Python), una API en C (librería compartida), un puente Java, un puente Clojure y el núcleo de ChronDB. Esta estructura permite la interoperabilidad entre diferentes lenguajes de programación. Un aspecto clave es el uso de un registro de 'handles' enteros para referenciar las instancias de la base de datos, lo que facilita la comunicación a través de la barrera FFI. El proceso de construcción implica la creación de un 'uberjar' de Clojure, la compilación de Java con el SVM de GraalVM y la generación de una librería compartida. Esta innovación abre la puerta a la integración de ChronDB en una variedad de proyectos y lenguajes, simplificando la gestión de datos y el desarrollo de aplicaciones.
