Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. GraphQL
  3. graphql-clj

graphql-clj

EPL-1.0Clojure

A Clojure library providing a full GraphQL implementation with schema validation, query execution, and high-performance parsing.

GitHubGitHub
286 stars22 forks0 contributors

What is graphql-clj?

graphql-clj is a Clojure library that implements the GraphQL specification, allowing developers to build GraphQL servers and APIs in Clojure. It provides schema definition, query validation, and execution capabilities, solving the need for a native GraphQL solution in the Clojure ecosystem.

Target Audience

Clojure developers building GraphQL APIs or servers who need a library that integrates with Clojure's functional programming style and tooling.

Value Proposition

Developers choose graphql-clj for its simplicity, adherence to the GraphQL spec, and performance optimizations like a high-performance Java parser, making it a reliable choice for GraphQL in Clojure projects.

Overview

A Clojure library that provides GraphQL implementation.

Use Cases

Best For

  • Building GraphQL APIs in Clojure applications
  • Validating GraphQL schemas and queries programmatically
  • Executing GraphQL queries with custom resolver functions
  • Integrating GraphQL into existing Clojure backend systems
  • Learning GraphQL implementation concepts in a functional language
  • Developing high-performance GraphQL servers with caching support

Not Ideal For

  • Projects requiring real-time GraphQL features like subscriptions, as the library's documentation and examples focus solely on queries without mentioning subscriptions
  • Teams needing a mature, full-featured GraphQL server with extensive tooling and community plugins, compared to more established options like GraphQL-Java
  • Applications where developers prefer non-Clojure ecosystems, as graphql-clj is tightly coupled to Clojure's functional programming style and tooling

Pros & Cons

Pros

Spec Compliance and Validation

It rigorously validates GraphQL schemas and queries against the specification, ensuring correctness, as shown in the schema-validator and query-validator functions that throw errors on non-compliance.

High-Performance Java Parser

Uses a Java-based parser for efficient parsing of schemas and queries, improving execution speed, which is highlighted in the 'What's new' section for version 0.2.

Caching for Performance

Supports caching of validated schemas and queries to enhance performance in repeated executions, demonstrated in the caching example where validated objects are memoized.

Simplified API Design

Version 0.2 introduced cleaner, separated APIs for schema and query parsing, making integration easier, as noted in the migration guide and usage examples.

Cons

Breaking API Changes

The migration from version 0.1.x to 0.2 involved significant API changes, such as separated parsers and simplified validators, which can disrupt existing projects and indicate instability.

Limited Advanced Features

The README only demonstrates basic query execution with no mention of mutations, subscriptions, or other GraphQL operations, suggesting it might lack support for full GraphQL implementations.

Sparse Documentation

Beyond a basic demo and usage snippets, the library lacks comprehensive guides, tutorials, or detailed error handling examples, which could hinder adoption and troubleshooting.

Frequently Asked Questions

Quick Stats

Stars286
Forks22
Contributors0
Open Issues9
Last commit5 years ago
CreatedSince 2016

Tags

#library#api#graphql#query-execution#server#clojure-library#schema-validation#clojure#backend#clj#graphql-server

Built With

C
Clojure
J
Java

Included in

GraphQL15.0k
Auto-fetched 9 hours ago

Related Projects

LaciniaLacinia

GraphQL implementation in pure Clojure

Stars1,862
Forks168
Last commit3 months ago
graphql-querygraphql-query

Clojure(Script) graphql query generation

Stars74
Forks10
Last commit2 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub