ferry
Ferry is a simple, powerful GraphQL Client for Flutter and Dart.
0.16.1+2
2.5K downloads/mo
#4970 most downloaded on pub.dev
gql-dart/ferry
What this package is like to depend on
Last release 1 years ago
03 May 2025
Ships fairly regularly
a new release about every 6 weeks
Most releases are documented
notes for 36 of 43 stable releases
2 versions withdrawn
withdrawn after publishing
6 years old
104 releases · first in 2020
0 releases in the last 12 months
see the full history below
Release timeline
104 releases · Feb 2020 to May 2025Releases
latest 60 of 104-
0.16.2-dev.403 May 2025 pre-releaseRelease notes
Open source →- BREAKING FEAT(ferry_generator): upgrade to latest gql_code_builder (#637).
Release notes
Open source →Note: This release has breaking changes.
- BREAKING FEAT(ferry_generator): upgrade to latest gql_code_builder (#637).
-
0.16.2-dev.310 Mar 2025 pre-release -
0.16.2-dev.214 Feb 2025 pre-releaseRelease notes
Open source →- BREAKING FEAT(ferry): propagate .done from websockets to returned stream. This this disables refetching/paging for subscriptions and thus a breaking change. See #629.
2025-02-09
Changes
Packages with breaking changes:
- There are no breaking changes in this release.
Packages with other changes:
Packages with dependency updates only:
Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.
ferry_flutter-v0.9.1-dev.1
Release notes
Open source →Note: This release has breaking changes.
- BREAKING FEAT(ferry): propagate .done from websockets to returned stream. This this disables refetching/paging for subscriptions and thus a breaking change. See #629.
-
0.16.2-dev.109 Feb 2025 pre-releaseRelease notes
Open source →- FEAT(ferry): expose store flush() in isolate client (#628).
2025-02-07
Changes
Packages with breaking changes:
- There are no breaking changes in this release.
Packages with other changes:
-
0.16.2-dev.007 Feb 2025 pre-releaseRelease notes
Open source →- FEAT(ferry): add evict operation to ferry isolate client.
2025-02-07
Changes
Packages with breaking changes:
Packages with other changes:
Packages graduated to a stable release (see pre-releases prior to the stable version for changelog entries):
ferry-v0.16.1ferry_cache-v0.10.1ferry_flutter-v0.9.1ferry_hive_store-v0.6.0+1ferry_store-v0.6.1
-
0.16.1+206 Jan 2025Release notes
Open source →- Graduate package to a stable release. See pre-releases prior to this version for changelog entries.
-
0.16.1-dev.207 Feb 2025 pre-release -
0.16.1-dev.106 Jan 2025 pre-releaseRelease notes
Open source →- FEAT(ferry): add evict operation to ferry isolate client.
2025-01-06
Changes
Packages with breaking changes:
- There are no breaking changes in this release.
Packages with other changes:
Packages with dependency updates only:
Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.
ferry-v0.16.1-dev.0+3ferry_flutter-v0.9.1-dev.0+2
-
0.16.1-dev.0+206 Jan 2025 pre-release -
0.16.1-dev.0+306 Jan 2025 pre-release -
0.16.0+103 Feb 2024 -
0.16.0-dev.523 Oct 2024 pre-release -
0.16.0-dev.426 Sep 2024 pre-releaseRelease notes
Open source →Note: This release has breaking changes.
- BREAKING CHORE(deps): upgrade rxdart to v0.28.0 (#612).
-
0.16.0-dev.320 May 2024 pre-releaseRelease notes
Open source →- BREAKING FEAT(ferry_generator): update to gql_code_builders 0.12.0. this extracted the common serializers to a separate package. clients need to add gql_code_builder_serializers to their dependencies if they use ferry_generator. (#601).
Release notes
Open source →Note: This release has breaking changes.
- BREAKING FEAT(ferry_generator): update to gql_code_builders 0.12.0. this extracted the common serializers to a separate package. clients need to add gql_code_builder_serializers to their dependencies if they use ferry_generator. (#601).
-
0.16.0-dev.205 Apr 2024 pre-releaseRelease notes
Open source →- FEAT(ferry): make commandSendPort public so it can be shared between isolates (#587).
2024-03-11
Changes
Packages with breaking changes:
- There are no breaking changes in this release.
Packages with other changes:
Release notes
Open source →- FEAT(ferry): make commandSendPort public so it can be shared between isolates (#587).
-
0.16.0-dev.112 Feb 2024 pre-release -
0.16.0-dev.0+212 Feb 2024 pre-release -
0.15.0+111 Nov 2023Release notes
Open source →- Graduate package to a stable release. See pre-releases prior to this version for changelog entries.
-
0.15.0-dev.803 Feb 2024 pre-release -
0.15.0-dev.714 Jan 2024 pre-releaseRelease notes
Open source →- DOCS: add topics (#548).
2023-11-14
Changes
Packages with breaking changes:
- There are no breaking changes in this release.
Packages with other changes:
Packages with dependency updates only:
Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.
ferry_flutter-v0.9.0-dev.6
-
0.15.0-dev.313 Aug 2023 pre-releaseRelease notes
Open source →- FIX(ferry): Fix problem with operationRequest generated on initial request being included in response each time. (#545).
- DOCS: add topics (#548).
- BREAKING FEAT(ferry_exec): remove usage of dynamic in cache and AddTypeNameTypedLink by adding new methods to operationrequest (#547).
Release notes
Open source →Note: This release has breaking changes.
- FIX(ferry): Fix problem with operationRequest generated on initial request being included in response each time. (#545).
- DOCS: add topics (#548).
- BREAKING FEAT(ferry_exec): remove usage of dynamic in cache and AddTypeNameTypedLink by adding new methods to operationrequest (#547).
-
0.15.0-dev.002 May 2023 pre-release withdrawnRelease notes
Open source →- BREAKING REFACTOR(normalize): Add const constructors to
FieldPolicyandTypePolicy(#526).
Release notes
Open source →Note: This release has breaking changes.
- BREAKING REFACTOR(normalize): Add const constructors to
FieldPolicyandTypePolicy( #526).
- BREAKING REFACTOR(normalize): Add const constructors to
-
0.15.0-dev.0+111 Nov 2023 pre-release -
0.14.2+102 May 2023Release notes
Open source →- Graduate package to a stable release. See pre-releases prior to this version for changelog entries.
-
0.14.2-dev.0+102 May 2023 pre-release -
0.14.018 Feb 2023Release notes
Open source →- Graduate package to a stable release. See pre-releases prior to this version for changelog entries.
-
0.14.0+120 Feb 2023 -
0.14.0-dev.902 May 2023 pre-releaseRelease notes
Open source →- REFACTOR(ferry): FetchPolicyTypedLink.request() to avoid pending timers in tests (#427).
- REFACTOR(ferry): use scheduleMicrostask instead of Future.delayed in order to no have pending timers in widget tests.
- FIX(normalize): When there are dangling references in child objects of a list, by default do not treat the whole entity as partial data, but remove it from the list. This can be configured using the allowDanglingReference parameter.
- FIX(ferry): Re-use the same stream for multiple requests when possible (#487).
- FIX(ferry): add stacktrace to error handler in GqlTypedLink (#467).
- FIX(ferry): send error to main isolate when data message could not be serialized (#455).
- FIX(ferry_cache): ensure emitting only one update per updated data ID in cache in watchQuery/watchFragment (#416).
- FIX(ferry): remove broken isolateSpawn functionality, FlutterIsolate does not support passing functions (#413).
- FIX: pin normalize 0.6.0.
- FIX(ferry): call cache handlers for every response from DataSource.Link.
- FIX(ferry): add dispose method to TypedLinks (#272).
- FEAT: support stable 1.0.0 versions of depenencies gql, gql_exec, gql_link (#521).
- FEAT(ferry_generator): when/maybeWhen extensions (#470).
- FEAT(ferry): add watchQuery, watchFragment, clearOptimisticPatches to IsolateClient (#460).
- FEAT(ferry): improve isolate error handling (#448).
- FEAT(ferry): verify that updateResult function can be sent to the other isolate in debug mode using asserts and provide a better error message if updatgeResult cannot be serialized (#425).
- FEAT(ferry): refactor isolateCommands, add addRequestToRequestController method (#422).
- FEAT(ferry): add removeOptimisticResponse to isolate client (#412).
- FEAT(ferry): add IsolateClient (#405).
- FEAT: generate possibleTypesMap in ferry_generator (#371).
- FEAT: add Reviews subscription to test graphql.
- DOCS(ferry): add basic documentation for field policy (#494).
- DOCS(ferry): fix typo in CHANGELOG (#384).
- DOCS: remove stale code (#271).
- BREAKING FIX(ferry): remove optimistic patch when listener unsubscribes before link responds with data instead of leaking optimistic patch forever (#466).
- BREAKING FIX(ferry_generator): properly generate nullable types for nullable elements in Lists (#445).
- BREAKING CHORE: update gql_code_builder, gql_exec and vestigial analyzer pubspec entry.
Release notes
Open source →Note: This release has breaking changes.
- REFACTOR(ferry): FetchPolicyTypedLink.request() to avoid pending timers in tests (#427).
- REFACTOR(ferry): use scheduleMicrostask instead of Future.delayed in order to no have pending timers in widget tests.
- FIX(normalize): When there are dangling references in child objects of a list, by default do not treat the whole entity as partial data, but remove it from the list. This can be configured using the allowDanglingReference parameter.
- FIX(ferry): Re-use the same stream for multiple requests when possible (#487).
- FIX(ferry): add stacktrace to error handler in GqlTypedLink (#467).
- FIX(ferry): send error to main isolate when data message could not be serialized (#455).
- FIX(ferry_cache): ensure emitting only one update per updated data ID in cache in watchQuery/watchFragment (#416).
- FIX(ferry): remove broken isolateSpawn functionality, FlutterIsolate does not support passing functions (#413).
- FIX: pin normalize 0.6.0.
- FIX(ferry): call cache handlers for every response from DataSource.Link.
- FIX(ferry): add dispose method to TypedLinks (#272).
- FEAT: support stable 1.0.0 versions of depenencies gql, gql_exec, gql_link (#521).
- FEAT(ferry_generator): when/maybeWhen extensions (#470).
- FEAT(ferry): add watchQuery, watchFragment, clearOptimisticPatches to IsolateClient (#460).
- FEAT(ferry): improve isolate error handling (#448).
- FEAT(ferry): verify that updateResult function can be sent to the other isolate in debug mode using asserts and provide a better error message if updatgeResult cannot be serialized (#425).
- FEAT(ferry): refactor isolateCommands, add addRequestToRequestController method (#422).
- FEAT(ferry): add removeOptimisticResponse to isolate client (#412).
- FEAT(ferry): add IsolateClient (#405).
- FEAT: generate possibleTypesMap in ferry_generator (#371).
- FEAT: add Reviews subscription to test graphql.
- DOCS(ferry): add basic documentation for field policy (#494).
- DOCS(ferry): fix typo in CHANGELOG (#384).
- DOCS: remove stale code (#271).
- BREAKING FIX(ferry): remove optimistic patch when listener unsubscribes before link responds with data instead of leaking optimistic patch forever (#466).
- BREAKING FIX(ferry_generator): properly generate nullable types for nullable elements in Lists (#445).
- BREAKING CHORE: update gql_code_builder, gql_exec and vestigial analyzer pubspec entry.
-
0.14.0-dev.830 Apr 2023 pre-releaseRelease notes
Open source →- REFACTOR(ferry): FetchPolicyTypedLink.request() to avoid pending timers in tests (#427).
- REFACTOR(ferry): use scheduleMicrostask instead of Future.delayed in order to no have pending timers in widget tests.
- FIX(normalize): When there are dangling references in child objects of a list, by default do not treat the whole entity as partial data, but remove it from the list. This can be configured using the allowDanglingReference parameter.
- FIX(ferry): Re-use the same stream for multiple requests when possible (#487).
- FIX(ferry): add stacktrace to error handler in GqlTypedLink (#467).
- FIX(ferry): send error to main isolate when data message could not be serialized (#455).
- FIX(ferry_cache): ensure emitting only one update per updated data ID in cache in watchQuery/watchFragment (#416).
- FIX(ferry): remove broken isolateSpawn functionality, FlutterIsolate does not support passing functions (#413).
- FIX: pin normalize 0.6.0.
- FIX(ferry): call cache handlers for every response from DataSource.Link.
- FIX(ferry): add dispose method to TypedLinks (#272).
- FEAT(ferry_generator): when/maybeWhen extensions (#470).
- FEAT(ferry): add watchQuery, watchFragment, clearOptimisticPatches to IsolateClient (#460).
- FEAT(ferry): improve isolate error handling (#448).
- FEAT(ferry): verify that updateResult function can be sent to the other isolate in debug mode using asserts and provide a better error message if updatgeResult cannot be serialized (#425).
- FEAT(ferry): refactor isolateCommands, add addRequestToRequestController method (#422).
- FEAT(ferry): add removeOptimisticResponse to isolate client (#412).
- FEAT(ferry): add IsolateClient (#405).
- FEAT: generate possibleTypesMap in ferry_generator (#371).
- FEAT: add Reviews subscription to test graphql.
- DOCS(website): improve custom scalars documention (#517).
- DOCS(ferry): add basic documentation for field policy (#494).
- DOCS(ferry): fix typo in CHANGELOG (#384).
- DOCS: remove stale code (#271).
- BREAKING FIX(ferry): remove optimistic patch when listener unsubscribes before link responds with data instead of leaking optimistic patch forever (#466).
- BREAKING FIX(ferry_generator): properly generate nullable types for nullable elements in Lists (#445).
- BREAKING CHORE: update gql_code_builder, gql_exec and vestigial analyzer pubspec entry.
-
0.14.0-dev.512 Feb 2023 pre-release -
0.14.0-dev.421 Jan 2023 pre-release -
0.14.0-dev.208 Jan 2023 pre-releaseRelease notes
Open source →- FIX(generator): support analyzer v7 APIs (#650).
2025-08-24
Changes
Packages with breaking changes:
Packages with other changes:
- There are no other changes in this release.
Release notes
Open source →- FIX: add stacktrace to error handler in GqlTypedLink (#467).
- FEAT: when/maybeWhen extensions (#470).
-
0.14.0-dev.128 Dec 2022 pre-releaseRelease notes
Open source →- FIX(ferry_generator): pre-create allocators to ensure consistent imports (#644).
- FEAT(ferry_generator): add option to disable formatting (#640).
- BREAKING FEAT(ferry_generator): upgrade to build 3.0.0 and gql_code_builder 0.15.0 (#646).
2025-05-03
Changes
Packages with breaking changes:
ferry-v0.16.2-dev.4ferry_exec-v0.8.0-dev.0ferry_generator-v0.14.0-dev.0ferry_test_graphql2-v0.4.1-dev.2
Packages with other changes:
Packages with dependency updates only:
Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.
ferry_flutter-v0.9.1-dev.4ferry_cache-v0.10.1-dev.0+1
Release notes
Open source →- FIX: When there are dangling references in child objects of a list, by default do not treat the whole entity as partial data, but remove it from the list. This can be configured using the allowDanglingReference parameter.
-
0.14.0-dev.0+223 Feb 2023 pre-release -
0.13.1-dev.128 Dec 2022 pre-releaseRelease notes
Open source →- FEAT: add watchQuery, watchFragment, clearOptimisticPatches to IsolateClient (#460).
-
0.13.011 Dec 2022Release notes
Open source →- BREAKING FEAT(ferry_generator): upgrade gql_code_builder to 0.14.0.
2025-03-15
Changes
Packages with breaking changes:
- There are no breaking changes in this release.
Packages with other changes:
Release notes
Open source →- Graduate package to a stable release. See pre-releases prior to this version for changelog entries.
-
0.13.0-dev.125 Nov 2022 pre-releaseRelease notes
Open source →- FEAT: add watchQuery, watchFragment, clearOptimisticPatches to IsolateClient (#460).
-
0.13.0-dev.001 Nov 2022 pre-releaseRelease notes
Open source →Note: This release has breaking changes.
- BREAKING FIX: properly generate nullable types for nullable elements in Lists (#445).
-
0.13.0-dev.0+128 Dec 2022 pre-releaseRelease notes
Open source →- FIX: send error to main isolate when data message could not be serialized (#455).
-
0.11.3-dev.0+130 Oct 2022 pre-release -
0.11.225 Sep 2022Release notes
Open source →- Graduate package to a stable release. See pre-releases prior to this version for changelog entries.
- Add IsolateClient for running queries in a separete Isolate. For details click here
-
0.11.2+125 Sep 2022Nothing published for this version
-
0.11.2-dev.525 Sep 2022 pre-releaseNothing published for this version
-
0.11.2-dev.425 Sep 2022 pre-releaseRelease notes
Open source →- FEAT: verify that updateResult function can be sent to the other isolate in debug mode using asserts and provide a better error message if updatgeResult cannot be serialized (#425).
-
0.11.2-dev.325 Sep 2022 pre-releaseRelease notes
Open source →- REFACTOR: use scheduleMicrostask instead of Future.delayed in order to no have pending timers in widget tests.
-
0.11.2-dev.222 Sep 2022 pre-releaseRelease notes
Open source →- FEAT: refactor isolateCommands, add addRequestToRequestController method (#422).
-
0.11.2-dev.121 Sep 2022 pre-releaseRelease notes
Open source →- FIX: ensure emitting only one update per updated data ID in cache in watchQuery/watchFragment (#416).
-
0.11.2-dev.018 Sep 2022 pre-releaseRelease notes
Open source →- REFACTOR: use a generic type parameter for the init params instead of a Map<String,dynamic>.
- REFACTOR: refactore handleCommand.
- REFACTOR: refactore handleCommand.
- REFACTOR: cleanup request response communication.
- FIX: remove broken isolateSpawn functionality, FlutterIsolate does not support passing functions (#413).
- FEAT: add removeOptimisticResponse to isolate client (#412).
- FEAT: add IsolateClient (#405).
- FEAT: refactor single response commands.
- FEAT: more IsolateClient features.
- FEAT: refactor IsolateClient, add more commands.
- FEAT: add more methods to IsolateClient.
- FEAT: add IsolateClient.
- DOCS: add example for token refresh over isolate.
-
0.11.2-dev.0+209 Oct 2022 pre-releaseRelease notes
Open source →- REFACTOR: FetchPolicyTypedLink.request() to avoid pending timers in tests (#427).
-
0.11.018 Aug 2022Release notes
Open source →- n
2024-05-20
Changes
Packages with breaking changes:
ferry-v0.16.0-dev.3ferry_cache-v0.9.0-dev.2ferry_exec-v0.6.1-dev.1ferry_flutter-v0.9.0-dev.4ferry_generator-v0.10.0-dev.3ferry_hive_store-v0.6.0-dev.0ferry_store-v0.6.0-dev.0ferry_test_graphql2-v0.3.0-dev.3
Packages with other changes:
- There are no other changes in this release.
Release notes
Open source →- BREAKING: require
possibleTypesMap(generated by ferry_generator in your schema.gql.dart file) in the constructor of theCachewhen fragments, interfaces or unions are involved
-
0.11.0+121 Aug 2022 -
0.11.0-dev.015 Aug 2022 pre-releaseNothing published for this version
-
0.11.0-dev.0+118 Aug 2022 pre-releaseNothing published for this version
-
0.11.0-dev.0+221 Aug 2022 pre-releaseNothing published for this version
-
0.10.515 Aug 2022 withdrawnRelease notes
Open source →Note: This release has breaking changes.
- FIX: pin normalize 0.6.0.
- FIX: call cache handlers for every response from DataSource.Link.
- FIX: add dispose method to TypedLinks (#272).
- FEAT: generate possibleTypesMap in ferry_generator (#371).
- FEAT: add Reviews subscription to test graphql.
- DOCS: remove stale code (#271).
- BREAKING CHORE: update gql_code_builder, gql_exec and vestigial analyzer pubspec entry.
-
0.10.5-dev.306 Mar 2022 pre-releaseRelease notes
Open source →Note: This release has breaking changes.
- BREAKING CHORE: update gql_code_builder, gql_exec and vestigial analyzer pubspec entry.
-
0.10.5-dev.216 Sep 2021 pre-releaseRelease notes
Open source →- TEST: add back test.
- FIX: call cache handlers for every response from DataSource.Link.
- CHORE: publish packages.
- CHORE: publish packages.
-
0.10.5-dev.107 Sep 2021 pre-releaseRelease notes
Open source →- FIX: add dispose method to TypedLinks (#272).
- FEAT: add Reviews subscription to test graphql.
- DOCS: remove stale code (#271).
- CHORE: publish packages.
- CHORE: publish packages.
- CHORE: restructure repo (#269).
-
0.10.5-dev.001 Sep 2021 pre-releaseNothing published for this version
-
0.10.5-dev.0+118 Aug 2022 pre-releaseNothing published for this version