| Crates.io | rive-cache-inmemory |
| lib.rs | rive-cache-inmemory |
| version | 1.0.0 |
| created_at | 2023-09-09 10:06:11.970767+00 |
| updated_at | 2023-09-09 10:06:11.970767+00 |
| description | In-memory cache for Rive. |
| homepage | |
| repository | https://codeberg.org/rive/rive.git |
| max_upload_size | |
| id | 968057 |
| size | 45,980 |
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).
Update a cache with incoming events from the gateway:
use futures::StreamExt;
use std::{env, error::Error};
use rive_cache_inmemory::InMemoryCache;
use rive_gateway::Gateway;
use rive_models::authentication::Authentication;
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
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(())
}