An Elixir implementation of Facebook's GraphQL specification for building transport-agnostic GraphQL servers.
GraphQL Elixir is an Elixir implementation of Facebook's GraphQL specification that provides a core query parsing and execution engine. It allows developers to build GraphQL APIs in Elixir applications while remaining independent of specific transports, servers, or datastores. The project serves as the foundational layer for handling GraphQL queries and schemas in the Elixir ecosystem.
Elixir developers building GraphQL APIs who need a transport-agnostic, spec-compliant GraphQL implementation. It's particularly useful for backend engineers integrating GraphQL into Phoenix applications or custom Elixir-based services.
Developers choose GraphQL Elixir for its strict adherence to the GraphQL specification, idiomatic Elixir design, and transport-agnostic architecture. It provides a reliable foundation that can be extended with HTTP layers like plug_graphql while maintaining compatibility with the broader GraphQL ecosystem.
GraphQL Elixir
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 Erlang's leex and yecc tools for tokenization and parsing, ensuring compliance with GraphQL specifications as noted in the README's implementation details.
Core engine is transport-agnostic, allowing integration with any transport layer, with plug_graphql available for HTTP setups, emphasizing its independence from specific servers.
Follows Elixir conventions while closely adhering to the GraphQL JS reference implementation, providing a native feel for developers in the ecosystem.
Includes introspection capabilities that are compliant with GraphQL specs, enabling easy schema exploration and tooling integration.
Directives are not implemented, and query validation is marked as work in progress, limiting full GraphQL spec compliance for advanced use cases.
Requires plug_graphql for HTTP handling, adding an extra dependency and configuration step, which complicates initial setup for web-based APIs.
Schema setup involves manual, nested configuration structures (as shown in the usage example), which can be error-prone and tedious for large schemas.