rive-cache-inmemory

rive-cache-inmemory is an implementation of an in-memory cache for the Rive ecosystem. It's intended to be used only within the current process.

It processes incoming events, and adds/modifies/removes resources depending on the event type and data.

There's also a simple API for iterating over resource entities and getting cache statistics (such as the number of stored users).

Example

Update a cache with incoming events from the gateway:

```rust use futures::StreamExt; use std::{env, error::Error};

use rivecacheinmemory::InMemoryCache; use rivegateway::Gateway; use rivemodels::authentication::Authentication;

[tokio::main]

async fn main() -> Result<(), Box> { let auth = Authentication::SessionToken(env::var("TOKEN")?);

let mut gateway = Gateway::connect(auth).await?;

// Create a cache with messages and emojis caching disabled:
let cache = InMemoryCache::builder()
    .cache_messages(false)
    .cache_emojis(false)
    .build();

while let Some(event) = gateway.next().await {
    let event = event?;

    // Update the cache with the event:
    cache.update(&event);
}

Ok(())

} ```