Skip to content

Releases: oe/plain-store

plain-store 0.10.1

Choose a tag to compare

@oe oe released this 04 Oct 11:57
faa6282

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

Choose a tag to compare

@oe oe released this 03 Oct 16:09
b3fa95c

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

Choose a tag to compare

@oe oe released this 15 Mar 09:47

Rewritten with react useSyncExternalStore, performance improved by more than 4x

All APIs remain the same.