awesome-repositories.com
Blog
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectAboutHow we rankPressMCP server
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
codegangsta avatar

codegangsta/inject

0
View on GitHub↗
978 stars·146 forks·Go·MIT·3 views

Inject

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 populates object properties by scanning for specific metadata tags during initialization.

The framework facilitates modular design through hierarchical container management, allowing child containers to delegate dependency lookups to parent scopes when a requested type is missing locally. This system supports interface-based resolution, ensuring that concrete implementations are correctly matched to requested types based on runtime evaluation.

Features

  • Dependency Injection Frameworks - Manages object lifecycles and wires complex dependencies in Go applications to improve modularity.
  • Reflection-Based Invocations - Executes functions by automatically resolving required arguments from mapped dependencies using reflection.
  • Dependency Injection Libraries - Provides a toolkit for managing object lifecycles and resolving dependencies using reflection and type-based mapping.
  • Dependency Injection Containers - Provides a dependency injection container that supports chaining and hierarchical resolution.
  • Reflection-Based Dependency Resolution - Matches concrete implementations to requested interface types using runtime reflection.
  • Hierarchical Containers - Supports nested container structures where child scopes inherit dependencies from parent containers.
  • Dependency Argument Injection - Automatically resolves and injects function arguments by inspecting signatures at runtime.
  • Function Invocation Mappings - Automates function execution by mapping dependencies to required parameters.
  • Struct Tags - Populates struct fields by scanning for metadata tags during object initialization.
  • Dependency Injection Population - Automatically populates struct fields with dependencies based on metadata tags.
  • Type-Based Dependency Mappings - Associates values with types to enable automatic retrieval and injection during runtime.

Star history

Star history chart for codegangsta/injectStar history chart for codegangsta/inject

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Curated searches featuring Inject

Hand-picked collections where Inject appears.
  • Go Dependency Injection Toolkits

Open-source alternatives to Inject

Similar open-source projects, ranked by how many features they share with Inject.
  • facebookarchive/injectfacebookarchive avatar

    facebookarchive/inject

    1,408View on GitHub↗

    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

    Go
    View on GitHub↗1,408
  • ets-labs/python-dependency-injectorets-labs avatar

    ets-labs/python-dependency-injector

    4,805View on GitHub↗

    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

    Pythonaiohttpasynciodependency-injection
    View on GitHub↗4,805
  • mvvmcross/mvvmcrossMvvmCross avatar

    MvvmCross/MvvmCross

    3,917View on GitHub↗

    MvvmCross is a .NET MVVM framework designed for building cross-platform applications by separating business logic from native user interfaces. It functions as a navigation engine and a UI data binding library, enabling the encapsulation of logic within view models that are reused across different operating systems. The framework provides a native hardware abstraction layer and a dependency injection container to decouple components and provide a consistent interface for accessing device features. It coordinates type-safe transitions between native screens and manages the synchronization of da

    C#androidc-sharpdotnet
    View on GitHub↗3,917
  • derekyrc/mini-springDerekYRC avatar

    DerekYRC/mini-spring

    6,360View on GitHub↗

    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

    Javamini-springspringspring-boot
    View on GitHub↗6,360
See all 30 alternatives to Inject→

Frequently asked questions

What does codegangsta/inject do?

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.

What are the main features of codegangsta/inject?

The main features of codegangsta/inject are: Dependency Injection Frameworks, Reflection-Based Invocations, Dependency Injection Libraries, Dependency Injection Containers, Reflection-Based Dependency Resolution, Hierarchical Containers, Dependency Argument Injection, Function Invocation Mappings.

What are some open-source alternatives to codegangsta/inject?

Open-source alternatives to codegangsta/inject include: facebookarchive/inject — Inject is a dependency injection framework for Go that automates the assembly of complex object graphs. By leveraging… ets-labs/python-dependency-injector — This is a dependency injection framework and inversion of control container for Python. It decouples object creation… mvvmcross/mvvmcross — MvvmCross is a .NET MVVM framework designed for building cross-platform applications by separating business logic from… jeffijoe/awilix — Awilix is a JavaScript dependency injection framework and inversion of control container. It provides a centralized… derekyrc/mini-spring — mini-spring is a Java dependency injection framework and inversion of control container. It manages the full lifecycle… apple/container — This project serves as a technical educational resource and software implementation example focused on dependency…