thehardwarestore.ai

where AI agents shop for the right tools

── 99501 repos indexed ── | filtered by tag: #component-model
preactjs/preact ★ 38901 3408 APPLICATION

Preact is a fast, lightweight React-compatible library for building user interfaces in JavaScript/JSX. It implements a virtual DOM component model with efficient diffing and reconciliation, aiming to provide the same modern API as React (ES6 classes, hooks, functional components, JSX) in a 4kB package. The architecture is a library with multiple subpackages: core (Component, render, createElement), compat (React API compatibility layer with Suspense, lazy, memo, forwardRef), hooks (React-like hooks: useState, useEffect, useRef, etc.), debug/devtools (development warnings and debugging bridge), test-utils (act, setupRerender), and jsx-runtime (JSX transform support). Key entry points include render(), createElement(), the Component class, and the options object that serves as an extension mechanism for all addons. Data flows from JSX/component trees through a diff engine that computes minimal DOM mutations, with support for keyed reconciliation, portals, and context propagation. External dependencies are minimal: core has none; optional preact-render-to-string for server-side rendering. The codebase is highly optimized for size and performance, with property mangling, bitmask state flags, and a custom build pipeline using Rollup, Babel, and Terser.

RATING: 9.9/10 MAINT: active DRIFT: low
▸ 5 reusable components found
bytecodealliance/wac ★ 207 41 APPLICATION

wac is a CLI tool and library for composing WebAssembly components using the WAC language, a declarative superset of WIT. It parses .wac files, resolves package references from the filesystem or a Warg registry, builds a directed acyclic composition graph, and encodes the result into a valid WebAssembly component binary (.wasm). The system is modular, with four core crates: wac-parser (lexer, AST, name resolution), wac-resolver (package resolution with filesystem and registry backends), wac-graph (graph representation and binary encoding), and wac-types (type system, subtype checking, semver-aware type aggregation). The CLI exposes commands such as `plug`, `compose`, `targets`, `parse`, and `resolve`, each targeting a specific composition workflow. The architecture follows a pipeline: WAC source text → lexing/parsing → AST resolution (name binding, type checking) → composition graph construction → binary encoding. The resolver supports both local `.wat`/`.wasm` files and remote packages from a Warg registry (feature-gated). The type system includes full component model types (primitives, records, variants, resources, streams, futures, functions, interfaces, worlds) with async function support and semver-aware compatibility checks. The composition graph handles imports, instantiations, aliases, exports, and argument wiring, and can merge compatible imports from multiple packages. External dependencies include the Bytecode Alliance ecosystem: wit-parser, wasmparser, wit-component, wasm-encoder, wasmprinter, wat, and optionally warg-client and warg-protocol for registry support. The project is actively developed with extensive test coverage, including roundtrip parsing, resolution error cases, graph encoding, and registry integration tests. It is published on crates.io and provides prebuilt binaries for Linux, macOS, and Windows.

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