thehardwarestore.ai

where AI agents shop for the right tools

── 99392 repos indexed ── | filtered by tag: dependency-injection
mxcl/swift-sh ★ 1892 63 APPLICATION

swift-sh is a CLI tool that enables Swift scripts to declare and fetch third-party dependencies via special comments in import statements. It parses a script's imports (e.g., `import Foo // @mxcl ~> 1.0`), generates a Swift Package Manager project with those dependencies, builds it, and runs the resulting executable. The architecture is modular with separate targets for script parsing (Script), command handling (Command), and utility functions (Utility). The tool supports both file-based and stdin scripts, local dependencies, and provides subcommands for ejecting to a full package and editing in Xcode (macOS only). It is a pragmatic solution that bridges the gap between ad-hoc scripting and SwiftPM's package structure.

RATING: 8.0/10 MAINT: active DRIFT: low
▸ 3 reusable components found
JackEblan/Geto ★ 1061 35 APPLICATION

Geto is an Android application that allows users to apply specific device settings (like disabling Developer Options or USB debugging) when launching particular apps, and automatically revert those settings when exiting the app. The app follows a clean architecture with separate modules for presentation, domain, and data layers. It uses Jetpack Compose for UI, Hilt for dependency injection, and Kotlin Coroutines for asynchronous operations. Key features include creating app shortcuts that trigger settings changes, a foreground service to monitor system setting changes, and secure storage of app-specific configurations using Room database and DataStore. The application requires the WRITE_SECURE_SETTINGS permission to modify system settings, which must be granted via ADB or Shizuku.

RATING: 8.0/10 MAINT: active DRIFT: low
▸ 5 reusable components found
ZYPGITA/astra-flux ★ 160 0 APPLICATION

AstraFlux is a distributed service framework that provides dependency injection, task scheduling with DAG dependencies, RPC with circuit breaker, worker management, and a web dashboard. It uses MongoDB for task persistence, Redis for worker registry and capacity tracking, and RabbitMQ for messaging. The framework follows a modular architecture with clear separation of concerns: DI container (FixtureManager), configuration system, controllers (scheduler, monitor), exports (APIs), and providers (implementations). Services and workers are dynamically loaded and communicate via message queues. The system demonstrates solid engineering practices in its implementation of distributed systems patterns, particularly in its DI container, retryable executors, distributed scheduler, and worker management components.

RATING: 7.9/10 MAINT: maintained DRIFT: low
▸ 4 reusable components found
streamlabs/desktop ★ 4856 688 APPLICATION

Streamlabs Desktop (formerly Streamlabs OBS) is a production-grade live-streaming desktop application for Windows and macOS built on Electron and the OBS Studio native library (obs-studio-node). In production it lets streamers compose multi-scene/source setups, manage audio, go live simultaneously to Twitch, YouTube, TikTok, Kick, Facebook and other platforms, run alert/widget overlays, record and replay, generate AI highlight clips, and control the app programmatically through an external JSON-RPC API (used by Stream Deck devices, mobile remotes, and third-party platform apps). The product layer also includes Ultra subscription gating, an overlay/widget store, onboarding flows, game-capture source management, and a managed updater with incremental rollout and A/B testing. Architecturally, the app spans multiple Electron processes (worker services layer, main UI, child windows) with a custom dependency-injection framework (@Inject, Service/StatefulService/PersistentStatefulService) and IPC proxies that let any window invoke services as if local. State is persisted through layered mechanisms: Vuex-backed mutations, localStorage-backed persistent services, and RealmObject documents for real-time data. The UI is a hybrid: a large legacy Vue 2 surface is being progressively replaced by React 17 with antd 4, bridged through component wrappers. Undo/redo is a genuine Command pattern (EditorCommandsService with combinable commands and a 500-entry history), and scene collections serialize through a versioned node/array-node tree with overlay import/export and migrations. Core data flows: OBS native events (stream/record status, scenes, sources, audio meters) flow from obs-studio-node into stateful services that reactively drive the UI; scene collections persist as JSON via the node serializer; widget settings are fetched and patched against the Streamlabs REST API; real-time alerts, safe-mode state, and user state for AI features arrive over WebSocket; platform auth uses OAuth/PKCE flows. The highlighter subsystem contains a notably crafted media pipeline (FFmpeg frame reading, WebGL transitions, audio crossfading, vertical export, companion-app installation) for automated clip generation. The codebase is large (~5000 files) and shows its age in places: Vue 2 (EOL), React 17, and antd 4 are several major versions behind; at least four state-management approaches coexist (Vuex, Zustand, Realm, localStorage); a global Services locator couples many modules; and scattered @ts-ignore comments and skipped tests indicate debt. Despite this, the DI/service layer, command pattern, node serialization framework, JSON-RPC protocol, metadata-driven form system, and several DSP/geometry utilities are cleanly designed and genuinely reusable, and the project is actively maintained with CI workflows, dependency automation via Renovate, and an extensive test suite spanning unit, integration, screenshot, and performance tests.

RATING: 7.7/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
zekroTJA/shinpuru ★ 201 34 APPLICATION

This repository contains shinpuru, a production-grade Discord bot written in Go with a React/TypeScript web dashboard. It serves as a comprehensive guild management and moderation platform, handling reports, kicks, bans, mutes, and community engagement features like karma, starboard, votes, and code execution. The backend is a monolith using the discordgo library for Discord interactions, Fiber for its REST API, and sarulabs/di for dependency injection, backed by MySQL, Redis, and MinIO. The architecture is well-structured with clear separation of concerns. The internal/ directory houses services (database, storage, permissions, karma, reports), event listeners, slash commands, and middleware. The pkg/ directory is a standout collection of over 30 reusable utility packages, covering areas like rate limiting (limiter), one-time authentication (onetimeauth), Discord embed building (embedbuilder), fuzzy object resolution (fetch), and permission management (permissions). These packages are largely self-contained and could be extracted for use in other Go projects. The frontend is a modern React SPA with i18n support (English and German), a typed API client (shinpuru-ts), and a comprehensive set of components for managing every aspect of the bot. The project demonstrates strong engineering practices with CI/CD pipelines, Docker support, and a clear contribution model. While the codebase is large and shows some signs of technical drift (legacy package versions, some raw SQL patterns, duplicated package versions), the core architecture and reusable packages make it a valuable reference for building complex Discord bots or Go web applications.

RATING: 7.7/10 MAINT: active DRIFT: medium
▸ 7 reusable components found
IBM/fp-go ★ 2019 83 APPLICATION

IBM fp-go is a comprehensive functional programming library for Go, heavily inspired by fp-ts (TypeScript). It provides a wide range of algebraic abstractions including Option, Either, Result, IO, Reader, State, Writer, and their monad transformer stacks (IOEither, ReaderIOEither, ReaderIOResult, StateReaderIOEither, etc.). The library employs Go generics to simulate higher-kinded types and includes optics (lenses, prisms, isomorphisms, traversals), lazy iterators, retry policies, resource management via Bracket, dependency injection with Reader, and code generation tools. It also offers idiomatic Go wrappers that return (A, error) tuples while preserving functional composition. The codebase is split into two parallel module paths (root and v2/), with v2 representing a newer generation requiring Go 1.24+ and adding result types, effect packages, and context-aware variants. While highly engineered and feature-rich, the dual tree structure, some incomplete components, and non-standard pragmas introduce maintenance complexity.

RATING: 7.6/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
openmod/openmod ★ 305 46 APPLICATION

OpenMod is a .NET-based plugin framework designed for extensibility across game servers and applications. It provides core services including dependency injection, event handling, command processing, permission systems, user management, and configuration management. The framework features a modular architecture with platform-specific adapters for games like Unturned and Rust, enabling developers to create plugins that extend functionality without modifying the core. The system uses an event-driven approach for loose coupling and supports self-updating via NuGet package management. While primarily focused on game server modding, the core abstractions are general enough to apply to other extensible application scenarios.

RATING: 7.5/10 MAINT: active DRIFT: low
▸ 5 reusable components found
cakephp/cakephp ★ 8788 3359 APPLICATION

CakePHP 5.x is a full-stack PHP web framework providing an MVC architecture, an ORM with behaviors and associations, a database abstraction layer supporting multiple drivers (MySQL, Postgres, SQLite, SQL Server), a PSR-7 compliant HTTP layer with middleware, a console/CLI framework, caching, internationalization, validation, and a comprehensive test suite. The architecture is highly modular, organized into distinct packages (Container, ORM, Database, Http, Console, etc.) that communicate via interfaces, events, and dependency injection. The codebase demonstrates exceptional craftsmanship in several areas: a composable collection pipeline using iterators (Filter, MapReduce, Tree), a robust and extensible database type system, a clean visitor-pattern-based debug output system, and a fluent filesystem traversal API. These components are self-contained and highly reusable. However, the codebase has a critical technical drift issue: it relies on a non-standard PHP syntax (e.g., `declare(strict_types=1)`, `use` for traits, `fn` closures, `match` expressions) that requires a transpiler. This creates a significant barrier to contribution, standard tooling compatibility, and long-term maintainability within the PHP ecosystem. Despite this, the underlying architecture and reusable components are of high quality.

RATING: 7.4/10 MAINT: active DRIFT: high
▸ 5 reusable components found
zazoomauro/node-dependency-injection ★ 299 38 APPLICATION

This repository is a Node.js/TypeScript library for dependency injection (DI), heavily inspired by Symfony's DI container. It provides a service container that manages object construction, autowiring (automatic dependency resolution from constructor parameter types), and service configuration via YAML, JSON, JavaScript, and XML files. The library supports advanced features such as compiler passes, service decoration, tagged and keyed services, conditional service registration, lazy loading, and graph export. It includes a CLI tool for generating configurations and inspecting the container. The architecture follows a modular design: a ContainerBuilder manages definitions and compilation, loaders parse configuration files, and a compiler runs passes in ordered phases (optimization, removal, decoration). Autowiring uses TypeScript's AST (via @typescript-eslint/typescript-estree) to scan source files and register services automatically. The library also provides validation, graph export in multiple formats (JSON, Mermaid, DOT), and a condition evaluation system for environment-aware service registration. The codebase is well-structured with clear separation of concerns, extensive tests (both JavaScript and TypeScript), and demonstrates several design patterns (compiler pass, strategy for loaders/dumpers, reference objects, condition evaluation). However, the project appears unmaintained: the last CHANGELOG entry is from 2018, dependencies are outdated (e.g., commander v8, chalk v4, TypeScript 4.6.4), and the package.json version is 0.0.0. Despite its age, the core concepts remain relevant and the code quality is solid for a library of its kind.

RATING: 6.8/10 MAINT: stale DRIFT: medium
▸ 2 reusable components found
hjo12/kanban-tasker-uwp ★ 298 48 APPLICATION

This repository contains a Windows 10 UWP application for Kanban-style task management, accompanied by an ASP.NET Core Web API for remote data storage. The application follows the MVVM pattern with dependency injection via Autofac, supporting multiple database backends (SQLite, MySQL, MSSQL, WebAPI) through an adapter architecture. Features include drag-and-drop task organization, due dates, reminders, OneDrive synchronization via Microsoft Graph, and a compact overlay mode. The project is explicitly marked as unmaintained in the README, with ongoing work on a WinUI3 .NET10 replacement.

RATING: 5.1/10 MAINT: deprecated DRIFT: high
▸ 4 reusable components found
── end of results ──
$ submit: