Comparison

This comparison table strives to be as accurate and as unbiased as possible. If you use any of these libraries and feel the information could be improved, feel free to suggest changes (with notes or evidence of claims) by opening an issue.

xrtk-queryreact-queryapollourql
supported protocolsany, REST includedany, none includedGraphQLGraphQL
api definitiondeclarativeon useGraphQL schemaGraphQL schema
cache byendpoint + serialized argumentsuser-defined query-keytype/idtype/id?
invalidation strategy + refetchingdeclarative, by type and/or type/idmanual by cache keyautomatic cache updates on per-entity level, manual query invalidation by cache keydeclarative, by type OR automatic cache updates on per-entity level, manual query invalidation by cache key
pollingTODOyesyesyes
parallel queriesyesyesyesyes
dependent queriesyesyesyesyes
skip queriesyesyesyesyes
lagged queriesyesyesno?
auto garbage colleactionyesyesno?
normalized cachingnonoyesyes
infinite scrollingTODOyesrequires manual code?
prefetchingyesyesyesyes?
retryingTODOyesrequires manual code?
optimistic updatesnocan update cache by handoptimisticResponse?
manual cache manipulationplease don't?yesyesyes
platformshooks for react, everywhere redux workshooks for reactvariousvarious