artemis-normalized-cache

Crates.ioartemis-normalized-cache
lib.rsartemis-normalized-cache
version0.1.1
sourcesrc
created_at2020-04-09 22:03:28.799821
updated_at2021-03-06 13:33:51.230697
descriptionA graph-based normalized cache exchange for the artemis crate.
homepage
repositoryhttps://github.com/wingertge/artemis.git
max_upload_size
id228159
size6,563,725
Genna Wingert (wingertge)

documentation

README

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:

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

to this

use artemis::default_exchanges::{FetchExchange, DedupExchange};
use artemis_normalized_cache::NormalizedCacheExchange;

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

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

Commit count: 89

cargo fmt