A GraphQL server library in Clojure (not under active development)
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src/galapagos
test/galapagos
.gitignore
.travis.yml
LICENSE
README.md
links.md
project.clj

README.md

galapagos

An implementation of the GraphQL specification in Clojure.

Build Status

Overview

The goal of this library is to expose the data of your Clojure application in a way that enables GraphQL clients to interact with it. Special care is taken to make data access as efficient as possible - streamlined, concurrent data fetching is provided by the muse library.

See links for more information on GraphQL and the ideas behind it.

Status

Galapagos is still very much pre-alpha software and nearly everything is subject to change. The first iteration suffers from two problems:

  • The schema is defined using a rather complicated, macro-based DSL. There's a lot of metadata being attached to the symbols that make up the various type definitions, which makes schema introspection overly complex. It would be better to just use straight-up Clojure data structures.
  • Data fetching has to happen using core.async. This is a design choice that a library like this should not make.

Queries

Directives and query variables are missing. Validation is lacking. Support for muse's query batching (a solution to the [1+N query problem] 1) is not yet implemented.

Mutation

Mutation operations are not currently supported.

License

Distributed under the MIT License - see LICENSE for the full license.