Performance
These benchmark the framework-agnostic core engine (atoms, selectors, families, transactions) head-to-head against Jotai v2.20.2 on the same CI runner, across two JavaScript engines: Bun (JavaScriptCore / Safari) and Node.js (V8 / Chrome). The figures below are the latest main run — refreshed automatically, nothing is excluded.
They measure the shared engine, not framework rendering. The React, Vue, Svelte, Solid, and Angular adapters build on each framework's own reactivity — Valdres rides on top of it rather than trying to outrun it, so adapter performance is bounded by the framework itself.
Why the core is fast
The engine is optimized for minimal allocations and cache-friendly data structures — WeakMap-based storage with no intermediate objects, and transactions that batch updates so subscribers fire once.
In React specifically, the adapter is built on useSyncExternalStore (where Jotai uses useEffect + useReducer), which avoids extra renders and effect-cleanup overhead. The other adapters integrate with each framework's native reactivity — Vue refs, Svelte runes, Solid signals, Angular signals — so there the relevant performance is the framework's own.
Running benchmarks locally
# Bun (JSC/Safari engine)
bun run --cwd packages/valdres test:bench
# Node.js (V8/Chrome engine)
bun run --cwd packages/valdres test:bench:node
Historical trends
Performance is tracked over time on every push to main. View the live, always-current numbers and history at bencher.dev/perf/valdres.