39 مستودعات
Libraries that implement inversion of control to manage component dependencies.
Distinguishing note: Focuses on architectural decoupling.
Explore 39 awesome GitHub repositories matching software engineering & architecture · Dependency Injection Frameworks. Refine with filters or upvote what's useful.
This project is a collection of reference implementations demonstrating recommended patterns for organizing code and managing data flow in Android applications. It provides structural examples of layered architecture, separating code into presentation, domain, and data layers to decouple business logic from data sources. The repository includes specific samples for implementing declarative user interfaces that automatically update their visual state based on underlying data changes. It further demonstrates how to manage object lifetimes and component dependencies to reduce boilerplate and sim
Implements inversion of control to manage object lifetimes and component dependencies for improved modularity.
This project serves as a technical educational resource and software implementation example focused on dependency injection architecture and containerized application packaging. It provides a centralized framework for managing the lifecycle and configuration of application components, allowing objects to receive their dependencies from a registry rather than creating them internally. The project distinguishes itself by offering a type-safe service resolution mechanism that uses language-level information to map abstract interfaces to concrete implementations. By utilizing an inversion of cont
Decouples object creation from usage by centralizing component configuration and lifecycle management.
This project is a community-driven directory and knowledge base for the PHP ecosystem. It serves as a comprehensive index of high-quality libraries, frameworks, tools, and educational materials, designed to help developers navigate the landscape and select appropriate solutions for their software projects. The directory distinguishes itself through a hierarchical taxonomy that organizes vast amounts of technical information into a logical, human-readable structure. By relying on distributed contributions from the developer community, it maintains a current and vetted collection of references
Provides curated resources for dependency injection.
Ember.js is a structured JavaScript web framework designed for building scalable web applications. It utilizes a Model-View-Controller architectural pattern and incorporates a component-based UI library, a dependency injection framework, and a client-side routing engine. The framework distinguishes itself through a centralized registry for passing shared services across components and routes, alongside a routing system that maps URLs directly to templates and data models to manage navigation. Its broader capabilities include reactive state synchronization and computation memoization for UI p
Implements inversion of control to manage component dependencies via a centralized registry.
This is a Swift state management framework and application logic library designed for building applications with a single source of truth and unidirectional data flow. It provides a Redux-inspired architecture that separates business logic from side effects and user interfaces to ensure predictable application behavior across multiple screens. The framework focuses on modularity by allowing complex features to be decomposed into smaller, isolated components. This enables the development of UI-independent business logic that can be extracted into separate modules to improve compilation speed a
Wraps external dependencies like timers and file systems to ensure predictable behavior during tests and previews.
This project is a functional programming library and toolkit for building production TypeScript applications. It provides a system for managing concurrency, error handling, and resource lifecycles using functional effects. The project distinguishes itself through a comprehensive suite of specialized toolkits, including a dependency injection framework for decoupling service implementations, a workflow orchestrator for coordinating durable processes, and a SQL database toolkit for consistent data operations across multiple dialects. It also implements an OpenTelemetry instrumentation library f
Implements a dependency injection framework to decouple service implementations from their usage for better testability.
ASP.NET Core is a unified, cross-platform framework designed for building scalable web applications and services. It provides a comprehensive environment for constructing server-side rendered applications, real-time communication services, and interactive web components using C# and .NET. The framework distinguishes itself through a modular architecture that centers on a built-in dependency injection container, which manages service lifecycles and component modularity to improve testability. It utilizes a middleware pipeline to process requests and employs policy-based authorization to secure
Implements inversion of control to manage component dependencies and service lifetimes.
This is a Dart state management library and architectural framework that decouples business logic from the user interface by transforming a stream of events into a stream of states. It implements a business logic component pattern to ensure that state transitions are predictable and testable. The project distinguishes itself through advanced event stream processing, providing concurrency strategies to drop, restart, or queue incoming events. It includes a dedicated state persistence layer for saving and restoring application state to maintain session continuity, as well as tools for state his
Includes a dependency injection system to manage the lifecycle and disposal of state managers and repositories.
Martini is a web framework for the Go programming language that provides a toolkit for building web applications. It functions as a routing engine and an HTTP middleware pipeline to map network requests to specific handler functions. The framework is distinguished by its dependency injection system, which automatically resolves and provides requested service types as arguments to handler functions. This allows for the decoupling of business logic from infrastructure by matching requested types against a registry of available services. The project covers a broad range of web capabilities, inc
Implements an inversion-of-control system to automatically resolve and inject service dependencies into handlers.
SpotiFlyer is a cross-platform media utility designed to aggregate music from multiple streaming services into a single, unified library. It functions as a music downloader and offline audio manager, allowing users to save tracks directly to local device storage for playback without an active internet connection. The application utilizes a plugin-based provider architecture to normalize metadata from diverse external sources, enabling the consolidation of content into a consistent format. This modular design supports the integration of custom modules and external services, which expands the c
Decouples components at runtime to allow for flexible integration of custom modules and third-party service extensions.
Koin is a dependency injection framework for Kotlin applications that manages object lifetimes and resolves dependencies through a lightweight container. It functions as a multiplatform library, allowing shared object definitions and resource bindings to be reused across different target platforms and source sets. The framework provides a system for resolving dependencies directly within user interface components to decouple business logic from view implementations. It includes a compile-time dependency validator that analyzes dependency graphs during the build process to detect missing bindi
Implements a lightweight inversion of control container to manage object lifetimes and resolve dependencies across Kotlin applications.
Litestar is a high-performance Python ASGI web framework designed for building asynchronous APIs and web services. It functions as a type-safe toolkit that leverages Python type hints to provide automatic request validation and response serialization, while natively generating interactive API documentation based on the OpenAPI specification. The framework is distinguished by its integrated dependency injection system, which manages shared resources and resolves complex nested service chains directly within request handlers. It further organizes API development through class-based controllers
Includes a dependency injection framework to decouple software components and manage object lifecycles.
RIBs is a mobile architecture framework that structures applications around isolated, lifecycle-managed units of business logic called RIBs. Each RIB separates routing, business logic, and construction into distinct classes through the Router-Interactor-Builder pattern, with hierarchical dependency injection scoping dependencies per node and static analysis enforcing architectural rules at build time. The framework enforces automatic disposal of Rx subscriptions scoped to interactor lifecycles, blocking compilation when subscriptions lack proper disposal to prevent memory leaks. It supports v
Implements a hierarchical dependency injection system scoping dependencies per business logic node.
RuoYi is a Spring Boot admin framework designed for building enterprise applications. It provides a foundation for creating management dashboards and orchestrating systems using either monolithic or microservices architectures. The project features a low-code application generator that produces ready-to-compile source code and API documentation based on database table configurations. It implements a role-based access control system to map users and roles to specific menus and buttons for secure resource access. The framework includes capabilities for system health monitoring, real-time perfo
Utilizes Spring's dependency injection to decouple business logic from infrastructure components.
Unstated is a React state management library that encapsulates application state and update logic within decoupled containers. It functions as a container-based state store, allowing state and business logic to be organized into standalone classes that trigger component re-renders when data changes. The project serves as a dependency injection framework, enabling specific state container instances to be supplied to the component tree. This mechanism supports the use of mock containers or stubs to facilitate controlled testing and custom configurations. The library covers global state managem
Implements inversion of control to supply specific state container instances to the component tree.
Swinject is a dependency injection framework for Swift that manages object creation and wiring through a centralized container. It resolves dependencies by looking up registered service types at runtime, supporting iOS, macOS, and Linux platforms. The framework provides multiple injection patterns, including initializer injection where dependencies are passed through initializer parameters, property injection that sets resolved dependencies on stored properties after object creation, and method injection that calls methods with resolved dependencies as arguments. It handles complex dependency
Provides a dependency injection framework that resolves and injects dependencies into Swift components using a container.
mini-spring is a Java dependency injection framework and inversion of control container. It manages the full lifecycle of beans, including instantiation, property population, and scope management, while providing a system for automating the wiring of components. The project implements a Java AOP framework that uses dynamic proxies to intercept method calls for cross-cutting logic. It also functions as a Java component scanner to automatically discover and register managed objects via annotations and as a Java event bus to decouple components through a publish-subscribe multicast system. The
Provides a lightweight Java dependency injection framework for managing component wiring and lifecycles.
tsyringe هي حاوية حقن تبعية لـ TypeScript وإطار عمل لعكس التحكم. تفصل تنفيذات الفئات عن إنشاء الكائنات من خلال إدارة التبعيات وأعمار الكائنات باستخدام المزخرفات (decorators) والبيانات الوصفية. يتميز إطار العمل بنظام حاويات هرمي حيث يمكن للحاويات الفرعية الحفاظ على نطاقات تسجيل مستقلة والرجوع إلى الحاويات الأصلية لحل التبعية. ويوفر نظام مزود يتحكم في طول عمر الكائن من خلال قواعد إنشاء الكائنات الفردية والعابرة. يدعم النظام حقن المنشئ العودي ويتعامل مع التبعيات الدائرية باستخدام الوكلاء. ويتضمن قدرات لتعيين السجل القائم على الرموز، وحل التنفيذ المتعدد، والتخلص الآلي من الموارد للكائنات التي تنفذ واجهات التنظيف.
Functions as a comprehensive inversion of control framework that decouples class implementations from their instantiation logic.
Implementation of a bulletproof node.js API 🛡️
Ships a constructor-based dependency injection pattern that makes services testable and reusable across contexts.
Provider هو إطار عمل لإدارة الحالة وحقن التبعية (dependency injection) لـ Flutter. يبسط عملية مشاركة البيانات عبر شجرة الـ widget باستخدام نظام يدير حقن الكائنات والخدمات مع دورة حياة مؤتمتة وتخلص من الموارد. يتميز إطار العمل بحاويات حالة تفاعلية تربط البيانات غير المتزامنة من التدفقات (streams) والـ futures مباشرة بشجرة المكونات. ويدعم اشتقاق الحالة، مما يسمح بإنشاء كائنات جديدة ومزامنتها بناءً على القيم الملاحظة من مزودي بيانات متعددين. وللحفاظ على الأداء، يوفر تصفية انتقائية لإعادة البناء واشتراكات جزئية في الحالة للحد من التحديثات لأجزاء محددة من واجهة المستخدم. تغطي المكتبة مجالات قدرات واسعة تشمل ربط الواجهات لفصل التنفيذ الملموس عن الواجهات المجردة، وتكوين المزودين (provider composition) لتسطيح تعريفات التبعية المتعددة وتقليل التداخل. كما تتضمن أدوات لحل التبعيات الاختيارية والحفاظ على حالة التطبيق أثناء دورات إعادة التحميل السريع (hot reload) أثناء التطوير.
Implements an inversion of control framework to manage component dependencies and their lifecycles.