A Ruby implementation of GraphQL.
Install from RubyGems by adding it to your Gemfile
, then bundling.
# Gemfile
gem 'graphql'
$ bundle install
See "Getting Started" on the website or on GitHub
- Implement the GraphQL spec & support a Relay front end
- Provide idiomatic, plain-Ruby API with similarities to reference implementation where possible
- Support Ruby on Rails and Relay
- Say hi & ask questions in the #ruby channel on Slack or on Twitter!
- Report bugs by posting a description, full stack trace, and all relevant code in a GitHub issue.
- Features & patches are welcome! Consider discussing it in an issue or in the #ruby channel on Slack to make sure we're on the same page.
- Run the tests with
rake test
or start up guard withbundle exec guard
. - Build the site with
rake site:serve
, then visithttp://localhost:4000/graphql-ruby/
.
- StaticValidation improvements (in progress ??)
- Use catch-all type/field/argument definitions instead of terminating traversal
- Reduce ad-hoc traversals?
- Validators are order-dependent, is this a smell?
- Tests for interference between validators are poor
- Maybe this is a candidate for a rewrite?
- Relay:
- Reduce duplication in ArrayConnection / RelationConnection
- Improve API for creating edges (better RANGE_ADD support)
- If the new edge isn't a member of the connection's objects, raise a nice error
args
should whitelist keys -- if you request a key that isn't defined for the field, it should 💥- Support non-instance-eval
.define
, eg.define { |defn| ... }
- Add immutable transformation API to AST
- Support working with AST as data
- Adding fields to selections (
__typename
can go anywhere, others are type-specific) - Renaming fragments from local names to unique names