https://github.com/rmosolgo/graphql-libgraphqlparser-ruby
libgraphqlparser + graphql gem
https://github.com/rmosolgo/graphql-libgraphqlparser-ruby
Last synced: 3 months ago
JSON representation
libgraphqlparser + graphql gem
- Host: GitHub
- URL: https://github.com/rmosolgo/graphql-libgraphqlparser-ruby
- Owner: rmosolgo
- Created: 2015-11-17T17:28:31.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2018-06-12T18:29:09.000Z (over 7 years ago)
- Last Synced: 2025-10-06T14:49:43.578Z (3 months ago)
- Language: Ruby
- Size: 72.3 KB
- Stars: 49
- Watchers: 4
- Forks: 12
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# graphql-libgraphqlparser [](https://travis-ci.org/rmosolgo/graphql-libgraphqlparser-ruby) [](https://badge.fury.io/rb/graphql-libgraphqlparser)
Make [`graphql`](https://github.com/rmosolgo/graphql-ruby) faster with [`libgraphqlparser`](https://github.com/graphql/libgraphqlparser). Ruby bindings to a C-level GraphQL parser.
It's faster:
```
~/projects/graphql-libgraphqlparser $ bundle exec ruby benchmark.rb
user system total real
Ruby 0.090000 0.000000 0.090000 ( 0.088713)
C 0.010000 0.000000 0.010000 ( 0.012827)
~/projects/graphql-libgraphqlparser $ bundle exec ruby benchmark.rb
user system total real
Ruby 0.090000 0.010000 0.100000 ( 0.090548)
C 0.010000 0.000000 0.010000 ( 0.013126)
~/projects/graphql-libgraphqlparser $ bundle exec ruby benchmark.rb
user system total real
Ruby 0.080000 0.000000 0.080000 ( 0.090066)
C 0.020000 0.000000 0.020000 ( 0.011790)
~/projects/graphql-libgraphqlparser $ bundle show graphql
~/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/graphql-0.19.4
```
## Installation
This gem depends on [libgraphqlparser](https://github.com/graphql/libgraphqlparser) (>= 0.5.0). You can install it a few ways:
- Homebrew: `brew install libgraphqlparser`
- From Source:
```
wget https://github.com/graphql/libgraphqlparser/archive/v0.5.0.tar.gz
tar -xzvf v0.5.0.tar.gz
cd libgraphqlparser-0.5.0/ && cmake . && make && make install
```
- With [`heroku-buildpack-libgraphqlparser`](https://github.com/goco-inc/heroku-buildpack-libgraphqlparser)
Then, install this gem:
```ruby
gem "graphql-libgraphqlparser"
```
When you `require` this gem, it overrides `GraphQL.parse`:
```ruby
require "graphql/libgraphqlparser"
```
## Overriding the location of libgraphqlparser
This gem will search for [libgraphqlparser](https://github.com/graphql/libgraphqlparser) at `/usr` and `/usr/local`. If you follow the official install instructions, you don't need to do anything else. If however you have installed libgraphqlparser at a different location, you will need to specify it during gem install. Note that the headers needed to compile the extension are not located at the standard `include` subdirectory but rather `include/graphqlparser`.
Example override:
```bash
export LIBGRAPHQLPARSER_PATH=/my-custom-path
gem install graphql-libgraphqlparser -- \
--with-graphqlparser-lib=$LIBGRAPHQLPARSER_PATH/lib \
--with-graphqlparser-include=$LIBGRAPHQLPARSER_PATH/include/graphqlparser
```
## Libgraphqlparser versions
The Ruby gem expects certain versions of `libgraphqlparser` to be installed. I couldn't figure out how to check this in [`extconf.rb`](#), so I documented it here:
`libgraphqlparser` version | `graphql-libgraphqlparser`(Ruby gem) version
----|----
>= 0.5.0 | 0.5.0
<= 0.4.0 | 0.4.0