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

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

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
InsertKoinIO avatar

InsertKoinIO/koin

0
View on GitHub↗
9,992 stars·785 forks·Kotlin·Apache-2.0·20 viewsinsert-koin.io↗

Koin

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 bindings and configuration errors.

Capability coverage extends to application dependency management across Android apps, server-side environments, and UI state handling. It integrates with platform-specific contexts such as Android application lifecycles, Jetpack Compose UI components, and Ktor server applications. Developer tooling includes IDE assistance for inspecting project dependencies and navigating configuration wiring.

Features

  • Dependency Injection Frameworks - Implements a lightweight inversion of control container to manage object lifetimes and resolve dependencies across Kotlin applications.
  • Android Dependency Management - Decouples application logic from UI components and platform services specifically for Android apps.
  • Kotlin Multiplatform DI - Manages shared object definitions and resource bindings across multiple target platforms using a unified Kotlin codebase.
  • Multiplatform Code Sharing - Enables declaring dependencies in common source sets to reuse object definitions across target platforms.
  • Dependency Injection Libraries - Enables the definition of shared object bindings that are reused across different target platforms and source sets.
  • Dependency Resolution - Allows sharing dependency definitions across different target platforms via a unified registry.
  • Dependency Injection - Decouples business logic from implementation details by injecting dependencies across multiple platforms.
  • Android Lifecycle Management - Integrates dependency injection with Android application lifecycle events for automated resource management.
  • Lazy Providers - Implements dependency providers that defer object instantiation until they are first requested.
  • Scoped Lifecycle Managers - Binds object lifetimes to specific application contexts to automate resource sharing and memory cleanup.
  • Dependency Graph Analyzers - Analyzes the dependency graph before execution to ensure all required providers are defined.
  • Server-Side Integration - Integrates a dependency container into Ktor server applications to manage shared resources and request-scoped objects.
  • Binding DSLs - Offers a concise DSL for creating and managing object bindings for dependency resolution.
  • Custom Binding Definitions - Provides a type-safe DSL for manually defining how dependencies are bound to their implementations.
  • UI Component Injection - Enables resolving dependencies directly within Jetpack Compose UI components to simplify state management.
  • Service Locators - Uses an internal map to store and resolve object definitions through a lookup mechanism.
  • Compile-Time Validators - Verifies the integrity of the dependency graph during the build process to detect missing providers.
  • Graph Validation - Checks for missing bindings and misconfigured modules at compile time to prevent runtime crashes.
  • UI Component Injectors - Allows resolving dependencies directly within UI components to decouple business logic from view implementations.
  • Component State Managers - Injects business logic and data providers directly into UI components to streamline state handling.
  • Server-Side Dependency Injection - Organizes shared resources and request-scoped objects within Kotlin server applications to improve modularity.
  • Dependency Injection - Koin - a pragmatic lightweight dependency injection framework for Kotlin

Star history

Star history chart for insertkoinio/koinStar history chart for insertkoinio/koin

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

Open-source alternatives to Koin

Similar open-source projects, ranked by how many features they share with Koin.
  • square/daggersquare avatar

    square/dagger

    7,281View on 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
    View on GitHub↗7,281
  • google/daggergoogle avatar

    google/dagger

    17,697View on GitHub↗

    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

    Java
    View on GitHub↗17,697
  • chrisbanes/tivichrisbanes avatar

    chrisbanes/tivi

    6,732View on GitHub↗

    Tivi is a cross-platform application for discovering and tracking television shows, built with Kotlin Multiplatform and Compose Multiplatform to share its user interface across Android, iOS, and desktop platforms. The app follows the Model-View-Intent (MVI) architecture pattern, where user actions are modelled as sealed class intents that reduce into a single immutable state object, ensuring predictable and unidirectional data flow managed through Kotlin coroutines and StateFlow. The application uses Hilt for compile-time dependency injection and SQLDelight for type-safe local data storage, c

    Kotlinandroid-applicationjetpack-composekotlin
    View on GitHub↗6,732
  • evant/kotlin-injectevant avatar

    evant/kotlin-inject

    1,503View on 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
    View on GitHub↗1,503
See all 30 alternatives to Koin→

Frequently asked questions

What does insertkoinio/koin do?

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.

What are the main features of insertkoinio/koin?

The main features of insertkoinio/koin are: Dependency Injection Frameworks, Android Dependency Management, Kotlin Multiplatform DI, Multiplatform Code Sharing, Dependency Injection Libraries, Dependency Resolution, Dependency Injection, Android Lifecycle Management.

What are some open-source alternatives to insertkoinio/koin?

Open-source alternatives to insertkoinio/koin include: square/dagger — Dagger is a compile-time dependency injection framework for Java and Android that automates object creation and… google/dagger — Dagger is a compile-time dependency injection framework for Java and Android applications. It automates the… chrisbanes/tivi — Tivi is a cross-platform application for discovering and tracking television shows, built with Kotlin Multiplatform… evant/kotlin-inject — Kotlin-inject is a dependency injection framework for Kotlin that utilizes compile-time code generation to construct… android/architecture-samples — This project is a collection of reference implementations demonstrating recommended patterns for organizing code and… autofac/autofac — Autofac is a dependency injection framework and inversion of control container for .NET. It functions as a component…