Flutter Gems is a curated list of 7250+ useful Dart & Flutter packages that are categorized based on functionality.
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_flutterorferrythat 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
errorsarray 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 compatibleMaintenance 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 compatibleMaintenance 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 compatibleMaintenance Status: Good
GQL Terminating Link to execute requests via HTTP using JSON.
ferry
👍 368 ⬇️ 3.8K
Dart 3 compatibleMaintenance Status: Average
Ferry is a simple, powerful GraphQL Client for Flutter and Dart.
gql_transform_link
👍 0 ⬇️ 389.7K
Dart 3 compatibleMaintenance 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 compatibleMaintenance Status: Good
GraphQL tools for parsing, transforming and printing GraphQL documents.
normalize
👍 16 ⬇️ 351.5K
Dart 3 compatibleMaintenance Status: Average
Normalization and denormalization of GraphQL responses in Dart
gql_link
👍 21 ⬇️ 324.6K
Dart 3 compatibleMaintenance Status: Good
A simple and modular AST-based GraphQL request execution interface.
graphql_codegen
👍 151 ⬇️ 132.2K
Dart 3 compatibleMaintenance 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 compatibleMaintenance Status: Good
GQL Link to handle execution errors and exceptions
gql_tristate_value
👍 1 ⬇️ 217.1K
Dart 3 compatibleMaintenance 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 compatibleMaintenance 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 compatibleMaintenance 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 compatibleMaintenance Status: Good
The Amplify Flutter API category plugin, supporting GraphQL and REST operations.
ferry_exec
👍 1 ⬇️ 51.8K
Dart 3 compatibleMaintenance Status: Average
A strongly typed execution interface for GraphQL operations
fresh_graphql
👍 37 ⬇️ 3.4K
Dart 3 compatibleMaintenance 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 compatibleMaintenance Status: Average
Flutter widgets for the Ferry GraphQL client
ferry_cache
👍 4 ⬇️ 21K
Dart 3 compatibleMaintenance Status: Average
A normalized, strongly typed, optimistic cache for GraphQL Operations and Fragments
gql_websocket_link
👍 13 ⬇️ 8.3K
Dart 3 compatibleMaintenance Status: Good
GQL Websocket Link
ferry_store
👍 2 ⬇️ 21.8K
Dart 3 compatibleMaintenance Status: Average
Default Store for Ferry GraphQL client
gql_exec
👍 1 ⬇️ 20K
Dart 3 compatibleMaintenance Status: Poor
Basis for GraphQL execution layer to support Link and Client.
gql_dedupe_link
👍 2 ⬇️ 16.5K
Dart 3 compatibleMaintenance Status: Good
GQL Link to deduplicate identical in-flight execution requests
nhost_graphql_adapter
👍 11 ⬇️ 629
Dart 3 compatibleMaintenance Status: Good
Easily connect to your Nhost.io GraphQL backend using the graphql package.
ferry_hive_store
👍 6 ⬇️ 790
Dart 3 compatibleMaintenance Status: Average
Hive-based Store implementation for Ferry GraphQL client
brick_offline_first_with_graphql
👍 1 ⬇️ 67
Dart 3 compatibleMaintenance Status: Good
A Brick domain that routes data fetching through local providers before a GraphQL provider.
brick_graphql_generators
👍 0 ⬇️ 209
Dart 3 compatibleMaintenance Status: Good
Code generation library for the GraphQL providers, models, and adapters in Brick
ferry_test_graphql
👍 0 ⬇️ 187
Dart 3 compatibleMaintenance Status: Poor
Example GraphQL Operations, used in Ferry tests
brick_graphql
👍 0 ⬇️ 119
Dart 3 compatibleMaintenance Status: Good
GraphQL connector for Brick, a data persistence library. Includes annotations, adapter, model, and provider.
shalom_core
👍 0 ⬇️ 7
Dart 3 compatibleMaintenance 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.
