awesome-repositories.com
Blog
awesome-repositories.com

Entdecke die besten Open-Source-Repositories mit KI-gestützter Suche.

EntdeckenKuratierte SuchenOpen-Source-AlternativenSelf-hosted SoftwareBlogSitemap
ProjektÜber unsRanking-MethodikPresseMCP-Server
RechtlichesDatenschutzAGB
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
uber-go avatar

uber-go/fx

0
View on GitHub↗
7,354 Stars·330 Forks·Go·mit·16 Aufrufeuber-go.github.io/fx↗

Fx

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 naming, and aggregating multiple instances of the same type into named or typed groups.

Beyond dependency resolution, the system orchestrates the startup and shutdown sequences of singletons and background processes. It handles the bootstrapping of interlocking dependencies and provides mechanisms for blocking execution until stop signals trigger cleanup operations.

The project includes integration for custom logging to capture and format internal operational events of the dependency system.

Features

  • Automatic Constructor Injection - Automatically provides dependencies into constructors by analyzing function signatures.
  • Go DI Frameworks - Provides a full-featured dependency injection framework for Go that automates component wiring via constructors.
  • Lifecycle Sequence Orchestration - Orchestrates startup and shutdown sequences by executing hooks in the order of dependency resolution.
  • Dependency Injection Containers - Functions as a container that manages the instantiation and lifecycle of components to achieve loose coupling.
  • Go DI Frameworks - Provides a framework that automates component connection by analyzing constructor parameters and return values.
  • Application Bootstrapping - Automates the instantiation of interlocking dependencies to remove global state from the application startup process.
  • Application Lifecycle Management - Coordinates the precise startup and shutdown sequences of services to ensure correct resource initialization and cleanup.
  • Application Component Lifecycles - Provides a mechanism to manage the startup and shutdown sequences of application components to ensure correct resource ordering.
  • Dependency Injection - Provides required dependencies automatically to decouple implementation from instantiation.
  • Dependency Injection Containers - Implements a dependency injection container that resolves shared application state and maps concrete types to interfaces.
  • Dependency Injection - Maps concrete return types to interfaces so consumers remain decoupled from specific implementations.
  • Interface-to-Implementation Bindings - Maps concrete return types to interfaces to allow flexible implementation swapping.
  • DI Module Bundling - Encapsulates related constructors into modules to manage visibility and reuse across services.
  • Reflection-Based Dependency Resolution - Uses runtime type analysis to match requested dependencies with available providers.
  • Component Bundles - Provides the ability to group related constructors and logic into modules for simplified application assembly.
  • Execution Blocking - Blocks application execution until a stop signal triggers necessary cleanup operations.
  • Reusable DI Modules - Enables the creation of reusable component modules that can be integrated across different services.
  • Dependency Graph Pruning - Instantiates only the components necessary to satisfy the requirements of the root application process.
  • Group Value Injection - Assigns a typed result to a named collection so multiple components contribute values to a shared group.
  • Named Group Injection - Retrieves a collection of components of the same type by a named group to receive all registered instances.
  • Type-Based Group Injection - Collects multiple components of the same type into a slice and injects them as a group.
  • Modular Software Design - Organizes code into decoupled, reusable modules that bundle constructors and logic for better maintainability.
  • Module Encapsulation Patterns - Implements patterns for controlling constructor visibility and encapsulating internal implementation details within modules.
  • Named Dependency Groups - Aggregates multiple instances of the same type into slices using unique group identifiers.
  • Named Dependency Resolution - Assigns unique names to multiple instances of the same type to ensure the correct implementation is injected.
  • Application Entry Point Triggering - Executes root-level functions to start background workers or servers.
  • Dependency Injection - Application framework built on top of dependency injection.
  • Frameworks and Libraries - A dependency injection-based application framework.

Star-Verlauf

Star-Verlauf für uber-go/fxStar-Verlauf für uber-go/fx

KI-Suche

Entdecke weitere awesome Repositories

Beschreibe in einfachen Worten, was du brauchst — die KI bewertet tausende kuratierte Open-Source-Projekte nach Relevanz.

Start searching with AI

Open-Source-Alternativen zu Fx

Ähnliche Open-Source-Projekte, sortiert nach der Anzahl der gemeinsamen Funktionen mit Fx.
  • google/guiceAvatar von google

    google/guice

    12,734Auf GitHub ansehen↗

    Guice is a Java dependency injection framework and component container. It automates object wiring by mapping interfaces to implementations via a central injector, removing the need for manual factory patterns and constructor calls. The framework provides specialized support for aspect-oriented programming, allowing for the interception and modification of method execution to implement shared cross-cutting concerns. It also functions as a persistence manager to coordinate transaction boundaries and manage the lifecycle of entity managers within a dependency-injected environment. Its core cap

    Java
    Auf GitHub ansehen↗12,734
  • facebookarchive/injectAvatar von facebookarchive

    facebookarchive/inject

    1,408Auf GitHub ansehen↗

    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
    Auf GitHub ansehen↗1,408
  • uber-go/digAvatar von uber-go

    uber-go/dig

    4,470Auf GitHub ansehen↗

    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
    Auf GitHub ansehen↗4,470
  • samber/doAvatar von samber

    samber/do

    2,645Auf GitHub ansehen↗

    This project is a type-safe dependency injection framework for Go that manages application lifecycles and injects dependencies into structures using reflection and metadata tags. It functions as a service lifecycle manager and an interface binding library to decouple service consumption from concrete implementations. The framework utilizes a hierarchical service container, organizing services into a tree of nested scopes where child containers inherit dependencies from their ancestors. It includes a dependency graph visualizer for inspecting relationships and invocation chains, as well as a s

    Gocontainerdependencydependency-graph
    Auf GitHub ansehen↗2,645
Alle 30 Alternativen zu Fx anzeigen→

Häufig gestellte Fragen

Was macht uber-go/fx?

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.

Was sind die Hauptfunktionen von uber-go/fx?

Die Hauptfunktionen von uber-go/fx sind: Automatic Constructor Injection, Go DI Frameworks, Lifecycle Sequence Orchestration, Dependency Injection Containers, Application Bootstrapping, Application Lifecycle Management, Application Component Lifecycles, Dependency Injection.

Welche Open-Source-Alternativen gibt es zu uber-go/fx?

Open-Source-Alternativen zu uber-go/fx sind unter anderem: google/guice — Guice is a Java dependency injection framework and component container. It automates object wiring by mapping… facebookarchive/inject — Inject is a dependency injection framework for Go that automates the assembly of complex object graphs. By leveraging… uber-go/dig — dig is a reflection-based dependency injection framework and object graph resolver for Go. It functions as a container… samber/do — This project is a type-safe dependency injection framework for Go that manages application lifecycles and injects… dodyg/practical-aspnetcore — This project is a comprehensive sample library and implementation guide for ASP.NET Core. It provides a collection of… square/dagger — Dagger is a compile-time dependency injection framework for Java and Android that automates object creation and…