Glojure es un intérprete de Clojure desarrollado sobre Go que facilita el acceso a las bibliotecas del lenguaje anfitrión, del mismo modo que Clojure permite aprovechar el ecosistema Java sobre la JVM. Se trata de un proyecto en fase inicial (versión 0.3.0), sin garantías de retrocompatibilidad hasta una futura v1, aunque ya ejecuta un subconjunto significativo de la biblioteca estándar de Clojure y se emplea en proyectos personales. A diferencia de otras implementaciones de Clojure en Go, Glojure es un lenguaje "hospedado": todos los valores de Go son también valores de Glojure y viceversa, lo que elimina la barrera tradicional entre ambos ecosistemas.
El proyecto se distribuye desde el código fuente y se instala con go install github.com/glojurelang/glojure/cmd/glj@latest, requiriendo Go 1.19 o superior. Una vez instalado, el comando glj arranca una REPL interactiva al estilo de Clojure, permite ejecutar expresiones puntuales con glj -e, correr scripts .glj y compilar programas completos, como un servidor HTTP que escucha en el puerto 8080.
Además del uso en línea de comandos, Glojure puede embebirse dentro de aplicaciones Go para añadir configuración programable, sistemas de plugins, sandboxes controlados o mezclar la expresividad de Clojure con el rendimiento de Go. La interoperabilidad bidireccional se ilustra con ejemplos donde funciones Go se invocan desde Clojure y funciones Clojure se llaman desde Go. Por defecto incluye interop con 23 paquetes de la biblioteca estándar de Go (bytes, fmt, net/http, regexp, sync, time, entre otros), y la herramienta gen-import-interop genera mapas de paquetes para exponer bibliotecas propias. El proyecto incluye además una tabla de equivalencias entre tipos de Clojure y tipos de Glojure, y una comparativa con otras implementaciones como Joker y let-go.
