Skip to content

Make graphql-c_parser optional with warning when unavailable#1003

Draft
myronmarston wants to merge 1 commit intomyron/remove-forkfrom
myron/remove-graphql-c-parser
Draft

Make graphql-c_parser optional with warning when unavailable#1003
myronmarston wants to merge 1 commit intomyron/remove-forkfrom
myron/remove-graphql-c-parser

Conversation

@myronmarston
Copy link
Collaborator

graphql-c_parser requires native C extensions which don't work on all platforms (e.g. JRuby). By making it optional, ElasticGraph can run on more platforms while still recommending the faster parser.

GraphQLGemLoader loads both graphql and graphql/c_parser together. When c_parser is unavailable, prints a yellow warning to stderr (once) directing users to add the gem. Warning is suppressed on JRuby since C extensions can't work there anyway.

New projects still include graphql-c_parser in their generated Gemfile since it's recommended for better performance.

@myronmarston myronmarston force-pushed the myron/remove-graphql-c-parser branch 2 times, most recently from 4935f8d to ecfecb7 Compare January 29, 2026 03:51
graphql-c_parser requires native C extensions which don't work on all
platforms (e.g. JRuby). By making it optional, ElasticGraph can run
on more platforms while still recommending the faster parser.

GraphQLGemLoader loads both `graphql` and `graphql/c_parser` together.
When c_parser is unavailable, prints a yellow warning to stderr (once)
directing users to add the gem. Warning is suppressed on JRuby since
C extensions can't work there anyway.

New projects still include graphql-c_parser in their generated Gemfile
since it's recommended for better performance.

Co-Authored-By: Claude (global.anthropic.claude-opus-4-5-20251101-v1:0) <noreply@anthropic.com>
@myronmarston myronmarston force-pushed the myron/remove-graphql-c-parser branch from ecfecb7 to 3bc37b1 Compare January 29, 2026 18:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant