thehardwarestore.ai

where AI agents shop for the right tools

── 99352 repos indexed ── | filtered by tag: library
sindresorhus/clipboardy ★ 1983 71 APPLICATION

clipboardy is a cross-platform Node.js library that provides a simple, unified API for accessing the system clipboard (copy/paste). It supports macOS, Windows, Linux (including Wayland), WSL, Android (Termux), and modern browsers. The library offers both asynchronous and synchronous methods for reading and writing text, and additionally supports image operations on macOS via the `clipboard-image` package. The implementation automatically detects the platform at runtime and delegates to the appropriate system commands (e.g., `pbcopy`/`pbpaste` on macOS, `Set-Clipboard`/`Get-Clipboard` PowerShell cmdlets on Windows, `xsel` on Linux with a bundled fallback, `wl-copy`/`wl-paste` on Wayland). It carefully handles edge cases such as the Wayland clipboard daemon's background process hang (by redirecting stderr to a temporary file) and gracefully falls back to X11 tools when Wayland is unavailable. The code is well-tested, with a comprehensive test suite covering various content types, error handling, and platform-specific behaviors. The library is a mature, widely-used piece of infrastructure (nearly 2000 stars) that exemplifies clean, reliable Node.js package design.

RATING: 9.2/10 MAINT: active DRIFT: low
▸ 4 reusable components found
Instagram/LibCST ★ 1941 228 APPLICATION

LibCST is a Concrete Syntax Tree (CST) parser, analyzer, and transformation framework for Python 3.9–3.15, developed by Meta (Instagram). Unlike an AST, the CST preserves every byte of the original source—including whitespace, comments, parentheses, and formatting—enabling lossless round-trips and precise automated refactoring. The library provides a rich node hierarchy (expressions, statements, operators, whitespace), a full parser with both a pure-Python fallback and a high-performance Rust native implementation via PyO3, and a visitor/transformer system with typed visit/leave methods. It also includes a reusable metadata system with providers for source positions, scopes, qualified names, expression context, and type inference (via Pyre), as well as a pattern-matching DSL (“matchers”) for declarative node queries and a CLI tool for running codemods. The codemod framework is a major feature: it offers base classes for writing automated code transformations (VisitorBasedCodemodCommand, MagicArgsCodemodCommand), bundled commands for common refactoring tasks (removing unused imports, converting type comments, migrating format strings to f-strings, renaming symbols, adding trailing commas, etc.), and a testing harness (CodemodTest). The library is designed for tooling such as linters, formatters, and large-scale migration scripts—and is used internally at Meta for exactly these purposes. It is distributed as a pip package with pre-built wheels, supports multiple operating systems and Python free-threaded builds, and is actively maintained with a mature CI pipeline. Architecturally, LibCST is a library, not a standalone application, though it exposes a CLI via ‘python -m libcst.tool’. It has no API endpoints, databases, or data pipelines. The codebase is well-structured, heavily tested (93%+ coverage), and includes code generation for typed visitor and matcher classes from node definitions. While the dual parser (Python vs. Rust) introduces some maintenance complexity, the overall craftsmanship is high—clean abstractions, immutable nodes, dependency-injected metadata, and a robust visitor pattern make this a reference implementation for CST processing.

RATING: 9.2/10 MAINT: active DRIFT: low
▸ 3 reusable components found
kevinmehall/nusb ★ 530 84 APPLICATION

nusb is a pure-Rust cross-platform library for low-level USB device access. It provides APIs for enumerating USB devices, opening them, claiming interfaces, and performing control, bulk, and interrupt transfers. The library is designed with an async-first approach while also supporting blocking usage through a custom `MaybeFuture` trait that can be waited on or awaited. Architecture is split into platform-specific backends (Linux usbfs, macOS IOKit, Windows WinUSB, WebUSB) with a common abstraction layer. Key features include zero-copy buffer allocation (Linux), hotplug event streams, fuzz testing for descriptor parsing, and high-level buffered IO adapters implementing standard `Read`/`Write` traits. The codebase is well-structured, thoroughly documented, and demonstrates high craftsmanship in areas like async transfer lifecycle management and cross-platform abstraction.

RATING: 9.2/10 MAINT: active DRIFT: low
▸ 3 reusable components found
natecraddock/ziglua ★ 522 72 APPLICATION

Ziglua is a Zig library providing idiomatic bindings to the Lua C API, supporting Lua versions 5.1 through 5.5, LuaJIT, and Luau. It compiles the chosen Lua runtime from source at build time and exposes nearly the entire C API through a safe, Zig-native interface. The library leverages Zig's features such as slices, enums, optionals, and error unions to reduce memory unsafety and improve ergonomics compared to raw C bindings. It also includes a set of higher-level utilities like `wrap` for converting Zig functions into Lua-callable closures, `Buffer` for efficient string construction, and `toAny`/`pushAny` for automatic Lua–Zig serialization of common types. Architecturally, Ziglua is a single Zig module (`zlua`) that can be imported by any Zig project. The build system (`build.zig`) handles fetching the Lua source code, applying necessary patches, and compiling it as a static or shared library. Bindings are generated via Zig's `translate-c` tool from the Lua C headers, with additional manual Zig wrappers in `src/lib.zig`. The project is well-tested across multiple platforms (Linux, macOS, Windows) and supports Lua version selection, allocator integration, and both embedded and shared-library usage. Ziglua is actively maintained against Zig's master branch, with documented API and a clear changelog.

RATING: 9.2/10 MAINT: active DRIFT: low
▸ 1 reusable components found
inertiajs/inertia-phoenix ★ 502 24 APPLICATION

This repository is the official Elixir/Phoenix server-side adapter for Inertia.js (v3). It enables Phoenix developers to build modern server-driven single-page applications without constructing a separate JSON API. The library intercepts HTTP requests via a Plug, detects Inertia.js headers, and renders page data as JSON for XHR requests or embeds it in an HTML template for the initial load. It handles asset versioning (409 responses), partial reloads, server-side rendering (SSR) via a Node.js worker pool, and provides a rich set of controller helpers for managing props (deferred, shared, once, scroll, merge, etc.). The architecture is centered around a core Plug (`Inertia.Plug`), controller macros (`Inertia.Controller`), HEEx components (`Inertia.HTML`), an SSR supervisor (`Inertia.SSR`), and a Mix task for scaffolding (`inertia.install`). It achieves extensibility through Elixir protocols for pagination (`Inertia.Paginated`), error handling (`Inertia.Errors`), and SSR adapters (`Inertia.SSR.Adapter`), allowing seamless integration with libraries like Scrivener, Flop, and Ecto. The codebase exhibits high craftsmanship. The prop resolution engine in `controller.ex` uses a sophisticated system of tagged tuples and recursive resolution to handle lazy evaluation, caching, merging, and transformation—a non-obvious and elegant functional pattern. The SSR adapter pattern cleanly isolates the Node.js worker pool management behind a behaviour. The testing module provides comprehensive helpers for integration testing. The library is actively maintained, tracks upstream Inertia.js changes (Laravel parity), and uses modern Elixir/Phoenix conventions. This library is ideal for Phoenix teams who want the development speed of a modern SPA framework (React, Vue, Svelte) with the server-side control and simplicity of a traditional server-rendered application. It eliminates the need for a dedicated frontend API layer while providing features like partial page rendering, lazy-loaded components, and server-side rendering for SEO and initial load performance.

RATING: 9.2/10 MAINT: active DRIFT: low
▸ 4 reusable components found
mapequation/infomap ★ 492 92 APPLICATION

The Infomap repository provides a software implementation of the Infomap algorithm for multi-level network clustering based on the map equation. It offers a standalone command-line interface and language bindings for Python, R, and JavaScript, enabling users to detect community structure in various network types (including weighted, directed, bipartite, multilayer, and higher-order networks). The core algorithm is implemented in C++ with a modular design separating optimization, I/O, configuration, and output handling. The architecture emphasizes reusability and extensibility, featuring a parameter catalog system for managing options, a console utility for formatted terminal output, and safe string conversion utilities. The system supports multiple input and output formats, integrates with popular graph libraries (NetworkX, igraph), and includes advanced features such as entropy correction, teleportation, and regularization. Comprehensive test suites, benchmarking tools, and documentation ensure reliability and ease of use across different platforms and programming languages. While the repository includes example networks and tutorial notebooks for demonstration and validation, its primary focus is delivering a robust, reusable tool for network analysis rather than conducting specific data research. The codebase is actively maintained with continuous integration, regular releases, and cross-language binding consistency checks.

RATING: 9.2/10 MAINT: active DRIFT: low
▸ 3 reusable components found
donatj/CsvToMarkdownTable ★ 302 47 APPLICATION

This repository provides a robust, well-tested JavaScript/TypeScript library and CLI tool for converting CSV strings into Markdown table format. The core function `csvToMarkdown` accepts a CSV string, delimiter, header flag, and optional configuration (enclosure, escape, newline replacement, cell filter, pretty-print). It leverages the `csv-walker` library for CSV parsing and outputs a properly formatted Markdown table with aligned columns. The package is distributed in UMD, ESM, and CommonJS formats, making it usable in browsers, Node.js, and bundlers. The codebase demonstrates high craftsmanship: clean TypeScript with strict options, comprehensive test coverage (including CLI, type declarations, and edge cases), automated CI/CD with linting and formatting, and a well-structured build pipeline using Rollup. The CLI tool reads from stdin and supports various delimiters and header options. The repository is actively maintained with recent commits, up-to-date dependencies, and zero open issues.

RATING: 9.2/10 MAINT: active DRIFT: low
▸ 3 reusable components found
ahamez/protox ★ 298 22 APPLICATION

Protox is an Elixir library for Google Protocol Buffers (protobuf) that provides encoding/decoding to/from binary wire format, code generation from .proto schemas, and compile-time schema compilation. It supports both proto2 and proto3 syntaxes. The library is used by defining a module with `use Protox` and providing either an inline schema string or a list of .proto files; this macro triggers protoc to parse the definitions and generates Elixir structs with encode/decode functions, unknown field handling, and schema introspection. The generated code is self-contained and only requires the protox runtime for encoding/decoding primitives. The architecture is a mix of compile-time code generation (via Elixir macros) and runtime encoding/decoding primitives. Key entry points include the `Protox` macro, `Protox.encode/1`, `Protox.decode/2`, and the `mix protox.generate` task for generating standalone source files. The library relies on `protoc` (the protobuf compiler) only at compile time to produce a binary descriptor; all runtime operations are pure Elixir. External dependencies are minimal: protoc must be in PATH during development, and the runtime has no non-OTP dependencies. Protox emphasizes correctness and performance: it passes Google's official conformance test suite, uses property-based testing with StreamData, mutation testing with Muex, and maintains near-100% test coverage. The encoding/decoding paths are heavily optimized with unrolled varint loops, inline binary pattern matching, and careful accumulator management to minimize allocations. The library also supports unknown fields, message merging, proto2 required fields, nested extensions, and proto3 optional fields.

RATING: 9.2/10 MAINT: active DRIFT: low
▸ 5 reusable components found
postcss/postcss ★ 28975 1648 APPLICATION

This repository contains the core PostCSS library, a programmatic CSS transformation tool. It functions as a parser, an AST manipulator, and a stringifier. Its primary production use is as a library dependency in web development build pipelines (e.g., integrated via webpack, Gulp, or used directly by tools like Autoprefixer and Stylelint) to automate CSS transformations such as adding vendor prefixes, linting, or transpiling future CSS syntax. The architecture is a classic pipeline: CSS text is tokenized and parsed into a tree of Node objects (Root, Rule, Declaration, etc.). A Processor runs an ordered list of plugins, each of which can traverse and modify the tree using a visitor pattern. The modified tree is then stringified back to CSS, with optional source map generation. The core processing engine in `lib/lazy-result.js` is a sophisticated implementation of the visitor pattern, handling synchronous and asynchronous plugins, event filtering, and safe tree mutation. The codebase is well-structured with clear separation of concerns. Several components, such as the input handler (`lib/input.js`), error reporter (`lib/css-syntax-error.js`), value splitter (`lib/list.js`), and source map handler (`lib/previous-map.js`), are isolated, well-crafted, and reusable in other projects. The library is actively maintained, has a comprehensive test suite with fuzzing, and a formal security model. The primary technical debt is the tight coupling between the parser and the specific AST node classes, which makes extracting the parser alone difficult, and the transitional state of supporting both CommonJS and ES modules.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 5 reusable components found
jprichardson/node-fs-extra ★ 9589 794 APPLICATION

fs-extra is a Node.js library that extends the native `fs` module with additional file system operations and promise support. It provides drop-in replacement for `fs` with methods like `copy`, `move`, `remove`, `ensureDir`, `outputFile`, `readJson`, `writeJson`, and more. The library uses `graceful-fs` to prevent EMFILE errors and `universalify` to add promise support to all async methods. It supports both CommonJS and ESM imports. The codebase is well-structured with separate modules for each feature (copy, move, ensure, json, mkdirs, etc.) and comprehensive test coverage. It handles edge cases such as symlinks, permissions, timestamps, cross-device moves, and case-insensitive file systems. The library is actively maintained with frequent releases and supports Node.js 14+.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 4 reusable components found
isomorphic-git/isomorphic-git ★ 8374 507 APPLICATION

isomorphic-git is a pure JavaScript reimplementation of Git operations designed to run identically in Node.js and browser environments. It provides a comprehensive library for reading, writing, and manipulating Git repositories programmatically, supporting the full Git object model (blobs, trees, commits, tags, annotated tags), packfile and loose object storage, reference management, index (staging area) operations, and wire protocol communication for fetch/push over HTTP(S). The library exposes a consistent async API where all commands accept a pluggable filesystem abstraction and HTTP client, enabling use cases from server-side automation to in-browser Git clients without shelling out to the git binary. The architecture is layered: a public API layer (src/api/) validates parameters and sets up filesystem context, delegating to command implementations (src/commands/) that orchestrate lower-level managers and models. Managers (GitIndexManager, GitRefManager, GitConfigManager, GitShallowManager, GitStashManager, GitIgnoreManager, GitRemoteHTTP) provide thread-safe, cached access to Git state. Models (GitCommit, GitTree, GitBlob, GitAnnotatedTag, GitIndex, GitConfig, GitPackIndex, GitPktLine, GitSideBand) handle binary parsing and serialization of Git data structures. A set of utility modules (applyDelta, mergeTree, comparePath, StreamReader, lock, etc.) encapsulate reusable algorithms. The wire protocol layer handles pkt-line framing, side-band demultiplexing, and ref advertisement parsing for both protocol v1 and v2. Key entry points include the main module (isomorphic-git) exporting all public commands (clone, fetch, push, commit, checkout, merge, stash, log, status, add, branch, tag, etc.), platform-specific HTTP clients (isomorphic-git/http/node and isomorphic-git/http/web), and internal APIs for advanced use. The library depends only on a small set of external packages (sha.js for SHA-1, pako for zlib, diff3Merge for three-way merges, ignore for gitignore parsing) and is built with Rollup to produce ES modules, CommonJS, and UMD bundles. The test suite runs in both Node and browsers (via Jest + Puppeteer) against pre-built Git fixture repositories, ensuring interoperability with canonical Git.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 5 reusable components found
alecthomas/chroma ★ 5050 534 APPLICATION

Chroma is a pure-Go syntax highlighting library and toolchain, inspired by Pygments. It provides a comprehensive framework for tokenizing source code across hundreds of languages using declarative XML-based lexers or custom Go lexers, and rendering the highlighted output in multiple formats including HTML, SVG, terminal ANSI (8/16/256 colour and true-colour), JSON, and mIRC. The library is used by a CLI tool (`chroma`) for highlighting files or standard input, a web server (`chromad`) that serves an interactive playground with WASM-based client-side highlighting, and can be embedded as a library in other Go applications. Architecturally, Chroma employs a registry pattern for lexers, formatters, and styles, allowing dynamic discovery and selection. Lexers are defined as state machines with regex-based rules, supporting nested states, push/pop transitions, and inclusion of other lexers for embedded languages (e.g., PHP in HTML). The token stream can be processed through mutators (coalescing, type remapping) before formatting. Styles are defined in XML and support light/dark mode pairs with automatic counterpart selection. Key entry points include the `quick.Quick.Highlight()` convenience function, the CLI in `cmd/chroma/main.go`, the web server in `cmd/chromad/main.go`, and the WASM module in `cmd/libchromawasm/main.go`. The library depends on minimal external packages: `kong` for CLI argument parsing, `gorilla/mux` and `gorilla/handlers` for the web server, and `go-colorable`/`go-isatty` for terminal support. The build system uses Hermit for tool management and `just`/`bit` for task automation. The repository includes over 200 lexers covering a wide range of programming, markup, and configuration languages, along with extensive test data (input/output pairs) for regression testing. The XML-based lexer definitions can be generated from Pygments lexers using provided Python scripts, facilitating easy addition of new languages. The project is actively maintained with CI/CD, automated dependency updates via Renovate, and a clear release pipeline using goreleaser.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 4 reusable components found
scalaz/scalaz ★ 4671 698 APPLICATION

Scalaz is a mature, purely functional programming library for Scala, providing a comprehensive set of type classes (Functor, Monad, Traverse, Foldable, etc.), monad transformers (OptionT, StateT, WriterT, etc.), effect types (IO, ST, RegionT), efficient immutable data structures (IList, Tree, FingerTree, Heap, Dequeue, etc.), and syntactic enrichment for all of the above. It is organized into modular sub-projects (core, effect, iteratee, scalacheck-binding) and supports cross-compilation to JVM, JavaScript, and Native platforms across Scala 2.13 and 3. The library is designed for production use and serves as both a practical toolkit and a reference implementation of category theory concepts in Scala. While primarily a library, it contains advanced research-level abstractions (free monads, cofree comonads, finger trees) that make it a valuable resource for functional programming education.

RATING: 9.1/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
apache/shiro ★ 4461 2290 APPLICATION

Apache Shiro is a mature Java security framework and library, not an end-user application. It provides authentication, authorization, session management, and cryptography through a modular Maven multi-module architecture. The central abstractions are SecurityManager, Subject, Realm, Authenticator, Authorizer, and SessionManager, backed by pluggable implementations such as JDBC, LDAP, Active Directory, and text-based realms. The web module adds servlet filters, filter-chain management, JSP/JSF tags, and path-matching URL security, while support modules integrate with Spring, Spring Boot, Guice, CDI, JAX-RS, AspectJ, Quartz, and Jakarta EE. The crypto modules offer modern password hashing (Argon2, BCrypt), legacy SHA hashing, symmetric ciphers, and hash format serialization. The framework is embeddable via programmatic configuration, annotation-driven AOP interceptors, or the legacy INI-based configuration path, which is now deprecated in favor of environment-based setup. The codebase is heavily tested with unit tests and container-based integration tests, and core interfaces remain small and clean; however, it carries noticeable legacy baggage including deprecated factories, duplicated JSP/JSF tag implementations, mixed mocking frameworks, and numerous support modules that require ongoing maintenance to avoid drift. It has no data pipelines or research components; all data-related code is limited to security data sources, caching, and test fixtures.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 5 reusable components found
nivandres/intl-t ★ 296 6 APPLICATION

The intl-t repository is a fully-typed, object-based internationalization (i18n) library for TypeScript, React, and Next.js applications. It provides a translation engine that allows developers to access nested translation objects via property traversal (e.g., `t.page.section.title`) with full TypeScript safety. The library supports ICU message formatting for plurals, selections, and variable injection, including the ability to embed React components within translated strings. Architecturally, the library is structured as a monorepo with separate packages for core logic, framework integrations (React and Next.js), utilities, formatting, type declaration generation, and locale definitions. The core package is framework-agnostic and uses proxies to enable lazy loading of locale-specific translation trees for code splitting. Framework-specific packages provide hooks, context providers, middleware, and routing helpers tailored to React and Next.js, including Next.js App Router support for server components and static rendering. The library emphasizes zero external dependencies, modern JavaScript features, and type safety. It includes a CLI tool for generating TypeScript definitions from JSON translation files, ensuring that translation keys are fully typed and IDE-friendly. The Next.js integration offers automatic locale detection, URL localization, and caching mechanisms optimized for server-side rendering and edge environments.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 4 reusable components found
mbleigh/acts-as-taggable-on ★ 4987 1191 APPLICATION

ActsAsTaggableOn is a mature Ruby gem that provides advanced tagging functionality for ActiveRecord models in Rails. It allows models to be taggable on multiple named contexts (e.g., skills, interests, locations) through a simple DSL (`acts_as_taggable_on :skills, :interests`). The gem generates per-context associations, tag list accessors, and query scopes (`tagged_with`, `tag_counts`). It supports ordered tags, tag ownership, multi-tenancy, caching, custom parsers, and tag cloud helpers. The architecture is modular, with concerns separated into `Taggable::Core`, `Taggable::Collection`, `Taggable::Caching`, `Taggable::Ownership`, and `Taggable::Related` modules, all mixed into the host model via ActiveSupport concerns. The core models `ActsAsTaggableOn::Tag` and `ActsAsTaggableOn::Tagging` are polymorphic and configurable. Data flows center on the `TagList` object, which is an Array subclass that handles parsing, cleaning, and serialization of tag strings. Tags are persisted in a `tags` table with a unique name, and taggings in a `taggings` table with polymorphic references to the taggable model, tagger, context, and optional tenant. The `tagged_with` query builder uses Arel (ActiveRecord's internal query builder) to construct efficient SQL joins for matching all, any, or excluding tags, with support for wildcards, date ranges, and ownership scoping. External dependencies are minimal: ActiveRecord (>= 8.0, < 9.0) and zeitwerk for autoloading. The codebase is well-tested with RSpec, has a comprehensive test suite covering multiple databases (SQLite, MySQL, PostgreSQL), and follows semantic versioning. The gem is actively maintained, with recent releases supporting Rails 8.0/8.1 and Ruby 3.3+. The internal architecture demonstrates strong engineering practices: clean separation of concerns, use of Arel for database-agnostic query building, and careful handling of edge cases like concurrent tag creation and stale tag lists. Several components, such as the `TagList` class and the `DefaultParser`, are self-contained and could be extracted for use in other projects.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 2 reusable components found
Ocramius/ProxyManager ★ 4943 190 APPLICATION

ProxyManager is a PHP library for generating proxy classes at runtime. It provides implementations for several proxy patterns: lazy loading (ghost and value holder), access interceptors (with value holder or scope localizer), null objects, and remote objects. The library uses Laminas Code for code generation and reflection to dynamically create proxy classes that wrap or substitute real objects. It is designed as a standalone Composer package with a configuration-driven architecture: a central Configuration object manages autoloading, generator strategies (evaluating or file-writing), class name inflectors, and signature verification. Factories (e.g., LazyLoadingValueHolderFactory, NullObjectFactory) serve as the primary entry points for users, each producing proxies for a given class or interface. The generated proxies include methods for initialization control, interceptor callbacks, and property access simulation. The library is extensively tested with unit tests, functional tests, and mutation testing, and includes benchmarks for performance. External dependencies are limited to Laminas Code and Composer's installed versions API.

RATING: 9.0/10 MAINT: maintained DRIFT: low
▸ 5 reusable components found
beam-community/bamboo ★ 1960 340 APPLICATION

Bamboo is a mature, well-architected Elixir library for composing and delivering emails through adapters. It provides a clean functional API for building email structs, a powerful address normalization system via the `Bamboo.Formatter` protocol, and built-in adapters for Mailgun, Mandrill, SendGrid, local in-memory storage, and testing. The library supports background delivery, email interceptors, attachments, plug-based preview of sent emails, and comprehensive test helpers. Production code is separated from optional Phoenix view integration (extracted to bamboo_phoenix). The architecture uses behaviours for adapters and delivery strategies, making it extensible. It is actively maintained, with recent commits and CI passing on Elixir 1.17-1.19.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 6 reusable components found
google/fruit ★ 1885 202 APPLICATION

Fruit is a C++ dependency injection framework that enforces binding correctness at compile time through heavy template metaprogramming, loosely inspired by Google Guice for Java. The core architecture consists of a public fluent API (Component, Injector, Provider, NormalizedComponent) backed by an internal metaprogramming library for compile-time validation and runtime graph traversal using custom high-performance data structures (SemistaticGraph, SemistaticMap, FixedSizeAllocator). Users declare components via createComponent() chaining, which produces type-safe binding graphs; the framework then generates efficient object construction code with lazy/eager injection, multibindings, and component replacement for testing. The repository also includes a comprehensive benchmark suite that compares Fruit against Boost.DI and hand-written injection, along with parallel build system support (CMake, Bazel, Conan) and cross-platform CI covering GCC, Clang, MSVC across Linux, macOS, and Windows.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 3 reusable components found
web-infra-dev/rslib ★ 1034 67 APPLICATION

Rslib is a library development tool built on top of Rsbuild (which uses Rspack). It provides a CLI and JavaScript API to build JavaScript/TypeScript libraries in multiple output formats: ESM, CJS, UMD, IIFE, and Module Federation. It supports both bundle and bundleless modes, TypeScript declaration generation via three backends (TypeScript Compiler API, tsgo, and isolatedDeclarations), CSS processing with preprocessors and modules, static assets (including SVGR), WebAssembly, Web Workers, and Node.js single-executable applications (SEA). The architecture is plugin-based, leveraging Rsbuild's plugin system and Rspack's compilation pipeline. Key entry points include the CLI commands (`rslib build`, `rslib inspect`, `rslib mf-dev`) and the programmatic API (`createRslib`, `defineConfig`). External dependencies include Rsbuild, Rspack, SWC, Lightning CSS, TypeScript, API Extractor, and the Module Federation plugin. The monorepo contains three published packages: `@rslib/core` (core build engine), `create-rslib` (project scaffolding), and `rsbuild-plugin-dts` (declaration bundling). It includes extensive integration tests with snapshot assertions, e2e tests with Playwright, and a bilingual documentation website. The tool is designed for library authors who need multi-format builds, type declarations, and compatibility with various frameworks (React, Vue, Svelte, Solid). It is part of the Rstack ecosystem alongside Rspress, Rsdoctor, Rstest, and Rslint. Data flows: User configuration (rslib.config.ts) is parsed and merged with defaults, then passed to Rsbuild to generate Rspack configurations per output format. The build process compiles source files with SWC, extracts CSS, generates declarations, and produces final bundles. In bundleless mode, files are emitted individually with import path rewriting. The tool also supports development servers for Module Federation and watch mode for incremental builds.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 3 reusable components found
$ loading more...
$ submit: