1 个不稳定版本

0.0.1 2022年2月28日

#10 in #tower-layer

MIT 许可证

13KB
255

tower::Service 的缓存层

CacheLayer 是一个 Tower 层,通过使用另一个服务来处理缓存,为 Service 提供缓存。这允许使用异步和外部的缓存。

用法

use std::convert::Infallible;
use tower::{ServiceBuilder, service_fn};
use tower_cache::{
    CacheLayer,
    lru::LruProvider,
};
async fn handler(req: String) -> Result<String, Infallible> {
    Ok(req.to_uppercase())
}

// Initialize the cache provider service
let lru_provider = LruProvider::<String, String>::new(20);

// Initialize the service
let my_service = service_fn(handler);

// Wrap the service with CacheLayer.
let my_service = ServiceBuilder::new()
    .layer(CacheLayer::<_, String>::new(lru_provider))
    .service(handler);

创建缓存提供者

缓存提供者是一个 tower::Service,它接收 ProviderRequest 作为请求并返回 ProviderResponse

依赖项

~2.1–3MB
~55K SLoC