GraphQL Ruby vs Strawberry GraphQL
GraphQL Ruby
graphql-ruby.orgStrawberry GraphQL
strawberry.rocksSide by side
| Figure | GraphQL Ruby | Strawberry GraphQL |
|---|---|---|
| Price from | $91.67/mo | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| API | Yes | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 3 | 1 |
| Spec score · GraphQL Tools | 7.8 (#11) | 7.1 (#21) |
| Data loading | GraphQL::Dataloader batches external data access, caches results per query, and AsyncDataloader supports parallel I/O. | Built-in dataloader support batches multiple queries into one. |
| License | RubyGems lists the graphql gem license as MIT, while GraphQL::Pro and GraphQL::Enterprise use special commercial licenses. | The repository states that Strawberry is licensed under the MIT license. |
Plans
GraphQL Ruby
- GraphQL Ruby gemFree
- GraphQL::Pro$1,100 a year
- GraphQL::Enterprise$2,400 a year
In their own words
GraphQL Ruby
GraphQL Ruby is a free, self-hosted Ruby gem that implements the GraphQL Server Specification for Ruby or Rails applications. It provides a self-documenting, strongly typed schema and serves queries, mutations, subscriptions, streaming responses, and multiplexed queries. Configurable depth and complexity validation can reject deeply nested or overly complex requests. Authorization tools handle schema visibility and checks on application objects during execution, while authentication is generally left to the application controller. GraphQL::Dataloader batches external data access and caches results per query; AsyncDataloader supports parallel I/O. Documentation covers Relay, Apollo Client, GraphQL.js Client, GraphiQL, urql, and custom JavaScript, plus monitoring integrations. The open-source gem is installed through RubyGems and uses the MIT license. The GraphQL Ruby gem costs nothing. GraphQL::Pro costs $1,100 a year, and GraphQL::Enterprise costs $2,400 a year under commercial licenses.
Strawberry GraphQL
Strawberry GraphQL is a free, open-source Python library for creating GraphQL APIs. It uses Python type hints to define schemas and support a developer-oriented workflow. Async/await allows resolvers to run without blocking, while schema and field extensions provide places for custom logic. Generics support reusable types, and federated GraphQL schemas are supported. Built-in dataloaders can batch multiple queries into one. Documentation lists integrations for Django, Channels, FastAPI, Flask, Quart, Sanic, Chalice, Starlette, Litestar and AIOHTTP, while noting that the integration table may not be current. Installation uses pip and requires Python 3.10 or later. Strawberry is MIT licensed and intended for self-hosted deployment. Authentication is handled by the web framework; authorization uses Permissions classes. API explorer, client code generation and operation testing are listed. Enterprise support is available through Farbun.