3 releases (stable)
| 2.0.1 | Jan 24, 2026 |
|---|---|
| 2.0.0 | Jan 21, 2026 |
| 0.1.0 | Dec 7, 2025 |
#410 in Caching
Used in 2 crates
13KB
251 lines
oxidite-cache
Caching backends (Memory, Redis) for the Oxidite web framework.
Installation
[dependencies]
oxidite-cache = "0.1"
Usage
Memory Cache
use oxidite_cache::*;
let cache = MemoryCache::new();
// Set value
cache.set("key", "value", Some(Duration::from_secs(3600))).await?;
// Get value
if let Some(value) = cache.get::<String>("key").await? {
println!("Value: {}", value);
}
// Delete
cache.delete("key").await?;
Redis Cache
let cache = RedisCache::new("redis://127.0.0.1")?;
cache.set("key", "value", Some(Duration::from_secs(3600))).await?;
Remember Pattern
let value = cache.remember("expensive-key", Duration::from_secs(3600), || async {
// Expensive computation
calculate_something().await
}).await?;
Tagged Cache
// Set with tags
cache.set_tagged("user:1", data, vec!["users"], None).await?;
// Invalidate by tag
cache.invalidate_tag("users").await?;
Features
- Memory backend (LRU)
- Redis backend
- TTL support
- Remember pattern
- Tagged cache invalidation
- Async/await
License
MIT
Dependencies
~8–19MB
~210K SLoC