12 个仓库
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 是一个 TypeScript 依赖注入容器和控制反转框架。它通过使用装饰器和元数据管理依赖项和对象生命周期,将类实现与对象创建解耦。 该框架具有层级容器系统,其中子容器可以维护独立的注册作用域,并回退到父容器进行依赖解析。它提供了一个通过单例和瞬态实例化规则控制对象寿命的提供程序系统。 该系统支持递归构造函数注入,并使用代理处理循环依赖。它包括用于基于令牌的注册表映射、多实现解析以及为实现清理接口的对象提供自动资源处置的功能。
Provides the process of retrieving and instantiating registered services from a container using unique tokens.
gore 是一个 Go 语言的交互式 Shell 和读取-求值-打印循环(REPL)。它作为一个原型设计工具,允许在终端界面中评估表达式、语句和函数声明,而无需完整的构建周期。 该项目作为语言服务器客户端集成,提供智能代码补全、实时代码建议和自动包导入解析。它通过生成临时模块文件来解析依赖,并在会话期间自动导入远程仓库,从而脱颖而出。 该工具包含提升开发者体验的功能,如表达式类型检查、符号文档检索以及过滤冗余的编译器输出。交互式会话支持多行块跟踪、持久化命令历史记录以及基于 ANSI 的终端光标管理。
Generates temporary module files to resolve dependencies in online and offline environments.
Maven 是一个 Java 构建自动化工具和软件构建编排器。它作为一个项目生命周期管理器和依赖管理系统,使用标准化的项目对象模型(POM)来编译、测试和打包 Java 项目。 该项目以基于阶段的构建生命周期和基于插件的扩展模型为特色,允许用户将自定义目标绑定到特定的构建阶段。它通过多模块项目编排来协调复杂的软件,并通过中和环境变量和控制工具链版本来确保可重复的构建工作流。 其功能涵盖全面的依赖管理,包括传递依赖解析和向远程仓库发布构件。该系统还通过模板提供项目生成,并为生成 API 参考和项目站点提供详细的文档生成功能。 该工具包含一个带有输入补全功能的命令行界面,并支持使用本地构件缓存进行离线构建执行。
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 是一个用于 JavaScript 项目的零配置构建框架和编排器。它充当构建预设框架,通过使用“约定优于配置”模型来引导开发环境,从而消除了手动设置文件。 该系统充当预设管理器,将复杂的构建工具设置封装为可复用的模块。这些配置通过可组合的构建管线进行管理,该管线通过合并和覆盖对象属性,将多个预设组合成一个执行链。 该项目涵盖了前端工具链管理和构建过程标准化。它提供了创建自定义构建预设的能力,以在不同项目和团队之间保持一致的环境。
Resolves build presets dynamically by locating and loading configuration modules from the project environment.
Swift Build 是一个模块化构建系统,旨在编排软件项目的编译。它作为一个底层引擎,管理整个构建生命周期,包括依赖解析、任务调度以及可执行二进制文件或库的生成。通过利用解耦的客户端-服务器架构,该系统将构建引擎与接口分离,以促进一致且隔离的任务执行。 该系统通过基于图的任务调度方法和跟踪文件状态以确保增量构建正确性的持久化数据库脱颖而出。它为管理复杂的构建计划提供了结构化环境,允许验证任务依赖关系并强制执行特定的语言标准。这些能力使系统能够在保持跨不同主机配置的进程隔离的同时,处理复杂的编译需求。 除了核心编译外,该工具集还包括用于构建过程调试、环境配置以及集成外部开发工具的实用程序。它还支持包管理的自动化,并提供在本地呈现技术文档的功能。该项目随附命令行接口,允许编排构建周期并验证构建输出。
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.