A full-featured GraphQL implementation in pure Clojure, providing a backend-agnostic query execution engine.
Lacinia is a GraphQL implementation written entirely in Clojure. It provides a full-featured, backend-agnostic query execution engine that allows developers to expose GraphQL APIs from Clojure applications. It solves the problem of integrating GraphQL into Clojure backends without requiring external JavaScript runtimes or complex bridging layers.
Clojure developers and teams building GraphQL APIs who want a native, idiomatic Clojure solution. It's ideal for backend engineers working on data services, microservices, or full-stack applications in the Clojure ecosystem.
Developers choose Lacinia for its pure Clojure implementation, seamless integration with Clojure data structures and tooling, and its philosophy of simplicity and minimal magic. It offers production-ready reliability, having been used at Walmart since 2017, and full compliance with the GraphQL specification.
GraphQL implementation in pure Clojure
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses EDN for schemas and Clojure functions for resolvers, seamlessly fitting into Clojure workflows with persistent data structures and minimal abstraction.
Has been used in production at Walmart since 2017, ensuring it's battle-tested and stable for enterprise-scale applications.
Implements all GraphQL features, including subscriptions, unions with optional syntax, and introspection, making it a complete and compliant solution.
Built on Antlr4 for efficient parsing and supports non-blocking query execution, optimizing handling of complex or concurrent requests.
Exclusively targets Clojure, limiting adoption in polyglot teams or projects and requiring familiarity with Clojure's tooling and paradigms.
Requires running `clojure -X:deps prep` to compile Antlr parsers before use, adding an extra step to setup and deployment workflows.
Lacinia is purely a query engine and lacks web server capabilities, forcing reliance on external libraries like lacinia-pedestal for HTTP integration.