Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gql-dart/ferry
Stream-based strongly typed GraphQL client for Dart
https://github.com/gql-dart/ferry
dart flutter graphql rxdart
Last synced: 7 days ago
JSON representation
Stream-based strongly typed GraphQL client for Dart
- Host: GitHub
- URL: https://github.com/gql-dart/ferry
- Owner: gql-dart
- License: mit
- Created: 2019-12-20T20:03:24.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2024-09-26T19:34:29.000Z (about 1 month ago)
- Last Synced: 2024-10-05T09:41:28.451Z (about 1 month ago)
- Topics: dart, flutter, graphql, rxdart
- Language: Dart
- Homepage: https://ferrygraphql.com/
- Size: 34.5 MB
- Stars: 601
- Watchers: 9
- Forks: 116
- Open Issues: 88
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
Awesome Lists containing this project
README
A simple, powerful GraphQL Client for Flutter and Dart
[![MIT License][license-badge]][license-link]
[![PRs Welcome][prs-badge]][prs-link]
[![Watch on GitHub][github-watch-badge]][github-watch-link]
[![Star on GitHub][github-star-badge]][github-star-link]
[![Watch on GitHub][github-forks-badge]][github-forks-link]
[![Discord][discord-badge]][discord-link][license-badge]: https://img.shields.io/github/license/gql-dart/ferry.svg?style=for-the-badge
[license-link]: https://github.com/gql-dart/ferry/blob/master/LICENSE
[prs-badge]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=for-the-badge
[prs-link]: https://github.com/gql-dart/ferry/issues
[github-watch-badge]: https://img.shields.io/github/watchers/gql-dart/ferry.svg?style=for-the-badge&logo=github&logoColor=ffffff
[github-watch-link]: https://github.com/gql-dart/ferry/watchers
[github-star-badge]: https://img.shields.io/github/stars/gql-dart/ferry.svg?style=for-the-badge&logo=github&logoColor=ffffff
[github-star-link]: https://github.com/gql-dart/ferry/stargazers
[github-forks-badge]: https://img.shields.io/github/forks/gql-dart/ferry.svg?style=for-the-badge&logo=github&logoColor=ffffff
[github-forks-link]: https://github.com/gql-dart/ferry/network/members
[discord-badge]: https://img.shields.io/discord/559455668810153989.svg?style=for-the-badge&logo=discord&logoColor=ffffff
[discord-link]: https://discord.com/invite/tXTtBfC# [Documentation](https://ferrygraphql.com/) 📖
# Features
1. ✅ **Fully Typed**: work faster and safer with compile time checks and IDE autocomplete, including fully typed Cache reads and writes.
2. 🔄 **Built-In Code Generators**: automatically generated immutable data classes for all your GraphQL Operations and Fragments, based on your schema.
3. 🌐 **Customizable Network Interface**: highly customizable network interface using `gql_link`, allowing you to compose and extend `Link`s.
4. ✨ **Normalized Optimistic Cache**: keep data in sync with cache normalization and update your UI instantly with optimistic data.
5. 💾 **Multiple Data Stores**: extensible `Store` interface with built-in `MemoryStore` and `HiveStore` (which uses `hive` for offline persistence).
6. 📄 **Refetch & Pagination**: easily update responses with new data or combine multiple responses, allowing for seamless pagination.
7. 📱 **Flutter Widgets**: Widgets for Queries, Mutations, and Subscriptions, available out of the box.
8. 🧈 **Smooth**: Run queries in a separate Isolate to free up resources on the UI thread# Packages
This repo is a monorepo for `ferry` and related packages.
| Pub | Package | Description |
| ------------------------------------------------------------------------ | ------------------------------------------------------------- | ----------------------------------------------- |
| [![version][package:ferry:version]][package:ferry] | [`package:ferry`][package:ferry:source] | Stream-based GraphQL Client |
| [![version][package:ferry_cache:version]][package:ferry_cache] | [`package:ferry_cache`][package:ferry_cache:source] | Normalized, strongly typed, optimistic cache |
| [![version][package:ferry_exec:version]][package:ferry_exec] | [`package:ferry_exec`][package:ferry_exec:source] | Strongly typed GraphQL execution interface |
| [![version][package:ferry_flutter:version]][package:ferry_flutter] | [`package:ferry_flutter`][package:ferry_flutter:source] | Flutter Widgets for GraphQL Operations |
| [![version][package:ferry_generator:version]][package:ferry_generator] | [`package:ferry_generator`][package:ferry_generator:source] | Dart Type Generator for GraphQL Operations |
| [![version][package:ferry_store:version]][package:ferry_store] | [`package:ferry_store`][package:ferry_store:source] | Data Persistence for `ferry`'s cache |
| [![version][package:ferry_hive_store:version]][package:ferry_hive_store] | [`package:ferry_hive_store`][package:ferry_hive_store:source] | Hive implementation of `ferry_store` |
| [![version][package:normalize:version]][package:normalize] | [`package:normalize`][package:normalize:source] | Normalization / denormalization of GraphQL data |[package:ferry:source]: ./packages/ferry
[package:ferry]: https://pub.dartlang.org/packages/ferry
[package:ferry:version]: https://img.shields.io/pub/v/ferry.svg?style=flat-square
[package:ferry_cache:source]: ./packages/ferry_cache
[package:ferry_cache]: https://pub.dartlang.org/packages/ferry_cache
[package:ferry_cache:version]: https://img.shields.io/pub/v/ferry_cache.svg?style=flat-square
[package:ferry_exec:source]: ./packages/ferry_exec
[package:ferry_exec]: https://pub.dartlang.org/packages/ferry_exec
[package:ferry_exec:version]: https://img.shields.io/pub/v/ferry_exec.svg?style=flat-square
[package:ferry_flutter:source]: ./packages/ferry_flutter
[package:ferry_flutter]: https://pub.dartlang.org/packages/ferry_flutter
[package:ferry_flutter:version]: https://img.shields.io/pub/v/ferry_flutter.svg?style=flat-square
[package:ferry_generator:source]: ./packages/ferry_generator
[package:ferry_generator]: https://pub.dartlang.org/packages/ferry_generator
[package:ferry_generator:version]: https://img.shields.io/pub/v/ferry_generator.svg?style=flat-square
[package:ferry_store:source]: ./packages/ferry_store
[package:ferry_store]: https://pub.dartlang.org/packages/ferry_store
[package:ferry_store:version]: https://img.shields.io/pub/v/ferry_store.svg?style=flat-square
[package:ferry_hive_store:source]: ./packages/ferry_hive_store
[package:ferry_hive_store]: https://pub.dartlang.org/packages/ferry_hive_store
[package:ferry_hive_store:version]: https://img.shields.io/pub/v/ferry_hive_store.svg?style=flat-square
[package:normalize:source]: ./packages/normalize
[package:normalize]: https://pub.dartlang.org/packages/normalize
[package:normalize:version]: https://img.shields.io/pub/v/normalize.svg?style=flat-square