Components
alumbra is built upon a series of components that can be used and replaced individually.
Specification (clojure.spec)
This set of clojure.spec specifications describes the data structures and interfaces used by the different parts of the alumbra infrastructure. They are both documentation and means of verification, e.g. in tests.
Generators (test.check)
Mainly used for parser verification, these test.check generators produce syntactically correct GraphQL queries based on the GraphQL working draft.
Parser
This component is built upon ANTLR4, providing a fast parser for both GraphQL query documents and schemas.
Analyzer
The analyzer converts raw GraphQL ASTs to formats suitable for validation and execution. Most importantly, it can combine a GraphQL schema and a GraphQL query document to produce a canonical, standalone format that an executor can handle without further knowledge of the original type system.
Validator
This component is based on invariant to provide validation for GraphQL query documents according to the GraphQL Working Draft.
Executor
Represent your data as claro resolvables and mutations to have them easily accessible via GraphQL. Additionally, you’ll benefit from the flexibility and optimizations claro provides out-of-the-box, including batching capabilities and engine extensibility.
Ring Handlers
This library provides Ring handlers for both executing GraphQL queries and exposing an interactive GraphiQL environment.