Packages
absinthe
1.5.0-rc.2
1.11.0
1.10.2
1.10.1
1.10.0
1.9.1
1.9.0
1.8.0
1.7.11
1.7.10
1.7.9
1.7.8
1.7.7
1.7.6
1.7.5
1.7.4
1.7.3
1.7.2
1.7.1
1.7.0
1.6.8
1.6.7
retired
1.6.6
1.6.5
1.6.4
1.6.3
1.6.2
1.6.1
1.6.0
1.6.0-rc.1
1.6.0-rc.0
1.5.5
1.5.4
1.5.3
1.5.2
1.5.1
1.5.0
1.5.0-rc.5
1.5.0-rc.4
1.5.0-rc.3
1.5.0-rc.2
1.5.0-rc.1
1.5.0-rc.0
1.5.0-beta.2
1.5.0-beta.1
1.5.0-beta.0
1.5.0-alpha.4
1.5.0-alpha.3
1.5.0-alpha.2
1.5.0-alpha.1
1.5.0-alpha.0
1.4.16
1.4.15
1.4.14
1.4.13
1.4.12
1.4.11
1.4.10
1.4.9
1.4.8
retired
1.4.7
1.4.6
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.4.0-rc.3
1.4.0-rc.2
1.4.0-rc.1
1.4.0-rc.0
1.4.0-beta.5
1.4.0-beta.4
1.4.0-beta.3
1.4.0-beta.2
1.4.0-beta.1
1.3.2
1.3.1
1.3.0
1.3.0-rc.0
1.3.0-beta.2
1.3.0-beta.1
1.3.0-beta.0
1.2.6
1.2.5
1.2.4
1.2.3
1.2.2
1.2.1
1.2.0
1.2.0-rc.0
1.2.0-beta.0
1.2.0-alpha0
1.2.0-alpha.2
1.2.0-alpha.1
1.1.11
1.1.10
1.1.9
1.1.8
1.1.7
1.1.6
1.1.5
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
1.0.0
0.5.2
0.5.1
0.5.0
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.2.3
0.2.2
0.2.1
0.1.0
GraphQL for Elixir
Security advisory:
This version has known vulnerabilities.
View advisories
Current section
Files
Jump to
Current section
Files
README.md
# Absinthe
[GraphQL](https://facebook.github.io/graphql/) implementation for Elixir.
[](https://hex.pm/packages/absinthe)[](https://travis-ci.org/absinthe-graphql/absinthe)[](https://opensource.org/licenses/MIT)
Goals:
- Complete implementation of the [GraphQL Working Draft](https://facebook.github.io/graphql).
- An idiomatic, readable, and comfortable API for Elixir developers
- Extensibility based on small parts that do one thing well.
- Detailed error messages and documentation.
- A focus on robustness and production-level performance.
Please see the website at [http://absinthe-graphql.org](http://absinthe-graphql.org).
## Why Use Absinthe?
Absinthe goes far beyond GraphQL specification basics.
### Easy-to-Read, Fast-to-Run Schemas
Absinthe schemas are defined using easy-to-read macros that build and verify
their structure at compile-time, preventing runtime errors and increasing
performance.
### Pluggability
The entire query processing pipeline is configurable. Add, swap out, or remove
the parser, individual validations, or resolution logic at will, even on a
per-document basis.
### Advanced Resolution
Absinthe includes a number of advanced resolution features, to include:
- Asynchronous field resolution
- Batched field resolution (addressing N+1 query problems)
- A resolution plugin system supporting further extensibility
### Safety
- Complexity analysis and configurable limiting
- Support for precompiled documents/preventing custom documents
### Idiomatic Documents, Idiomatic Code
Write your schemas in idiomatic Elixir `snake_case` notation. Absinthe can
transparently translate to `camelCase` notation for your API clients.
Or, define your own translation schema by writing a simple adapter.
### Frontend Support
We care about support for third-party frameworks, both on the back and
front end.
So far, we include specialized support for Phoenix and Plug on the backend,
and [Relay](https://facebook.github.io/relay/) on the frontend.
Of course we work out of the box with other frontend frameworks and GraphQL
clients, too.
### An Active Community
The project is under constant improvement by a growing list of
contributors, and your feedback is important. Please join us in Slack
(`#absinthe-graphql` under the Elixir Slack account) or the Elixir Forum
(tagged `absinthe`).
Please remember that all interactions in our official spaces follow
our [Code of Conduct](./CODE_OF_CONDUCT.md).
## Installation
Install from [Hex.pm](https://hex.pm/packages/absinthe):
```elixir
def deps do
[{:absinthe, "~> 1.4.0"}]
end
```
Note: Absinthe requires Elixir 1.4 or higher.
## Upgrading
See [CHANGELOG](./CHANGELOG.md) for upgrade steps between versions.
## Documentation
See [HexDocs](https://hexdocs.pm/absinthe) and <http://absinthe-graphql.org>.
### Mix Tasks
Absinthe includes a number of useful Mix tasks for extracting schema metadata.
Run `mix help` in your project and look for tasks starting with `absinthe`.
### Roadmap
See the [Roadmap project board](https://github.com/absinthe-graphql/absinthe/projects/2) for longer term plans.
## Related Projects
See the [GitHub organization](https://github.com/absinthe-graphql).
## License
See [LICENSE.md](./LICENSE.md).