12 Repos
The process of retrieving and instantiating a registered service from a container, often using type inference.
Distinct from Dependency Resolution: Distinct from Package Dependency Resolution: focuses on runtime object retrieval from a DI container.
Explore 12 awesome GitHub repositories matching software engineering & architecture · Dependency Resolution. Refine with filters or upvote what's useful.
InversifyJS is an inversion of control framework and dependency injection library for TypeScript. It provides a centralized container to manage object lifecycles and automate the instantiation of classes and their dependencies. The library decouples software components by mapping unique identifiers to concrete implementations. This architecture separates object creation from business logic and allows for the replacement of real service implementations with mock objects during unit testing. The framework utilizes TypeScript decorators to provide metadata-driven injection and recursive depende
Automates the process of retrieving and instantiating registered services from a container using type inference.
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
Resolves dependencies by looking up registered service types in a central container at runtime.
tsyringe ist ein TypeScript-Dependency-Injection-Container und ein Inversion-of-Control-Framework. Es entkoppelt Klassenimplementierungen von der Objekterstellung, indem es Abhängigkeiten und Objektlebenszyklen mithilfe von Decorators und Metadaten verwaltet. Das Framework verfügt über ein hierarchisches Containersystem, bei dem untergeordnete Container unabhängige Registrierungsbereiche beibehalten und für die Abhängigkeitsauflösung auf übergeordnete Container zurückgreifen können. Es bietet ein Provider-System, das die Objektlebensdauer durch Singleton- und Transient-Instanziierungsregeln steuert. Das System unterstützt rekursive Konstruktor-Injektion und handhabt zirkuläre Abhängigkeiten mithilfe von Proxies. Es umfasst Funktionen für Token-basiertes Registry-Mapping, Multi-Implementierungs-Auflösung und automatisierte Ressourcenfreigabe für Objekte, die Cleanup-Interfaces implementieren.
Provides the process of retrieving and instantiating registered services from a container using unique tokens.
gore ist eine interaktive Shell und Read-Eval-Print-Loop für die Sprache Go. Sie dient als Prototyping-Tool, das die Auswertung von Ausdrücken, Anweisungen und Funktionsdeklarationen in einer terminalbasierten Schnittstelle ermöglicht, ohne einen vollständigen Build-Zyklus zu erfordern. Das Projekt integriert sich als Language-Server-Client, um intelligente Code-Vervollständigung, Echtzeit-Code-Vorschläge und automatische Paketimport-Auflösung bereitzustellen. Es zeichnet sich zudem dadurch aus, dass es temporäre Moduldateien generiert, um Abhängigkeiten aufzulösen und Remote-Repositories während einer Sitzung automatisch zu importieren. Das Tool enthält Funktionen für die Entwicklererfahrung, wie z. B. die Inspektion von Ausdruckstypen, das Abrufen von Symbol-Dokumentationen und das Filtern redundanter Compiler-Ausgaben. Die interaktive Sitzung wird durch Multi-Line-Block-Tracking, persistente Befehlshistorie und ANSI-basierte Terminal-Cursor-Verwaltung unterstützt.
Generates temporary module files to resolve dependencies in online and offline environments.
Maven ist ein Java-Build-Automatisierungstool und Software-Build-Orchestrator. Es fungiert als Projekt-Lifecycle-Manager und Dependency-Management-System, das ein standardisiertes Project Object Model verwendet, um Java-Projekte zu kompilieren, zu testen und zu paketieren. Das Projekt zeichnet sich durch einen phasenbasierten Build-Lifecycle und ein Plugin-basiertes Erweiterungsmodell aus, das es Benutzern ermöglicht, benutzerdefinierte Ziele an spezifische Build-Stufen zu binden. Es koordiniert komplexe Software durch Multi-Modul-Projekt-Orchestrierung und stellt einen reproduzierbaren Build-Workflow sicher, indem Umgebungsvariablen neutralisiert und Toolchain-Versionen kontrolliert werden. Die Funktionen decken ein umfassendes Dependency-Management ab, einschließlich transitiver Dependency-Auflösung und Artefakt-Publishing in Remote-Repositories. Das System bietet zudem Projektgenerierung durch Templates und detaillierte Dokumentationserstellung für API-Referenzen und Projektseiten. Das Tool enthält ein Command-Line-Interface mit Eingabevervollständigung und unterstützt die Offline-Build-Ausführung mittels eines lokalen Artefakt-Caches.
Resolves and fetches required external libraries from repositories while managing version conflicts and exclusions.
This project is a comprehensive set of architectural patterns, coding standards, and reference materials for AngularJS applications. It establishes a structural approach for separating business logic into injectable services and restricting document object model manipulation to directives. The guide provides a standardized framework for project organization through consistent naming conventions, directory hierarchies, and module structuring. It emphasizes the use of isolated scopes for component encapsulation and explicit array notation for dependency injection to ensure stability during code
Ensures data availability by resolving required dependencies via services before the corresponding view is displayed.
Awilix is a JavaScript dependency injection framework and inversion of control container. It provides a centralized system for registering and resolving services, decoupling application components by automating how dependencies are created and passed to the functions or classes that require them. The framework features an automatic module loader that scans the filesystem using glob patterns to register dependencies based on filenames and exports. It supports parameter-name-based injection and proxy-based resolution to manage how dependencies are delivered to constructors and functions. The s
Retrieves registered dependencies by name while utilizing type inference to ensure correct object shapes.
Stack is a build tool, package manager, and project bootstrapper for the Haskell language. It provides a consistent environment for compiling source code, managing project binaries, and executing programs. The system ensures reproducible builds through snapshot-based dependency resolution and manages the installation of specific compiler binaries to match project requirements. It utilizes content-addressable package storage and local-path caching to maintain the integrity of source code and avoid redundant downloads across different projects. The toolset covers the full development lifecycle
Ensures reproducible builds across different machines and time using precise frozen lists of package versions.
Neutrino ist ein Zero-Config-Build-Framework und Orchestrator für JavaScript-Projekte. Es dient als Framework für Build-Presets, das manuelle Konfigurationsdateien überflüssig macht, indem es ein „Convention-over-Configuration“-Modell zur Bereitstellung von Entwicklungsumgebungen nutzt. Das System fungiert als Preset-Manager, der komplexe Build-Tool-Einstellungen in wiederverwendbare Module kapselt. Diese Konfigurationen werden über eine kompositionierbare Build-Pipeline verwaltet, die mehrere Presets durch Zusammenführen und Überschreiben von Objekteigenschaften zu einer einzigen Ausführungskette kombiniert. Das Projekt deckt das Toolchain-Management für Frontends sowie die Standardisierung von Build-Prozessen ab. Es bietet die Möglichkeit, eigene Build-Presets zu erstellen, um konsistente Umgebungen über verschiedene Projekte und Teams hinweg zu gewährleisten.
Resolves build presets dynamically by locating and loading configuration modules from the project environment.
Swift Build ist ein modulares Build-System zur Orchestrierung der Software-Kompilierung. Es fungiert als Low-Level-Engine, die den gesamten Build-Lifecycle verwaltet, einschließlich Dependency-Resolution, Task-Scheduling und der Generierung von Binärdateien oder Bibliotheken. Durch eine entkoppelte Client-Server-Architektur trennt das System die Build-Engine von der Schnittstelle, um eine konsistente und isolierte Ausführung von Aufgaben zu ermöglichen. Das System zeichnet sich durch einen graphenbasierten Ansatz für das Task-Scheduling und eine persistente Datenbank aus, die Dateizustände verfolgt, um die Korrektheit inkrementeller Builds sicherzustellen. Es bietet eine strukturierte Umgebung für die Verwaltung komplexer Build-Pläne, ermöglicht die Validierung von Abhängigkeiten und die Durchsetzung spezifischer Sprachstandards. Diese Funktionen erlauben es dem System, komplexe Kompilierungsanforderungen bei gleichzeitiger Prozessisolierung über verschiedene Host-Konfigurationen hinweg zu bewältigen. Über die reine Kompilierung hinaus enthält das Toolset Utilities für das Debugging von Build-Prozessen, die Umgebungskonfiguration und die Integration externer Entwicklungstools. Es unterstützt zudem die Automatisierung des Paketmanagements und bietet Funktionen zur lokalen Generierung technischer Dokumentation. Das Projekt wird mit CLI-Tools ausgeliefert, die die Orchestrierung von Build-Zyklen und die Verifizierung der Build-Ergebnisse ermöglichen.
Inspects source code and metadata at runtime to discover and link necessary libraries and modules.
Kotlin-inject is a dependency injection framework for Kotlin that utilizes compile-time code generation to construct type-safe object graphs. By processing declarative annotations during the build process, the library eliminates the need for runtime reflection, ensuring that dependency resolution and validation occur before the application executes. The framework distinguishes itself through its native support for Kotlin Multiplatform, enabling consistent dependency management across shared and platform-specific codebases. It provides specialized mechanisms for assisted injection, allowing de
Provides type-safe dependency resolution by processing declarative annotations at compile time.
MoonBit is a programming language compiler and build system designed to translate source code into high-performance binaries for web, browser, and native environments. It provides a unified toolchain that manages the entire development lifecycle, from source code compilation and dependency management to the final bundling of applications. The platform distinguishes itself through a modular architecture that enables cross-environment logic sharing, allowing developers to maintain a single codebase that targets both WebAssembly and native machine code. By utilizing a strongly-typed intermediate
Tracks module relationships and source changes to rebuild only the necessary components during the compilation and bundling process.