#revolt #rive #revolt-api

rive-cache-inmemory

Rive的内存缓存

1 个稳定版本

1.0.0 2023年9月9日

#233 in 缓存


rive 中使用

LGPL-2.1-or-later

140KB
3K SLoC

rive-cache-inmemory

rive-cache-inmemory 是 Rive 生态系统内存缓存的一个实现。它仅用于当前进程。

它处理传入的事件,并根据事件类型和数据添加/修改/删除资源。

还有一个简单的API,可以遍历资源实体并获取缓存统计信息(例如存储的用户数量)。

示例

使用网关传入的事件更新缓存

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(())
}

依赖项

~2.6–9MB
~77K SLoC