Introduction
Ferry is a highly productive, full-featured, extensible GraphQL Client for Flutter & Dart. Get started with ferry now.
๐ Productive
Ferry is fully typed, allowing you to work faster and safer with compile time checks and IDE autocomplete, including fully typed Cache reads and writes.
Ferry's built-in code generator creates immutable data classes for all your GraphQL Operations and Fragments based on your GraphQL schema.
Use the client with any Link from the gql_link ecosystem.
๐ฏ Full-Featured
Ferry includes all the features you'd expect in a GraphQL client, including:
- Normalized Optimistic Cache: keep data in sync with cache normalization and update your UI instantly with optimistic data.
- Multiple Data Stores: extensible Store interface for data persistence, including built-in MemoryStore and HiveStore (for offline persistence).
- Cache Eviction & Garbage Collection: selectively remove data from the cache or use the built-in garbage collection to remove stale data automatically
- Refetch & Pagination: easily update responses with new data or combine multiple responses, allowing for seamless pagination.
- Flutter Widget: use the included Operation Widget in your Flutter app.
๐ช Extensible
Ferry's core features are implemented as composable TypedLink
s, a typed version of the gql_link API. In fact, the Ferry Client itself is a TypedLink
, created by composing several other core links. This architecture makes extending or customizing the client extremely easy.