Other Dart libraries like TanStack Query
If you are choosing a TanStack-Query-like package for Flutter, query_kit is one of several. This page describes the others as their own listings, READMEs and changelogs describe them, and says where each may fit your project better than query_kit does. It does not rank them.
All facts here were read on 18 October 2026, from the versions named in each section. Packages move; if this page is old when you read it, check the links. It is written by the people who write query_kit, so check their documentation before you decide, and tell us if a description of theirs is wrong. The rules this page follows are written down in the repository's decision record.
At a glance
Facts only, from pub.dev (its API and package pages) and each package's
pubspec.yaml. "Dependencies" lists what the pubspec names besides the Dart
and Flutter SDKs.
| Package | Release read | First published | Licence | Dependencies |
|---|---|---|---|---|
query_kit | 1.0.3, 16 Oct 2026 | 23 Sep 2026 | MIT | clock, meta |
query_kit_flutter | 1.1.0, 16 Oct 2026 | 23 Sep 2026 | MIT | query_kit, meta |
query_kit_hooks | 0.1.0, 16 Oct 2026 | 16 Oct 2026 | MIT | query_kit_flutter, flutter_hooks |
fquery | 3.1.0, 25 Jun 2026 | 2 Jul 2022 | MIT | fquery_core, flutter_hooks, freezed, freezed_annotation, collection |
cached_query | 3.7.0, 17 May 2026 | 26 Jun 2022 | MIT | rxdart, meta |
cached_query_flutter | 3.4.0, 17 May 2026 | 26 Jun 2022 | MIT | cached_query, connectivity_plus |
cached_storage | 3.3.0, 17 May 2026 | 26 Jun 2022 | MIT | cached_query, sqflite, path |
flutter_query | 0.11.1, 14 Jul 2026 | name on pub.dev since 30 Sep 2020; the current changelog starts at 0.4.0, 8 Jan 2026 | MIT | flutter_hooks, clock, collection, meta |
query_stack | 1.0.5, 30 May 2023 | 31 Mar 2023 | BSD-3-Clause | rxdart, collection |
query_kit
query_kit is a port of TanStack Query's query-core to
Dart, with a Flutter binding on top and an optional hooks add-on. The core
(query_kit) is pure Dart. The binding (query_kit_flutter) offers four call
styles that behave the same: builder widgets, listenable controllers, a
State mixin and context.query(...). The add-on (query_kit_hooks) gives
React Query's hook names to apps written with flutter_hooks; see
hooks.
What it is aimed at: the behaviour of TanStack Query, checked by porting TanStack Query's own test suites. 414 of the 536 core cases and 269 of the 305 hook cases are ported, and every case left out is listed with its reason (how fidelity is proven). Where it differs on purpose, that is listed too.
What it gives you less of, and what to weigh:
- Age. The first release was on 23 September 2026.
fqueryandcached_queryhave been published since 2022. - No persistence and no devtools. There is no built-in persister; offline first and persistence wires one by hand. Debugging uses the cache's events and an on-screen strip, see debugging.
- It is AI-coded. All code, tests and documentation were written by AI coding agents. Credits says what that means.
- It follows TanStack Query's shape. If you do not know that library,
none of the names (
staleTime,gcTime,invalidateQueries) will be familiar, and a package that was designed for Flutter first may read more naturally.
fquery
Release read: fquery 3.1.0 and fquery_core 3.1.0, 25 June 2026.
Documentation: the README on
GitHub and the
API docs on pub.dev.
Its pub.dev listing calls it a "simple yet powerful async state management solution with in-built caching", and its README says the goal is to make async state management "as easy as instantiating a sync variable". The README lists automatic caching and garbage collection, re-fetching of stale data, invalidation, manual updates, dependent, parallel and infinite queries, and mutations.
How it is shaped, from the README:
- Widgets and hooks over one cache:
QueryBuilder,InfiniteQueryBuilder,QueriesBuilder,MutationBuilderandIsFetchingBuilder, and withflutter_hooksuseQuery,useInfiniteQuery,useQueries,useMutationanduseIsFetching. - A
CacheProviderholds aQueryCache. Its changelog says that since 3.0.0 theQueryClientmethods live onQueryCache. - Its own option names:
cacheDuration,staleDuration,refetchOnMount,refetchInterval,retryCountandretryDelay. - The error type is a type argument of the builder, as in
QueryBuilder<List<Todo>, Exception>. - Its pubspec lists
flutter_hooks,freezedandfreezed_annotationas dependencies, so they come with the package whichever call style you use. - The README links a Discord community.
Where it may fit better: you want builders and hooks from one package with an
option set that has its own names rather than TanStack Query's, or you
already use flutter_hooks and freezed throughout the app.
cached_query
Release read: cached_query 3.7.0, cached_query_flutter 3.4.0 and
cached_storage 3.3.0, all 17 May 2026. Documentation:
cachedquery.dev and the repository's
README.
Its README describes "a small collection of dart and flutter libraries inspired by tools such as SWR, RTKQuery, React Query, Urql and apollo", so it is a library in the same family and not a port. It is split in three:
cached_queryhas no Flutter dependency and can be used in any Dart project. AQuery(key:, queryFn:)is an object you create anywhere; youawait query.resultor listen toquery.stream, built onrxdart. Configuration is global, throughCachedQuery.instance.config(...). The README documentsInfiniteQuery, aMutationwithinvalidateQueries, optimistic updates, and a devtools extension. Its changelog lists retrying for queries in 3.7.0.cached_query_flutteraddsQueryBuilderandMutationBuilder, refetching when the connection returns (throughconnectivity_plus) and when the app resumes. Its README has a section on using it withflutter_bloc.cached_storageis a storage add-on built onsqflite. Thecached_queryREADME lists the persistent cache as "flutter ios/android only, or easily create your own", through aStorageInterfaceyou can implement.
Where it may fit better: you need a persisted cache or the devtools
extension today, your app is organised around streams or flutter_bloc, or
you want the same cache library in a Dart server or command-line tool and in
the Flutter app. query_kit's core can also run without Flutter, but it has
neither persistence nor devtools.
flutter_query
Release read: flutter_query 0.11.1, 14 July 2026. Documentation:
flutterquery.com, its coming from TanStack
Query page, and the
repository.
Its pub.dev description is "Fetch, cache, and sync server data with automatic
state management and background updates, inspired by TanStack Query." This is
a different package from query_kit with a similar name; the
flutter_query name on pub.dev goes back to 2020, and the changelog covers
the line that starts at 0.4.0.
How it is shaped, from the README and changelog:
- Hooks on
flutter_hooks:useQuery,useMutation,useInfiniteQuery,useQueryClient,useIsFetching,useIsMutatinganduseMutationState. Its README lists no builder widgets. - A
QueryClientand aQueryClientProvider. Its changelog describes sealed snapshot results, graduated from an experimental library in 0.11.0, andseedandplaceholderoptions that take sealed values, with a lazy callback form of each. - Names that differ from TanStack Query on purpose, which its comparison
page explains:
Duration-basedstaleDurationandgcDuration,seedforinitialData,placeholderforplaceholderData, and a singleretrycallback in place ofretryandretryDelay. - Offline behaviour, as its changelog describes it, needs a
connectivityChangesstream passed to theQueryClient. - It is on 0.x, and its README says that before 1.0.0 a minor version may include breaking changes; its changelog marks several. Its pubspec asks for Flutter 3.32 or later.
Where it may fit better: you write your screens with hooks and want a
package built around that from the start, with a page listing where its
names and options differ from TanStack Query. query_kit_hooks also offers hooks, with
React Query's own names and option types and with React Query's hook tests
ported; the two are alternatives, not companions.
query_stack
Release read: query_stack 1.0.5, 30 May 2023. Documentation: its
README on GitHub.
Its pub.dev listing is marked discontinued, with streamline named as the
replacement. The listing for streamline describes it as a "CQRS/Mediator
Pattern library". The query_stack README says it is "inspired by" TanStack
Query and that the package has three parts: dependency injection through
environments, stream builders and future builders.
Others on pub.dev
These two turned up while checking and were not examined beyond their listings. Both are young: their first versions are from 2026.
tanquery0.8.0, 23 May 2026: "TanStack Query for Dart", described as pure Dart with no Flutter dependency.swrly0.4.0, 22 September 2026: "A TanStack Query for Flutter", with deduplication, caching by query key and stale-while-revalidate.
Choosing
None of this is a verdict. Questions that separate these packages in practice, each answered by the packages' own documentation:
- Do you need a persisted cache or devtools now? Of the packages examined here,
cached_querydocuments both. - Do you write with
flutter_hooks?fquery,flutter_queryandquery_kit_hooksall have hooks; they differ in names, in option types and in what they depend on. - Do you want TanStack Query's names and behaviour, or a design of its own? query_kit aims at the first. The others chose their own vocabulary, to different degrees.
- How long a track record do you want?
fqueryandcached_queryhave been on pub.dev since 2022; query_kit since September 2026.
For a name-by-name map from TanStack Query to query_kit, see coming from React Query.
See also
- The quick start, if you are choosing by trying one.
- Does this replace state management? and the guides index.