ZacSweers/metro
A multiplatform, compile-time dependency injection framework for Kotlin observed · 2026-08-28
Health v2 · maintenance only
84/100
- Activity 99
- Release rhythm 85
- Longevity 47
How is this computed?
round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10) — computed 2026-09-03. Adoption (stars, forks) is never an input.
- gap_med: 4
- age_days: 666
- days_rel: 20
- days_push: 7
- n_releases_24m: 78
Adoption not part of the score
1372 stars · 106 forks observed · 2026-08-28
What it is AI-extracted, prompt v1, taxonomy v1, 2026-08-30, confidence not recorded
Metro is a compile-time dependency injection framework for Kotlin Multiplatform, implemented as a Kotlin compiler plugin with FIR/IR code generation. It combines ideas from Dagger, Anvil, and kotlin-inject, supporting JVM, JS, Wasm, and Native targets without KAPT or KSP.
Use cases
- dependency injection in Kotlin Multiplatform projects
- catch DI graph errors at compile time instead of runtime
- migrate incrementally from Dagger or kotlin-inject
- avoid KAPT/KSP overhead with a compiler-plugin-based DI framework
- aggregate DI contributions across modules like Anvil
- share dependency graphs across JVM, JS, Wasm, and Native targets
When to choose
- you want fast, compile-time-validated DI in Kotlin Multiplatform
- you prefer a Kotlin-first API over Java-oriented Dagger
- you need Anvil-style contribution aggregation
- you want to incrementally migrate from Dagger, Guice, or kotlin-inject
When to avoid
- you need runtime or reflection-based DI like Guice or Koin
- your project is not on Kotlin 2.x with compiler plugin support
- you rely on Dagger features or ecosystems Metro does not yet support
- you need a very mature, battle-tested framework with a large community
Facets
library · maturity active
compiler build-tool developer-tools programming-languages developer-tools cross-platform compilers jvm wasm cli kotlin-multiplatform compiler-plugin dagger-alternative jsr-330 anvil code-generation compile-time-validation dependency-injection nodejs
2 sources
- readme: https://github.com/ZacSweers/metro · fetched 2026-08-28 · 58074eb98dc7
- homepage: https://zacsweers.github.io/metro/ · fetched 2026-08-29 · 36c6c3c2e4f9
Member repositories
| Repository | Role | Health v2 |
|---|---|---|
| ZacSweers/metro | main | 84 |
For agents
Data as of 2026-08-30T08:39:29.467469+00:00 · Report a problem