artemis-normalized-cache

This is a normalized cache exchange for the artemis GraphQL Client. This is a drop-in replacement for the default [CacheExchange] that, instead of document caching, caches normalized data by keys and connections between data.

artemis is already quite a comprehensive GraphQL client. However in several cases it may be desirable to have data update across the entirety of an app when a response updates some known pieces of data.

Quick Start

After installing this crate, change the default artemis Client like from something like this:

rust let client = artemis::ClientBuilder::new("http://0.0.0.0") .with_default_exchanges() .build();

to this

```rust use artemis::defaultexchanges::{FetchExchange, DedupExchange}; use artemisnormalized_cache::NormalizedCacheExchange;

let client = artemis::ClientBuilder::new("http://0.0.0.0") .withexchange(FetchExchange) .withexchange(NormalizedCacheExchange::new()) .with_exchange(DedupExchange) .build(); ```

TODO: Don't steal urlq's docs you plagiarist