GithubHelp home page GithubHelp logo

aldrinmartoq / graphql-ruby Goto Github PK

View Code? Open in Web Editor NEW

This project forked from rmosolgo/graphql-ruby

0.0 2.0 0.0 2.75 MB

Ruby implementation of GraphQL: https://rmosolgo.github.io/graphql-ruby/

License: MIT License

Ruby 96.63% HTML 0.76% Ragel in Ruby Host 0.85% Yacc 1.76%

graphql-ruby's Introduction

graphql graphql-ruby

Build Status Gem Version Code Climate Test Coverage built with love

A Ruby implementation of GraphQL.

Installation

Install from RubyGems by adding it to your Gemfile, then bundling.

# Gemfile
gem 'graphql'
$ bundle install

Getting Started

See "Getting Started" on the website or on GitHub

Goals

  • 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

Getting Involved

  • 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 with bundle exec guard.
  • Build the site with rake site:serve, then visit http://localhost:4000/graphql-ruby/.

To Do

  • 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| ... }
  • First-class promise support (discussion)
    • like graphql-batch but more local
    • support promises in connection resolves
  • 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
  • Document encrypted & versioned cursors

graphql-ruby's People

Contributors

rmosolgo avatar cjoudrey avatar gjtorikian avatar josh avatar dylanahsmith avatar theorygeek avatar charlieschwabacher avatar xuorig avatar eapache avatar chanks avatar gauravtiwari avatar astorije avatar kliuless avatar kristianm avatar sgwilym avatar keithpitt avatar b8in avatar willianvdv avatar sagmor avatar mcolyer avatar kdaigle avatar pushrax avatar daikini avatar ktec avatar staugaard avatar nettofarah avatar oguzbilgic avatar polmiro avatar dlackty avatar robinjmurphy avatar

Watchers

Aldrin Martoq avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.