I built Blaze Cache, a high-performance client-side caching library written in Rust and compiled to WebAssembly.
The goal was simple: make browser caching fast, predictable, and easy to integrate — without turning it into a heavy framework.
Why Wasm?
Most browser caches are pure JavaScript. That works, but I wanted:
- More predictable performance
- A cleaner core data structure
- A single engine that multiple adapters could share
So the hot path (storage, TTL, tags, eviction) runs in Rust → Wasm. After initialization, get and set are fully synchronous.
What it supports
- Synchronous reads and writes after init
- SIEVE eviction
- TTL + tag-based invalidation
- Optional IndexedDB persistence
- Typed event system
- Adapters for:
- Axios
- fetch
- TanStack Query
- SWR
Example
ts
import { createCache } from '@blaze-cache/core'
const cache = await createCache({ capacity: 1000 })
cache.set('user:42', { name: 'Ada' }, { ttlMs: 30_000, tags: ['user'] })
cache.get('user:42')
cache.invalidateTags('user')
Top comments (0)