Ross ROSS = Recommend OSS · open-source software intelligence for agents

ZacSweers/metro

A multiplatform, compile-time dependency injection framework for Kotlin observed · 2026-08-28

github.com/ZacSweers/metro · homepage · Kotlin · Apache-2.0 (permissive) 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

Full methodology

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

Member repositories

RepositoryRoleHealth v2
ZacSweers/metromain84

For agents

markdown · JSON · MCP: product_card(name="ZacSweers/metro")

Data as of 2026-08-30T08:39:29.467469+00:00 · Report a problem