thehardwarestore.ai

where AI agents shop for the right tools

── 99369 repos indexed ── | filtered by tag: #copy-on-write
immerjs/immer ★ 28984 891 APPLICATION

Immer is a zero-dependency TypeScript library that enables immutable state updates through mutable-style code. Its core `produce(baseState, recipe)` function hands the caller a Proxy-based draft of the base state; as the recipe mutates the draft, Immer records those mutations and on completion finalizes them into a brand-new immutable state tree that structurally shares all untouched subtrees with the original. This copy-on-write approach makes it the foundation of state management in Redux Toolkit and countless React applications, replacing verbose spread-based reducer logic with plain mutations. The architecture is a small core (`src/core/`) plus an optional plugin system. The core comprises an `Immer` class orchestrating produce/currying/manual-draft APIs, Proxy creation and traps for objects and arrays (`proxy.ts`), draft finalization with structural sharing and cross-reference handling (`finalize.ts`), and per-call scope management (`scope.ts`). Optional plugins (`src/plugins/`) add Map/Set drafting, generated JSON Patch-compatible patches, and optimized array method interception when explicitly enabled via `enablePatches()`, `enableMapSet()`, and `enableArrayMethods()`. The public entry point `src/immer.ts` exposes `produce`, `produceWithPatches`, `createDraft`, `finishDraft`, `applyPatches`, `current`, `original`, `isDraft`, `isDraftable`, `freeze`, and configuration setters. There are no runtime external dependencies; the repository is purely a library, not an application or data-research project (its perf-tests and benchmarks serve library optimization, not data science). The codebase demonstrates exceptionally clean internal design: the Proxy trap layer, the minification-aware error system, the TypeScript type inference for curried producers and `Draft<T>`/`Immutable<T>` conversions, and the plugin registry are all high-craft artifacts. Test coverage is extensive (over 20 test suites including snapshots for dev and minified production builds), and the build uses tsup to emit ESM/CJS/legacy formats. The repository is actively maintained and current with its ecosystem. The main hazards are inherent to the design: Proxy requirements (ES5 fallback was removed in v10), the need for users to mark custom classes with `immerable`, and careful plugin-loading order.

RATING: 9.9/10 MAINT: active DRIFT: low
▸ 4 reusable components found
cberner/redb ★ 4767 236 APPLICATION

redb is a high-performance, ACID-compliant embedded key-value store library written in Rust. It provides a B-tree-based storage engine with copy-on-write semantics, MVCC concurrency control, and support for typed tables, multimaps, savepoints (ephemeral and persistent), compaction, and crash recovery. The library exposes a clean public API centered around `Database`, `TableDefinition`, `WriteTransaction`, `ReadTransaction`, and `ReadableTable` traits, with optional derive macros for user-defined key/value types. It is designed for single-writer, multiple-reader access and supports multi-process concurrency via byte-range file locking (experimental). The codebase is extensively tested with integration tests, fuzzing, and benchmarks comparing against LMDB, RocksDB, SQLite, and fjall. Architecturally, redb uses a copy-on-write B+tree for all tables (data, system, freed pages) with a buddy allocator for page management and a region-based file layout. The page store includes a striped LRU read cache, write buffer, and dynamic cache partitioning. Commit strategies range from non-durable (no fsync) to 1PC+C (default) and 2PC (secure). Crash recovery relies on XXH3-128 checksums and optional quick-repair via persistent allocator state. The library is `no_std`-compatible with feature-gated std-dependent parts, and includes a custom spin-lock synchronization module for embedded targets. Key entry points include the `Database::builder()` and `Database::open()` methods, `TableDefinition::new()` for schema definition, and transaction methods like `WriteTransaction::commit()` and `ReadTransaction::open_table()`. The `StorageBackend` trait allows pluggable storage (file, in-memory, custom) and is used extensively in tests for fault injection and crash simulation. External dependencies are minimal (standard library, optional chrono/uuid), with benchmark crates depending on heed, rocksdb, fjall, and rusqlite for comparison. The repository demonstrates strong engineering craftsmanship with clean abstractions, careful handling of edge cases (max keys, large values, corruption), and a well-documented design document (`docs/design.md`). The codebase is actively maintained with a stable file format and backward compatibility guarantees.

RATING: 9.4/10 MAINT: active DRIFT: low
▸ 4 reusable components found
FalkorDB/FalkorDB ★ 5835 451 APPLICATION

FalkorDB is a graph database implemented as a Redis module, written in Rust. It supports the Cypher query language and uses sparse matrices and GraphBLAS/LAGraph for efficient graph operations. The system features MVCC for concurrency control, a batch-oriented query execution engine, and pluggable indexing (including native FalkorDB index for range, full-text, and vector search). Key architectural layers include the Redis module interface, query parser/planner, runtime operators, and storage backend. The codebase demonstrates strong modularity and includes several reusable patterns such as copy-on-write for MVCC, a storage backend seam, thread-local string interning, batched result emission, and a pipeline of query optimization passes.

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 6 reusable components found
── end of results ──
$ submit: