Flutter Gems is a curated list of 7250+ useful Dart & Flutter packages that are categorized based on functionality.

Discord Medium LinkedIn X

Top Flutter Graph Query Language packages

Last updated: May 18, 2026

GraphQL (Graph Query Language) is an API standard that allows mobile clients to request exactly the data they need, and nothing more. This makes it incredibly efficient compared to traditional REST APIs.

Best Practices for GraphQL

  • Prevent Over-fetching: Leverage the core strength of GraphQL by writing precise queries. Do not simply request * or all fields if the UI only displays a title and an image.
  • Normalized Caching: Use packages like graphql_flutter or ferry that offer normalized caching. This ensures that if an object updates in one part of your app, all other screens displaying that object update reactively without requiring another network request.
  • Error Handling: GraphQL almost always returns a 200 OK HTTP status, even if there are errors in the payload. Ensure your app properly parses the errors array in the JSON response rather than relying on HTTP status codes.

The complete list of GraphQL packages, including clients like Hasura and Ferry, is provided below.


graphql_flutter
👍 910   ⬇️ 189.3K
Dart 3 compatible
Maintenance Status: Good

A GraphQL client for Flutter, bringing all the features from a modern GraphQL client to one easy to use package.

graphql
👍 493   ⬇️ 402.2K
Dart 3 compatible
Maintenance Status: Good

A stand-alone GraphQL client for Dart, bringing all the features from a modern GraphQL client to one easy to use package.

gql_http_link
👍 21   ⬇️ 449.4K
Dart 3 compatible
Maintenance Status: Good

GQL Terminating Link to execute requests via HTTP using JSON.

ferry
👍 368   ⬇️ 3.8K
Dart 3 compatible
Maintenance Status: Average

Ferry is a simple, powerful GraphQL Client for Flutter and Dart.

gql_transform_link
👍 0   ⬇️ 389.7K
Dart 3 compatible
Maintenance Status: Good

GQL Link to transform Requests and Responses. May be used to update context, document, variables, data, errors, etc.

gql
👍 43   ⬇️ 333.4K
Dart 3 compatible
Maintenance Status: Good

GraphQL tools for parsing, transforming and printing GraphQL documents.

normalize
👍 16   ⬇️ 351.5K
Dart 3 compatible
Maintenance Status: Average

Normalization and denormalization of GraphQL responses in Dart

gql_link
👍 21   ⬇️ 324.6K
Dart 3 compatible
Maintenance Status: Good

A simple and modular AST-based GraphQL request execution interface.

graphql_codegen
👍 151   ⬇️ 132.2K
Dart 3 compatible
Maintenance Status: Good

Simple, opinionated, codegen library for GraphQL. It allows you to generate serializers and client helpers to easily call and parse your data.

gql_error_link
👍 1   ⬇️ 287.4K
Dart 3 compatible
Maintenance Status: Good

GQL Link to handle execution errors and exceptions

gql_tristate_value
👍 1   ⬇️ 217.1K
Dart 3 compatible
Maintenance Status: Good

A wrapper class for representing a value that can be absent, present and null, or present and non-null.

gql_dio_link
👍 34   ⬇️ 39.3K
Dart 3 compatible
Maintenance Status: Good

Similar to gql_http_link, gql_dio_link is a GQL Terminating Link to execute requests via Dio using JSON

graphql_2_rest
👍 64   ⬇️ 468
Dart 3 compatible
Maintenance Status: Average

A lightweight library for converting GraphQL queries into REST format, enabling the use of any HTTP client for executing requests.

amplify_api
👍 40   ⬇️ 29.1K
Dart 3 compatible
Maintenance Status: Good

The Amplify Flutter API category plugin, supporting GraphQL and REST operations.

ferry_exec
👍 1   ⬇️ 51.8K
Dart 3 compatible
Maintenance Status: Average

A strongly typed execution interface for GraphQL operations

fresh_graphql
👍 37   ⬇️ 3.4K
Dart 3 compatible
Maintenance Status: Good

An graphql link for token refresh. Built on top of package:graphql and manages authentication tokens transparently.

ferry_flutter
👍 21   ⬇️ 926
Dart 3 compatible
Maintenance Status: Average

Flutter widgets for the Ferry GraphQL client

ferry_cache
👍 4   ⬇️ 21K
Dart 3 compatible
Maintenance Status: Average

A normalized, strongly typed, optimistic cache for GraphQL Operations and Fragments

gql_websocket_link
👍 13   ⬇️ 8.3K
Dart 3 compatible
Maintenance Status: Good

GQL Websocket Link

ferry_store
👍 2   ⬇️ 21.8K
Dart 3 compatible
Maintenance Status: Average

Default Store for Ferry GraphQL client

gql_exec
👍 1   ⬇️ 20K
Dart 3 compatible
Maintenance Status: Poor

Basis for GraphQL execution layer to support Link and Client.

gql_dedupe_link
👍 2   ⬇️ 16.5K
Dart 3 compatible
Maintenance Status: Good

GQL Link to deduplicate identical in-flight execution requests

nhost_graphql_adapter
👍 11   ⬇️ 629
Dart 3 compatible
Maintenance Status: Good

Easily connect to your Nhost.io GraphQL backend using the graphql package.

ferry_hive_store
👍 6   ⬇️ 790
Dart 3 compatible
Maintenance Status: Average

Hive-based Store implementation for Ferry GraphQL client

brick_offline_first_with_graphql
👍 1   ⬇️ 67
Dart 3 compatible
Maintenance Status: Good

A Brick domain that routes data fetching through local providers before a GraphQL provider.

brick_graphql_generators
👍 0   ⬇️ 209
Dart 3 compatible
Maintenance Status: Good

Code generation library for the GraphQL providers, models, and adapters in Brick

ferry_test_graphql
👍 0   ⬇️ 187
Dart 3 compatible
Maintenance Status: Poor

Example GraphQL Operations, used in Ferry tests

brick_graphql
👍 0   ⬇️ 119
Dart 3 compatible
Maintenance Status: Good

GraphQL connector for Brick, a data persistence library. Includes annotations, adapter, model, and provider.

shalom_core
👍 0   ⬇️ 7
Dart 3 compatible
Maintenance Status: Good

GraphQL client for flutter

gql_code_builder
👍 5   ⬇️ 223.3K

Maintenance Status: Good

Dart code builders taking *.graphql documents and SDL to build useful classes.