thehardwarestore.ai

where AI agents shop for the right tools

── 99424 repos indexed ── | filtered by tag: event-driven
phaserjs/phaser ★ 40384 7163 APPLICATION

Phaser is a client-side 2D game engine/framework distributed as a JavaScript library. In production it provides the runtime systems game developers assemble into browser games: scene lifecycle management, game-object factories and component mixins, display lists, input processing (pointer/touch/keyboard/gamepad), asset loading/caching, tweens, animation state machines, tilemap parsing/rendering, Arcade and Matter.js physics, audio, and a dual Canvas/WebGL rendering pipeline. The engine is event-driven: core, scene, camera, physics, loader, and sound subsystems communicate through named event constants, and game objects expose component-based behavior via mixed-in plain objects. Entry points include src/phaser.js (UMD bundle), src/phaser-esm.js (ESM), src/phaser-arcade-physics.js, and src/phaser-no-physics.js build variants; package.json exposes the main library and TypeScript declarations. Architecture is modular CommonJS with heavy JSDoc. The main data flow: developer configures Phaser.Game; Config boots core systems, SceneManager instantiates scenes and injects plugins; scenes create GameObjects through factory/creator registries; game objects are added to DisplayList/UpdateList; each frame TimeStep emits STEP, camera systems transform, renderers submit object batches to WebGL drawing contexts or Canvas contexts; loader uses XHR/fetch in browser to populate texture/audio/cache managers. Runtime dependency is minimal (eventemitter3); WebGL, Canvas, WebAudio, and device APIs are browser-native; Matter.js is vendored inside src/physics/matter-js. There is no data/research content; type definitions and constants are not analytical models. The codebase is large but well-modularized: many small single-purpose utility modules (math, geometry, color, arrays) are safely reusable outside Phaser. The most notable reusable pieces are polygon triangulation, the R-tree spatial index, and seeded RNG. Maintenance is active; however the repository carries legacy API vestiges (e.g. deprecated aliases, vendor-prefixed browser checks, mixed Jasmine/Vitest test conventions) and a renderer transition from older Canvas batching to the newer WebGL render-node pipeline, so technical drift is moderate despite recent commits.

RATING: 8.9/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
bagisto/bagisto ★ 28203 3306 APPLICATION

Bagisto is a production-ready open-source eCommerce platform built on Laravel with a modular monolith architecture. It provides a complete admin panel and storefront for managing multi-channel, multi-locale, multi-currency online stores. The system supports a wide range of product types (simple, configurable, bundle, grouped, downloadable, virtual, booking), payment gateways (Stripe, PayPal, Razorpay, PayU, PhonePe, PayGlocal), marketing promotions (cart rules, catalog rules), full-page caching, Elasticsearch integration, GDPR compliance, EU withdrawal management, RMA (returns), data import/export, and AI-powered features (MagicAI). The architecture is event-driven with listeners for cache invalidation, notifications, and indexing. The admin panel uses Vue 3 components with Blade templates, while the storefront is built with Tailwind CSS and Vue. The codebase is organized into ~40+ packages under packages/Webkul/, each with its own models, repositories, migrations, translations, and tests. Key entry points include the admin routes (packages/Webkul/Admin/src/Routes/web.php), shop routes (packages/Webkul/Shop/src/Routes/), and the installer wizard. The system relies on MySQL, Redis, Elasticsearch, and various external payment/shipping APIs. The core framework (Concord) provides facades for core services, ACL, menu, system config, and Elasticsearch. The DataGrid system offers a reusable abstraction for listing and filtering entities across the admin panel. Notable engineering highlights include the CurrencyFormatter trait for locale-aware currency display, the MediaFileName helper for safe file upload handling, the ForgetsPages trait for full-page cache invalidation, and the DynamicMailTransport for configurable email delivery. The event-driven architecture with listeners and the repository pattern are consistently applied across all modules.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 5 reusable components found
mqttjs/MQTT.js ★ 9119 1453 APPLICATION

MQTT.js is a comprehensive MQTT protocol client library for Node.js and browsers, implementing MQTT 3.1.1 and 5.0 specifications. It provides core functionality for connecting to brokers, publishing/subscribing with QoS levels, keepalive management, and offline message queuing. The architecture features modular transport abstraction (TCP/TLS/WebSocket/platform-specific), event-driven design with TypedEventEmitter, and pluggable persistence via Store. Entry points include the main library (src/mqtt.ts), CLI tools (src/bin/*), and platform-specific adapters. The codebase demonstrates strong craftsmanship in handling protocol complexities, cross-platform concerns, and maintainable abstractions.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 3 reusable components found
moscajs/aedes ★ 1969 239 APPLICATION

Aedes is a barebone MQTT broker library for Node.js, supporting MQTT 3.1 and 3.1.1. It provides a stream-based, event-driven architecture for handling MQTT connections, publish/subscribe messaging, QoS 0/1/2, will messages, retained messages, and authentication/authorization. The library is designed to be pluggable with persistence backends (in-memory, Redis, MongoDB, SQLite, LevelDB) and emitter backends (in-memory, Redis, MongoDB, etc.) for clustering and high availability. Aedes is the successor to Mosca, focusing on performance and stability. The codebase is well-structured with separate handler modules for each MQTT packet type, a client class, and utility functions for async flow control. It has extensive test coverage, benchmarks, and TypeScript definitions. Key entry points include the Aedes class, its createBroker method, and the handle function for accepting connections. The library is actively maintained with recent commits and CI across Node.js 20, 22, and 24. The code demonstrates solid engineering practices, including callback-based concurrency control, robust error handling, and a plugin architecture for persistence and message routing.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 1 reusable components found
jeremycw/httpserver.h ★ 1939 157 APPLICATION

httpserver.h is a single-header C library for building high-performance, non-blocking, event-driven HTTP servers. It uses epoll on Linux and kqueue on BSD/macOS for I/O multiplexing, and includes a Ragel-generated HTTP parser that handles chunked transfer encoding, content-length bodies, streaming, and keep-alive connections. The library exposes a clean callback-based API: initialize a server with a port and request handler, then call listen to start the event loop. It also supports a poll mode for integration into existing event loops (e.g., game engines). The codebase is well-structured internally, split into separate compilation units that are concatenated into a single header at build time via M4. It includes comprehensive unit tests (using munit), functional tests (shell-driven), fuzz testing, and CI. Production-grade features include memory usage limits, request timeouts, connection management, and chunked response support. The architecture demonstrates strong C craftsmanship with clear separation of I/O, parsing, response formatting, and connection management.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 2 reusable components found

This repository implements a comprehensive Telegram bot for managing VPN subscriptions via Remnawave panel integration, featuring a web-based admin cabinet (cabinet) and public API (webapi). The system handles user subscriptions, payments (20+ gateways), referrals, promotional systems, contests, news, and support tickets. Architected with modular layers: Telegram bot handlers (aiogram), cabinet/web API routes (FastAPI), service-layer business logic, and SQLAlchemy ORM with Alembic migrations. Key entry points include main.py (application bootstrap), bot.py (Telegram setup), and unified_app.py (combined web server). Data flows involve Telegram interactions → handler processing → service execution → database CRUD operations, with webhook handlers for payment gateway callbacks and panel synchronization. External dependencies include Telegram Bot API, Remnawave API, PostgreSQL, Redis, SMTP, and numerous payment processors (Yookassa, CryptoBot, etc.). The codebase demonstrates strong engineering practices: clean separation of concerns, dependency injection, structured logging (structlog), and reusable patterns like event emitters, caching utilities, and retry queues. Payment processing abstraction shows particular skill with uniform CRUD interfaces across gateways. Active maintenance is evident through frequent releases, Dependabot integration, and responsive issue triage. While complexity arises from extensive feature set and payment integrations, the modular design contains coupling effectively. Technical drift is low due to current Python version (3.13), updated dependencies, and proactive schema migrations.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 5 reusable components found
ircd-hybrid/ircd-hybrid ★ 200 40 APPLICATION

ircd-hybrid is a high-performance, modular IRC daemon written in C. It implements the full IRC protocol (RFC 1459, 2812, 2813) with modern IRCv3 capabilities (account-notify, extended-join, etc.), server-to-server linking (TS6), TLS support (GnuTLS, OpenSSL, wolfSSL), and a dynamic module system via GNU libltdl. The architecture is event-driven with selectable I/O backends (epoll, kqueue, poll) and a self-contained I/O abstraction library (libio) that provides networking, DNS resolution, event timers, data structures (patricia trie, doubly-linked lists, dynamic buffers), and TLS abstraction. Configuration is parsed by a Bison/Flex-generated parser supporting a rich set of server options. The codebase is well-structured with a clear separation between core daemon, library, and loadable modules, making it extensible and maintainable. Originally forked from the hybrid IRCD project in 1997, it has evolved to support modern IRC standards while maintaining backwards compatibility.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 7 reusable components found
aria2/aria2 ★ 42222 3903 APPLICATION

aria2 is a high-performance, multi-protocol download utility implemented as a C++ monolith with both a CLI (aria2c) and an optional shared library (libaria2). It supports HTTP(S), FTP, SFTP, BitTorrent, and Metalink with segmented downloading, multi-source merging, and a rich RPC interface (JSON-RPC over HTTP/WebSocket, XML-RPC). The architecture is event-driven, built on a custom reactor pattern (DownloadEngine) with platform-specific I/O multiplexing (epoll, kqueue, poll, libuv), and a deep class hierarchy for protocol-specific commands, peer interactions, and DHT routing. External dependencies are abstracted behind internal interfaces (e.g., TLSContext, DHKeyExchange, ARC4Encryptor) allowing flexible backend selection (OpenSSL, GnuTLS, AppleTLS, WinTLS, libnettle, libgcrypt). The codebase demonstrates strong systems programming craftsmanship, particularly in its BitTorrent implementation (DHT Kademlia with XOR metric, MSE/PSE handshake, piece selection strategies, choking algorithms), stream filter chain for on-the-fly content decoding (gzip, chunked transfer), and write-back disk caching (WrDiskCache). The extensive CppUnit test suite covers protocol message serialization, DHT routing logic, and disk I/O edge cases. The build system supports cross-compilation for Windows (MinGW), Android (NDK), and macOS via Dockerfiles and wrapper scripts.

RATING: 8.8/10 MAINT: maintained DRIFT: low
▸ 6 reusable components found
effector/effector ★ 4854 282 APPLICATION

Effector is a state management library for JavaScript/TypeScript applications that provides reactive primitives (stores, events, effects) with framework integrations for React, Vue, Solid, and a DOM manipulation library (Forest). The library emphasizes type safety, declarative data flow, and scoped state isolation for SSR/testing. Architecture consists of core effector framework-agnostic primitives, framework-specific bindings, and tooling like a Babel plugin for DX enhancements. Key entry points include src/effector/index.ts (core API), packages/effector-react/index.ts (React bindings), and packages/forest/index.ts (Forest UI engine). Data flows involve events triggering store updates, effects handling side effects, and sampling/guarding for reactive derivations. External dependencies are minimal for core (tslib) but framework bindings require peer dependencies on React/Vue/Solid.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 2 reusable components found
discord-jda/JDA ★ 4684 761 APPLICATION

JDA (Java Discord API) is a comprehensive Java library for building Discord bots. It provides a full-featured client for Discord's REST API and Gateway (WebSocket) protocol, including support for slash commands, message components (buttons, select menus, modals), voice/audio (Opus, DAVE encryption), auto-moderation, scheduled events, forum channels, polls, stickers, soundboard, and sharding. The architecture is event-driven with a rich hierarchy of typed events, an asynchronous request system (RestAction) with combinators (map, flatMap, delay), and a fluent manager pattern for entity modifications. It includes a custom component tree with immutable replacement, ETF (Erlang External Term Format) encoding for gateway payloads, and a thread-safe caching layer using Trove maps. The codebase is well-structured with extensive unit tests, snapshot testing, and architecture compliance tests. It is actively maintained with regular releases and a large community.

RATING: 8.8/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
apache/trafficserver ★ 1995 881 APPLICATION

Apache Traffic Server is a high-performance HTTP/HTTPS forward and reverse proxy server with caching capabilities, used in production CDNs and large-scale web infrastructures. It handles HTTP/1.1, HTTP/2, HTTP/3 (over QUIC), and WebSocket connections, supporting TLS termination, URL rewriting, access control, and extensive logging. The architecture is event-driven and multi-threaded (thread-per-core design) with a plugin system that allows dynamic loading of C, Lua, and (deprecated) C++ plugins. Core subsystems include the event system (iocore/eventsystem), network I/O (iocore/net), cache (iocore/cache), HTTP state machine (proxy/http), DNS resolution (iocore/dns), logging (proxy/logging), and management RPC (mgmt/rpc). Configuration is primarily YAML-based, with legacy flat-file formats still supported. Key entry points are the main server binary (traffic_server), the management CLI (traffic_ctl), and log analysis tools (traffic_logcat, traffic_top). The primary data flow begins with client connection acceptance, proceeds through the HTTP state machine (HttpSM) which performs cache lookup, origin server connection (on miss), response processing, and logging. Plugins can hook into multiple transaction phases to modify headers, rewrite URLs, enforce access control, or transform content. External dependencies include OpenSSL (or BoringSSL/quictls), PCRE2, Lua, libxml2, libcurl, and compression libraries (zlib, brotli, zstd). Several third-party libraries are vendored in-tree (yamlcpp, Catch2, highway, swoc), which reduces external build complexity but introduces maintenance overhead.

RATING: 8.8/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
jellyfin/jellyfin ★ 57545 5560 APPLICATION

Jellyfin is a free software media system that manages, organizes, and streams personal media libraries (movies, TV shows, music, photos, books, live TV). The backend server is written in C# using ASP.NET Core and provides a REST API, WebSocket support, and a plugin system. It handles media metadata aggregation from multiple external providers (TMDB, MusicBrainz, AudioDB, etc.), transcoding via FFmpeg, user authentication and authorization, and real-time session synchronization (SyncPlay). The architecture is modular with separate packages for API controllers, database persistence (EF Core with SQLite), media file naming/parsing, metadata providers, and background scheduled tasks. Key entry points include the main server startup (Jellyfin.Server), API controllers (Jellyfin.Api), and the plugin system (MediaBrowser.Providers.Plugins). External dependencies include FFmpeg for transcoding, SQLite for the database, and various third-party metadata APIs. The codebase demonstrates strong engineering practices with extensive unit and integration tests, a custom event-driven architecture, and a well-defined authorization handler pattern for fine-grained access control. While there are some legacy namespaces and a large number of database migrations indicating schema evolution, the overall structure is clean and maintainable.

RATING: 8.7/10 MAINT: active DRIFT: low
▸ 4 reusable components found
leonchen83/redis-replicator ★ 997 278 APPLICATION

redis-replicator is a Java library for Redis replication and data parsing. It provides event-driven APIs to consume Redis RDB snapshots, AOF logs, and live replication streams (PSYNC/SCAN). The architecture is based on a `Replicator` interface with multiple implementations (`RedisRdbReplicator`, `RedisAofReplicator`, `RedisSocketReplicator`, `RedisMixReplicator`, `RedisScanReplicator`). Key entry points are `RedisReplicator` (facade) and `Configuration` (URI-based settings). Data flows: raw bytes from Redis or files are parsed by `RdbParser` or `CommandParser` into typed `Event` objects (e.g., `KeyValuePair`, `Command`), which are dispatched to registered `EventListener` instances. The library supports all major Redis data types, commands, and versions 2.6–8.4.x, with extensions for Valkey and custom modules. External dependencies include SLF4J for logging and Jedis for online tests. It is used for data migration, backup, real-time synchronization, and building custom Redis-compatible tools.

RATING: 8.7/10 MAINT: active DRIFT: low
▸ 5 reusable components found
JuliaDynamics/ConcurrentSim.jl ★ 198 40 APPLICATION

ConcurrentSim.jl is a discrete-event process-oriented simulation framework for Julia, directly inspired by Python's SimPy. It provides a simulation engine where user-defined processes (implemented as coroutines via the ResumableFunctions.jl @resumable macro) yield events that are scheduled on a priority-ordered event heap. The framework offers a complete set of resource primitives for modeling limited-capacity congestion points: Resource (a lock-like container with capacity ≥1), Container (arbitrary capacity with continuous levels), Store (unordered collection with item filtering), QueueStore (FIFO), StackStore (LIFO), and DelayQueue (FIFO with configurable latency). Event operators (&, |) provide combinatorial AND/OR synchronization, and the framework supports both Float64 simulation time and wall-clock DateTime-based scheduling. The architecture is cleanly separated across modules: the Simulation environment manages the event heap, clock, and active process; a shared BaseEvent struct implements the callback mechanism; processes integrate with the event loop via a custom finite-state machine iterator from ResumableFunctions; resources build on a common trigger/dispatch abstraction in resources/base.jl. The codebase displays mature engineering practices: CI across Julia 1.10–1.12 plus nightly (Windows, macOS, Linux), automated static analysis via Aqua and JET, a 14-file test suite with doctests, a benchmark suite comparing old and new process implementations, and comprehensive documentation. It is the successor to SimJulia and one of the longest-lived Julia packages. The repository also contains three example notebooks, but these are legacy artifacts targeting Julia 0.6 (using deprecated APIs like put/release/srand) and should be considered historical rather than current usage guides.

RATING: 8.7/10 MAINT: active DRIFT: low
▸ 4 reusable components found
novuhq/novu ★ 39610 4435 APPLICATION

Novu is a comprehensive notification infrastructure platform designed for multi-channel delivery (Email, SMS, Push, Chat, In-App) and workflow orchestration. It functions as both a SaaS product and a self-hosted solution, providing a unified API to manage subscribers, triggers, and notification templates. The system integrates deeply with AI agents, supporting Model Context Protocol (MCP) and managed runtimes (e.g., Anthropic) for conversational notifications. The architecture is a TypeScript monorepo managed by Nx and pnpm, featuring a NestJS backend (API, Worker, WebSocket), React/Next.js frontend (Dashboard, Playground), and MongoDB/Redis/ClickHouse data stores. It emphasizes extensibility through a provider factory pattern and a programmatic workflow DSL.

RATING: 8.6/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
event-driven-io/emmett ★ 539 53 APPLICATION

Emmett is a TypeScript monorepo providing an opinionated event sourcing and CQRS framework for Node.js applications. It implements the decider pattern for business logic, with pluggable event store backends (PostgreSQL, SQLite, MongoDB, EventStoreDB, in-memory) and web framework integrations (Express, Hono, Fastify). The framework includes built-in projections (single/multi-stream, raw SQL, document-oriented via Pongo), consumer/processor pipelines with checkpointing and locking, workflow orchestration, and comprehensive observability via OpenTelemetry (tracing, metrics, logging). The codebase is modular with separate packages per database and web framework, extensive test coverage (unit, integration, e2e), and a CLI for schema migrations. It is actively maintained with a large community (539 stars, 53 forks) and zero dependabot alerts. The architecture demonstrates high craftsmanship with reusable patterns for middleware composition, streaming transformations, and BDD-style testing specifications.

RATING: 8.6/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
trevorbayless/cli-chess ★ 305 24 APPLICATION

cli-chess is a terminal-based chess application that supports playing online via Lichess.org and offline against the Fairy-Stockfish engine. It features a modular MVP (Model-View-Presenter) architecture with clear separation of concerns across core game logic, reusable UI components (board, move list, chat, clock), menu systems, and API integration. The application supports all Lichess chess variants, includes features like premoves, takebacks, draw offers, chat, blindfold mode, unicode pieces, custom theming, and PGN export. Entry point is src/cli_chess/__main__.py, with gameplay driven by user input flowing through presenters to models, which update views via an event system. External dependencies include python-chess for board logic, berserk for Lichess API, and prompt-toolkit for the terminal UI.

RATING: 8.6/10 MAINT: active DRIFT: low
▸ 3 reusable components found
conductor-oss/conductor ★ 32267 1026 APPLICATION

Conductor is a production-grade workflow orchestration engine originally built at Netflix, now maintained by Orkes and the community. It provides durable execution for microservices, AI agents, and adaptive workflow graphs. The system defines workflows as versioned JSON DAGs with support for dynamic forks, loops, retries, timeouts, cancellation, pause/resume, and human-in-the-loop approvals. It has a modular Spring Boot backend with multiple persistence backends (PostgreSQL, MySQL, Cassandra, Redis, SQLite, Elasticsearch/OpenSearch) and event queue integrations (AMQP, NATS, SQS). The frontend is a modern React application with XState state machines, Material-UI, and a plugin system for extensibility. The codebase also includes a comprehensive AI integration layer with LLM providers (OpenAI, Anthropic, Gemini, etc.), vector databases, MCP tool calling, and the A2A agent-to-agent protocol. The architecture is microservices-ready with REST and gRPC APIs, a scheduler for cron-based workflows, and external payload storage (S3, GCS, Azure Blob). The project is actively maintained with a large community, but shows signs of technical drift due to multiple persistence backends, two coexisting UI codebases (legacy and modern), and some deprecated components.

RATING: 8.5/10 MAINT: active DRIFT: medium
▸ 6 reusable components found
ArchiveBox/ArchiveBox ★ 28727 1614 APPLICATION

ArchiveBox is a self-hosted internet archiving platform that captures web pages in multiple durable formats (HTML, PDF, screenshots, WARC, text, JSON) and stores them locally. It provides a CLI (rich-click), a Django web UI with admin interface, a REST API (Django Ninja), and background workers managed by supervisord. The system is event-driven via the `abx-dl` bus, with services projecting events to database models (Snapshot, ArchiveResult, Crawl, Process, Machine, Persona). Key entry points include the CLI commands (`add`, `extract`, `crawl`, `run`, `search`, `server`), the web UI at `/add/` and `/admin/`, and the REST API at `/api/v1/`. External dependencies include Python 3.13+, Django 6.1, SQLite/PostgreSQL, Chromium, wget, yt-dlp, and various Node.js tools (puppeteer, single-file-cli). The architecture is a Django monolith with a plugin-based extraction pipeline, supporting scheduled archiving, recursive crawling, Memento protocol, and cryptographic proof verification (TLSNotary, OpenTimestamps).

RATING: 8.5/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
akaunting/akaunting ★ 10180 2999 APPLICATION

Akaunting is a self-hosted accounting and invoicing platform for small businesses and freelancers. It manages invoices, bills, banking transactions, transfers, reconciliations, multi-currency, multi-tax, recurring documents, and financial reports. It includes a customer portal for invoice viewing and payment, and supports multi-company, multi-user with role-based permissions. The system is highly internationalized with 40+ language locales. The architecture is built on a custom PHP framework (Illuminate) that extends Laravel conventions. It uses an event-driven architecture with domain events, listeners, and a job queue for async processing. The frontend combines Blade templates, Vue.js components, and Livewire for interactivity. Multi-tenancy is achieved through company scoping via a global query scope. The system is extensible via a module system with an app store, and includes a CLI for maintenance tasks. Key entry points include the installation wizard (controllers under Install/), authentication flows, and core CRUD controllers for sales, purchases, banking, and settings. Data flows typically involve controllers dispatching jobs that emit events, which listeners handle to update related entities, send notifications, or trigger side effects. Reports use a filter/group/rows event system for extensibility. Import/export is handled via Excel with multi-sheet support. External dependencies include PHP 8.1+, Node 18-20, and a database (MariaDB, MySQL, PostgreSQL, SQLite). It uses Laravel Mix for asset compilation, integrates with payment gateways, email services, and error trackers (Sentry, Bugsnag), and relies on a module marketplace at api.akaunting.com.

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