awesome-repositories.com
Blog
awesome-repositories.com

Découvrez les meilleurs dépôts open-source grâce à notre recherche par IA.

ExplorerRecherches sélectionnéesAlternatives open sourceLogiciels auto-hébergésBlogPlan du site
ProjetÀ proposNotre méthodologiePresseServeur MCP
Mentions légalesConfidentialitéConditions d'utilisation
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
google avatar

google/daggerFork

0
View on GitHub↗
17,697 stars·2,040 forks·Java·apache-2.0·2 vuesdagger.dev↗

Dagger

Dagger is a compile-time dependency injection framework for Java and Android applications. It automates the construction and wiring of object graphs by generating static source code during the build process, which eliminates the need for reflection or runtime bytecode generation.

The framework distinguishes itself by performing strict validation of the entire dependency structure before the application runs, ensuring that all required bindings are satisfied and identifying circular references early. It manages object lifecycles through scoped containers and supports lazy resolution, allowing developers to defer the instantiation of resources until they are explicitly requested.

The system provides comprehensive tools for managing complex object graphs, including support for environment-specific configurations, assisted injection, and the ability to swap production components with test-specific implementations. It also facilitates the aggregation of related objects and handles optional dependencies, providing a structured approach to resource allocation and memory management.

Features

  • Static Injection Frameworks - Constructs and validates object graphs for Java and Android applications using compile-time code generation.
  • Dependency Injection - Automates the construction and wiring of object graphs at compile time, eliminating the need for reflection or expensive runtime bytecode generation.
  • Mobile Injection Frameworks - Provides a platform-specific solution for managing object lifecycles and dependency provision in mobile applications.
  • Compile-Time Builders - The framework generates code to link annotated classes and modules into a complete dependency structure that serves as the central entry point for application components.
  • Dependency Graph Compilers - Performs strict compile-time checks to ensure all required dependencies are satisfied and the graph is complete before the final application is built.
  • Compile-Time Validators - Analyzes the entire dependency structure during compilation to detect missing bindings or circular references before the application runs.
  • Compile-Time Code Generation - Generates static factory classes and wiring logic during the build process to eliminate reflection and runtime overhead.
  • Build-Type Provisioning - The framework defines and provisions different object implementations for specific build types to ensure the correct logic runs in testing, debug, or production environments.
  • Metadata-Driven Dependency Injection - Uses metadata markers on constructors and fields to identify injection points and define how objects are provisioned.
  • Scoped Lifecycle Managers - Manages object lifecycles by storing instances within specific component containers to control memory usage and ensure proper reuse.
  • Dependency Injection Providers - The framework retrieves fresh objects or multiple instances by injecting providers that execute the binding logic on demand instead of relying on a single static value.
  • Component Builders - Exposes explicit interfaces for injecting runtime configuration values into the dependency graph during the initialization phase.
  • Assisted Injection Systems - Injects parameters provided at runtime into objects that also require dependencies already managed by the central dependency injection container.
  • Binding Replacements - Swaps production dependency bindings with test-specific implementations to simplify the verification of code during automated testing.
  • Android Libraries - Dependency injection framework for Java and Android.
  • Dependency Injection - Fast dependency injector for Android.
  • Lazy Providers - Wraps dependencies in functional interfaces to defer object creation until the exact moment they are requested by the application.
  • Dependency-Injected Configurations - The framework injects runtime data or configuration values into the dependency graph by passing them directly through the component builder during the initialization phase.
  • Dependency Qualifiers - Distinguishes between multiple bindings of the same type by using unique labels or identifiers to ensure the correct dependency instance is selected.
  • Lazy Initialization - Delays the instantiation of dependencies until they are explicitly requested to improve application startup speed.
  • Dependency Aggregators - The framework collects several related objects into a single group or map to inject them collectively without needing direct references to each individual item.
  • Custom Binding Definitions - Declares dependencies for interfaces, third-party classes, or configurable objects that cannot be automatically identified or injected through standard annotation scanning.
  • Optional Dependency Handlers - Enables components to function when certain dependencies are missing by injecting wrappers that indicate whether a specific binding is currently available.
  • Performance Optimization - Improves startup speed and memory usage by controlling object lifecycles and delaying the instantiation of heavy resources.
  • Directed Acyclic Graphs - Organizes object dependencies into a structured hierarchy to ensure all required components are instantiated in the correct order.
  • Testing Utilities - Provides specialized utilities to configure and inject dependencies within local or instrumentation test environments.
  • Binding Caching Strategies - Limits object instantiation frequency by caching bindings within specific components to reduce memory overhead.

Historique des stars

Graphique de l'historique des stars pour google/daggerGraphique de l'historique des stars pour google/dagger

Recherche par IA

Explorez plus de dépôts awesome

Décrivez vos besoins en langage naturel — l'IA classe des milliers de projets open source sélectionnés par pertinence.

Start searching with AI

Alternatives open source à Dagger

Projets open source similaires, classés selon le nombre de fonctionnalités partagées avec Dagger.
  • square/daggerAvatar de square

    square/dagger

    7,281Voir sur GitHub↗

    Dagger is a compile-time dependency injection framework for Java and Android that automates object creation and lifecycle management. It functions as a static dependency injector and graph validator, resolving object requirements during the build process to avoid runtime reflection and prevent crashes caused by missing bindings. The framework distinguishes itself by using static analysis and code generation to produce factory classes at build time. It employs qualifier-based type differentiation to manage multiple implementations of the same type and provides scope-based lifecycle management

    Java
    Voir sur GitHub↗7,281
  • insertkoinio/koinAvatar de InsertKoinIO

    InsertKoinIO/koin

    9,992Voir sur GitHub↗

    Koin is a dependency injection framework for Kotlin applications that manages object lifetimes and resolves dependencies through a lightweight container. It functions as a multiplatform library, allowing shared object definitions and resource bindings to be reused across different target platforms and source sets. The framework provides a system for resolving dependencies directly within user interface components to decouple business logic from view implementations. It includes a compile-time dependency validator that analyzes dependency graphs during the build process to detect missing bindi

    Kotlinandroiddependency-injectioninjection
    Voir sur GitHub↗9,992
  • evant/kotlin-injectAvatar de evant

    evant/kotlin-inject

    1,503Voir sur GitHub↗

    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

    Kotlindependency-injectionkotlin
    Voir sur GitHub↗1,503
  • quarkusio/quarkusAvatar de quarkusio

    quarkusio/quarkus

    15,479Voir sur GitHub↗

    Quarkus is a Kubernetes-native Java framework designed for building high-performance, memory-efficient applications. It utilizes ahead-of-time native compilation to transform Java code into standalone, optimized binaries that eliminate the need for a virtual machine, enabling rapid startup and reduced memory consumption. By performing code augmentation during the build phase, it shifts heavy processing tasks away from runtime, ensuring that applications are optimized for cloud-native environments. The framework distinguishes itself through a unified approach to reactive and imperative program

    Javacloud-nativehacktoberfestjava
    Voir sur GitHub↗15,479
Voir les 30 alternatives à Dagger→

Questions fréquentes

Que fait google/dagger ?

Dagger is a compile-time dependency injection framework for Java and Android applications. It automates the construction and wiring of object graphs by generating static source code during the build process, which eliminates the need for reflection or runtime bytecode generation.

Quelles sont les fonctionnalités principales de google/dagger ?

Les fonctionnalités principales de google/dagger sont : Static Injection Frameworks, Dependency Injection, Mobile Injection Frameworks, Compile-Time Builders, Dependency Graph Compilers, Compile-Time Validators, Compile-Time Code Generation, Build-Type Provisioning.

Quelles sont les alternatives open-source à google/dagger ?

Les alternatives open-source à google/dagger incluent : square/dagger — Dagger is a compile-time dependency injection framework for Java and Android that automates object creation and… insertkoinio/koin — Koin is a dependency injection framework for Kotlin applications that manages object lifetimes and resolves… evant/kotlin-inject — Kotlin-inject is a dependency injection framework for Kotlin that utilizes compile-time code generation to construct… quarkusio/quarkus — Quarkus is a Kubernetes-native Java framework designed for building high-performance, memory-efficient applications.… google/guice — Guice is a Java dependency injection framework and component container. It automates object wiring by mapping… dotnet/core — This project is a cross-platform development framework and managed runtime environment designed for building…