Repository navigation
Releases: oe/plain-store
Release list
plain-store 0.10.1
Improve repeated selector work while keeping the public API and default deep equality unchanged.
- Share computations for the same pure selector function within the latest store snapshot; retain per-hook isolation for concurrent renders, props and hydration.
- Avoid allocating an async result handler on synchronous writes; preserve async partial merging and reentrant notifications.
- Enable unused-import tree shaking while preserving browser IIFE initialization and legacy import paths.
- Add reproducible Zustand/Jotai benchmarks and a cached-list recipe. Explain the existing Object.is option and its notification/render tradeoffs.
Public declarations match 0.10.0. React remains the only runtime peer dependency. Shared results must be immutable and selectors pure. Cheap/distinct selectors have a small cache cost; gzip increases by 98–116 bytes, within the enforced budgets. This release does not claim to be fastest for every workload.
Validation: 60 tests on React 18 and 19, production/type builds, packed imports/types/tree shaking/size limits, and benchmark correctness checks. Saved full comparison reports were recorded before the version bump; their optimized runtime artifact matches 0.10.1 exactly.
Install: npm install plain-store@0.10.1
plain-store 0.10.0
Fix stale selectors, updates missed before subscription, interrupted-render selector handling, and React DOM SSR/hydration. Improve object/binary comparisons and rewrite the README around practical usage and tradeoffs.
Compatibility: public declarations, deprecated APIs, React >=18, legacy dist paths, and root/deep imports are preserved. An explicit .mjs entry is added. Development tooling requires Node.js 24.15+.
Validation: React 18 and 19 CI each passed 47 tests, production builds, and tarball checks. README examples type-check and dependency audit reports zero known vulnerabilities. Stable selectors avoid duplicate evaluation; concurrency-safe checks have a small fixed cost in trivial-selector benchmarks.
Published to npm as plain-store@0.10.0. See CHANGELOG.md for details.
Improve 4x+ performance
Rewritten with react useSyncExternalStore, performance improved by more than 4x
All APIs remain the same.