awesome-repositories.com
Blog
MCP
awesome-repositories.com

Descubre los mejores repositorios open-source con nuestra búsqueda potenciada por IA.

ExplorarBúsquedas curadasAlternativas open-sourceSoftware autohospedableBlogMapa del sitio
ProyectoAcerca deCómo clasificamosPrensaServidor MCP
Aviso legalPrivacidadTérminos
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
facebookarchive avatar

facebookarchive/injectArchived

0
View on GitHub↗
1,408 estrellas·138 forks·Go·MIT·3 vistasgodoc.org/github.com/facebookgo/inject↗

Inject

Inject is a dependency injection framework for Go that automates the assembly of complex object graphs. By leveraging runtime reflection, the library dynamically inspects object structures to resolve and populate required dependencies, decoupling component initialization from business logic.

The framework manages object lifecycles through both singleton and factory-based provisioning. It maintains a central registry to share singletons across an application for consistent state, while also supporting the creation of unique, private instances to isolate state between different components.

To handle complex requirements, the system provides a named provider registry that allows for the disambiguation of multiple instances of the same type. It traverses dependency graphs to automatically wire components based on either type or specific string identifiers, reducing the need for manual initialization code.

Features

  • Dependency Injection Containers - Acts as a dependency injection container that manages object lifecycles and automatic component wiring.
  • Reflection-Based Dependency Resolution - Uses runtime reflection to dynamically inspect object structures and automatically populate dependencies.
  • Dependency Injection Frameworks - Provides a framework for automating the assembly of complex object graphs and decoupling component initialization.
  • Go DI Frameworks - Automates dependency resolution and wiring in Go applications using reflection-based initialization.
  • Dependency Injection - Automates the connection of complex object graphs by injecting required components into structures.
  • Engine Instance Isolation - Isolates state by generating unique, non-shared instances for specific dependencies.
  • Singleton Component Management - Manages singleton lifecycles by maintaining a central cache of shared instances for consistent state.
  • Unique Instance Provisioning - Supports factory-based provisioning to generate unique, non-shared object instances for state isolation.
  • Go Application Patterns - Structures Go applications by decoupling object creation from business logic to improve maintainability.
  • Automated Dependency Wiring - Wires object dependencies by automatically resolving connections based on types or names to simplify component setup.
  • Singleton Instance Sharing - Maintains shared singleton instances across the object graph to ensure consistent state and memory efficiency.
  • Named Dependency Resolution - Resolves ambiguity between multiple instances of the same type by linking requested names to specific providers.
  • Type-Based Dependency Mappings - Resolves dependencies by matching requested types against a registry of available providers.
  • Provider Registries - Implements a named provider registry to disambiguate multiple instances of the same type using string identifiers.
  • Go Struct Reflection Utilities - Provides reflection utilities for inspecting Go structures and managing object instances dynamically.
  • Dependency Graph Traversals - Provides automated traversal of dependency graphs to resolve complex object relationships and satisfy component requirements.

Historial de estrellas

Gráfico del historial de estrellas de facebookarchive/injectGráfico del historial de estrellas de facebookarchive/inject

Búsqueda con IA

Explora más repositorios increíbles

Describe lo que necesitas en lenguaje sencillo: la IA clasifica miles de proyectos open-source curados por relevancia.

Start searching with AI

Colecciones destacadas con Inject

Colecciones seleccionadas manualmente donde aparece Inject.
  • Dependency injection framework
  • Toolkits de inyección de dependencias para Go

Alternativas open-source a Inject

Proyectos open-source similares, clasificados según cuántas características comparten con Inject.
  • uber-go/fxAvatar de uber-go

    uber-go/fx

    7,354Ver en GitHub↗

    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

    Goapp-frameworkdependency-injectionframework
    Ver en GitHub↗7,354
  • uber-go/digAvatar de uber-go

    uber-go/dig

    4,470Ver en GitHub↗

    dig is a reflection-based dependency injection framework and object graph resolver for Go. It functions as a container that automatically satisfies type dependencies and manages the instantiation of complex networks of objects during application startup. The project utilizes a directed acyclic graph to determine the necessary sequence for object instantiation and employs interface-driven provider mapping to decouple concrete implementations from their satisfied interfaces. It resolves the object hierarchy through reflection-based type resolution and single-pass component wiring to ensure all

    Godependency-injectiondigo
    Ver en GitHub↗4,470
  • codegangsta/injectAvatar de codegangsta

    codegangsta/inject

    978Ver en GitHub↗

    Inject is a dependency injection library for Go that manages object lifecycles and wires application components by automating the provision of dependencies. It functions as a reflection-based container that maps specific values to their corresponding types, enabling the automatic retrieval and injection of objects into application logic. The library distinguishes itself through its ability to perform automatic function invocation, where it inspects function signatures at runtime to resolve and provide required arguments from a central registry. It also supports struct field injection, which p

    Go
    Ver en GitHub↗978
  • code4craft/tiny-springAvatar de code4craft

    code4craft/tiny-spring

    4,089Ver en GitHub↗

    tiny-spring is a Java inversion of control container and aspect-oriented programming framework. It provides a system for managing object lifecycles and dependency injection to decouple application components. The project features a bytecode proxy generator that enables method interception and behavioral modification for classes that do not implement interfaces. It uses pointcut expressions to match specific classes and methods for the execution of cross-cutting logic via dynamic proxies. The framework manages singleton components and resolves object dependencies using lazy initialization. Ap

    Java
    Ver en GitHub↗4,089
Ver las 30 alternativas a Inject→

Preguntas frecuentes

¿Qué hace facebookarchive/inject?

Inject is a dependency injection framework for Go that automates the assembly of complex object graphs. By leveraging runtime reflection, the library dynamically inspects object structures to resolve and populate required dependencies, decoupling component initialization from business logic.

¿Cuáles son las características principales de facebookarchive/inject?

Las características principales de facebookarchive/inject son: Dependency Injection Containers, Reflection-Based Dependency Resolution, Dependency Injection Frameworks, Go DI Frameworks, Dependency Injection, Engine Instance Isolation, Singleton Component Management, Unique Instance Provisioning.

¿Qué alternativas de código abierto existen para facebookarchive/inject?

Las alternativas de código abierto para facebookarchive/inject incluyen: uber-go/fx — Fx is a dependency injection framework and application lifecycle manager for Go. It functions as a component model… uber-go/dig — dig is a reflection-based dependency injection framework and object graph resolver for Go. It functions as a container… codegangsta/inject — Inject is a dependency injection library for Go that manages object lifecycles and wires application components by… code4craft/tiny-spring — tiny-spring is a Java inversion of control container and aspect-oriented programming framework. It provides a system… jeffijoe/awilix — Awilix is a JavaScript dependency injection framework and inversion of control container. It provides a centralized… autofac/autofac — Autofac is a dependency injection framework and inversion of control container for .NET. It functions as a component…