24 repositorios
Systems that manage the instantiation and lifecycle of application components to achieve loose coupling.
Distinct from Dependency Management: Distinct from Dependency Management: focuses on the runtime inversion-of-control container rather than package versioning.
Explore 24 awesome GitHub repositories matching devops & infrastructure · Dependency Injection Containers. Refine with filters or upvote what's useful.
CodeIgniter is an open-source PHP web framework and application toolkit designed for server-side development. It implements a model-view-controller architecture to separate internal data representations from the user interface. The framework utilizes a front-controller architecture to direct all incoming web requests through a single entry point for URI parsing and request dispatching. It includes a dependency injection container to resolve class dependencies and manage the lifecycle of core system components. The toolkit provides capabilities for routing management, database interactions, a
Includes a dependency injection container to resolve class dependencies and manage core system component lifecycles.
This project is a comprehensive educational resource and programming course covering C++ language semantics and features from C++03 through C++26. It provides structured tutorials and technical guides focused on modern C++ development. The material offers specialized instruction on template metaprogramming, including the use of type traits and compile-time computations. It features detailed guides on concurrency and parallelism for multi-core execution, as well as a reference for software design applying SOLID principles and RAII. Additionally, it covers build performance optimization to redu
Explains how to decouple interfaces from implementations using opaque pointers to accelerate compilation and hide internal logic.
Wire is a compile-time dependency injection framework for Go that generates code to wire application components together. It analyzes function signatures at compile time to build an explicit initialization graph, removing the need for runtime reflection or manual wiring code. The framework operates as a Go code generator and static analysis tool, transforming annotated source code into generated wire files that compile alongside the original project. It connects dependencies by matching function parameters and return types, producing a directed acyclic graph of component dependencies that is
Creates a container that resolves and injects dependencies based on declared provider and injector functions.
This project is a comprehensive guide to architectural standards and coding patterns for developing maintainable applications within the Laravel framework. It focuses on clean code standards, applying the single responsibility and DRY principles to ensure codebase predictability and consistency. The guide emphasizes decoupling components by moving business logic into service layers and shifting input validation into dedicated request classes to keep controllers lean. It advocates for the use of a service container and dependency injection to reduce class coupling and improve testability. The
Uses a service container and dependency injection to manage component instantiation and reduce class coupling.
Doctrine ORM is a PHP object-relational mapper that connects application objects to relational database tables. It uses the data mapper and identity map patterns to decouple the in-memory object model from the database schema, allowing developers to manage data persistence without writing manual SQL. The project features a dedicated object-oriented query language and programmatic builder for retrieving data based on entities rather than tables. It implements a unit-of-work system to track object changes during a request and synchronize them via atomic transactions. The capability surface inc
Decouples entity dependencies by mapping interfaces or abstract classes to concrete implementations during runtime.
Kanboard es una herramienta de gestión de proyectos Kanban autohospedada y suite de productividad diseñada para el seguimiento de tareas de software y la colaboración en equipo. Proporciona un sistema visual para gestionar flujos de trabajo mediante el uso de tableros, columnas y tarjetas. El proyecto cuenta con un framework de plugins extensible y una API integral para la administración programática de tareas y proyectos. Incluye gestión de identidad especializada a través de la integración LDAP, lo que permite la sincronización de cuentas de usuario y permisos de grupo desde servidores de directorio. El sistema cubre una amplia gama de capacidades, incluyendo automatización de flujo de trabajo basada en eventos, análisis detallados de proyectos como gráficos de burn-down y medición del tiempo de ciclo, y control de acceso granular basado en roles. También admite seguimiento de tiempo integrado, descomposición de subtareas y autenticación de múltiples métodos, incluida la autenticación de dos factores y soporte de proxy inverso. La aplicación es compatible con MySQL y PostgreSQL para el almacenamiento de datos persistente y se puede desplegar utilizando Docker Compose.
Implements a dependency injection container to store and provide global access to singleton service instances.
This project is a collection of software design patterns implemented in Go, serving as a technical reference and a set of practical programming examples. It maps theoretical architectural patterns to concrete code to demonstrate structural, creational, and behavioral coding techniques. The repository provides implementations for creational patterns focused on object instantiation and blueprint management, structural patterns for organizing object compositions, and behavioral patterns that manage object interactions and responsibilities. The content covers broad capability areas including in
Demonstrates how to program to interfaces to separate high-level logic from concrete implementations.
100 Go Mistakes is a reference book and code review companion that catalogues frequent Go programming anti-patterns and provides corrected implementations for each one. It covers a wide range of common pitfalls, from range loop variable capture and interface nil handling to error wrapping and map iteration randomization, helping developers recognize and avoid these issues in their own code. The project distinguishes itself by offering a structured, example-driven approach to learning idiomatic Go. It covers core design decisions such as when to use pointer versus value receivers, how to apply
Replaces concrete dependencies with interfaces so implementations can be swapped without changing consumers.
Clean Architecture template for Golang services
Defines repository and use-case boundaries as Go interfaces so that the core domain never imports infrastructure packages directly.
Fx is a dependency injection framework and application lifecycle manager for Go. It functions as a component model container that automates the instantiation and connection of components by analyzing constructor parameters and return values to resolve complex dependency graphs. The framework distinguishes itself through module-based component bundling, which encapsulates related constructors into reusable units to manage visibility and logic. It provides advanced resolution capabilities, including mapping concrete types to interfaces for decoupling, resolving dependency ambiguities via unique
Functions as a container that manages the instantiation and lifecycle of components to achieve loose coupling.
Hyperf is a high-performance PHP coroutine framework designed for building microservices and middleware. It utilizes non-blocking coroutines to handle high concurrency and low-latency request processing, providing a foundation for scalable distributed systems. The framework is distinguished by an aspect-oriented programming based dependency injector that enables pluggable components and meta-programming. It includes a coroutine-optimized object-relational mapper with integrated model caching and an orchestration toolkit for microservice governance, featuring service discovery, circuit breaker
Allows the removal of arbitrary resolved entries from the dependency injection container.
FastStream is an asynchronous Python framework designed for building event-driven microservices. It provides a unified abstraction layer for interacting with various message brokers, enabling developers to manage event production and consumption through a consistent interface while maintaining access to native provider-specific features. The framework centers on a decorator-based routing model that binds application logic directly to broker topics, supported by a built-in dependency injection container that resolves resources at runtime. The framework distinguishes itself through its deep int
Provides a built-in dependency injection container to manage and resolve application resources at runtime.
This is a dependency injection framework and inversion of control container for Python. It decouples object creation from business logic by managing how services and their dependencies are assembled, delivered, and linked within an application. The framework is distinguished by its ability to perform automated component wiring, using import hooks and decorators to inject dependencies into functions and classes across different modules. It supports non-blocking flows through an asynchronous dependency resolver and manages the initialization and shutdown sequences of shared external resources a
Defines external dependencies within a package container using placeholders to maintain implementation agnosticism.
ZIO is a functional effect system for the JVM that models asynchronous and concurrent programs as pure, composable values with typed error handling and dependency injection. Its core identity is built on fiber-based concurrency, where lightweight, non-blocking fibers execute millions of concurrent tasks with structured lifecycle management, and a dual-channel error model that separates expected business failures from unexpected system defects at compile time. The system provides effect-typed dependency injection through a layer-based dependency graph, pull-based reactive stream processing with
ZIO programs to interfaces rather than concrete classes so different implementations can be swapped in without changing dependent code.
godropbox es un framework de desarrollo backend y blueprint de servicios para construir aplicaciones de servidor y microservicios consistentes en Go. Proporciona una colección de bibliotecas compartidas y patrones para estandarizar el proceso de desarrollo en múltiples proyectos. El proyecto incluye una biblioteca de inyección de dependencias que desacopla la lógica de negocio de las implementaciones mediante contratos de servicio basados en interfaces. También proporciona un conjunto de herramientas para compilar y desplegar aplicaciones Go como binarios estáticos autocontenidos en Linux. El framework cubre herramientas de aplicaciones empresariales, incluyendo primitivas compartidas para registro (logging), configuración y manejo de errores. Además, admite arquitectura de microservicios y orquestación de servicios en Linux para asegurar un comportamiento consistente en servicios interconectados.
Decouples high-level business logic from low-level implementations by programming to Go interfaces.
Este proyecto proporciona un conjunto de plantillas estructurales y frameworks para arrancar servidores de producción, backends de alto rendimiento, microservicios de Kubernetes y pipelines de IA utilizando el lenguaje de programación Go. Sirve como una arquitectura fundamental para construir infraestructura de alto rendimiento y servidores de producción escalables con enrutamiento y middleware integrados. El framework incluye una infraestructura especializada para desarrollar sistemas de generación aumentada por recuperación (RAG), enfatizando la inferencia de modelos locales y la soberanía de datos segura. Además, proporciona una plantilla de microservicio dedicada para despliegues contenerizados, centrándose en cuotas de recursos y gestión del ciclo de vida del servicio. El proyecto cubre áreas de capacidad amplias, incluyendo instrumentación de observabilidad para monitorear la salud del sistema, inyección de dependencias basada en interfaces y gestión de esquemas basada en migraciones para datos relacionales. También incorpora concurrencia basada en canales para gestionar tareas asíncronas y optimización del uso de recursos mediante perfiles de CPU y memoria.
Decouples business logic from external infrastructure by defining interface contracts for data storage and APIs.
This is a Go library providing a framework for managing repetitive task execution and implementing exponential backoff strategies. It serves as a concurrency tool designed to prevent system overload during failures by retrying operations with increasing delays. The project implements a retry strategy framework that manages attempt limits and timeouts during unstable network or system calls. It specifically provides an implementation of the exponential backoff algorithm to handle failing operations. The library covers reliability patterns for mitigating transient failures and service outages,
Decouples the retry logic from specific wait algorithms using interfaces to allow custom delay implementations.
CTMediator es un localizador de servicios dinámico y un framework de arquitectura modular para iOS. Funciona como un desacoplador de dependencias que permite dividir grandes proyectos en subproyectos y targets más pequeños e independientes para mejorar la organización y reducir los tiempos de compilación. El framework permite la comunicación entre estos módulos aislados utilizando un patrón de target-action. Utiliza búsquedas dinámicas en tiempo de ejecución para despachar solicitudes y enrutar acciones a módulos específicos sin requerir un proceso de registro de servicios manual durante el inicio. El sistema gestiona el intercambio de datos y la descomposición del proyecto mediante el enrutamiento de solicitudes basado en protocolos y un patrón mediador, asegurando que los componentes internos puedan comunicarse sin crear dependencias directas.
Removes direct dependencies between app modules using a target-action pattern for communication.
This project is a PHP interface library that provides a component interoperability layer. It consists of a set of framework-agnostic contracts and standardized definitions that enable different libraries to work together via a consistent contract. The library focuses on providing minimal shared interfaces and API definitions, allowing software components to be used across different PHP projects regardless of the underlying framework. This approach decouples application logic from concrete framework implementations. The project specifically covers service container abstraction and dependency
Provides generic interfaces that allow services to remain compatible across different components and versions.
This project is a comprehensive Python style guide and technical reference designed to promote the creation of clean, maintainable, and idiomatic code. It provides a set of opinionated guidelines and architectural patterns focusing on functional and declarative programming to reduce complexity and improve overall code quality. The guide establishes specific standards for naming conventions, module organization, and project layout. It emphasizes reducing object coupling by favoring modules and functions over deep class hierarchies and offers technical standards for writing docstrings and marku
Recommends using built-in serializable types to decouple components from custom object dependencies.