softwaremill/macwire
This system is a Scala library providing macro-based dependency injection and automatic wiring for various frameworks. It supports Scala 2 and 3, offering features like autowiring, scoped dependencies, and aspect-oriented proxying. The library integrates with Akka, Pekko, Cats Effect, and web frameworks like Play and Scalatra, while also providing utilities for actor creation and resource management.
56.1
Adequate · 3 August 2026
4k
lines of production code
Scala
primary language
2
bus factor · 45 authors in all
3
measurements over time
How it got here
2013–2015 · MacWire 2.0 and modernization
This period focused on modernizing the project's build infrastructure and introducing MacWire 2.0 features, including a Scala 3 implementation and AOP proxying for scoped dependencies. The team expanded test coverage for macro wiring and added new examples for Play 2.4 and Scala.js to demonstrate the updated dependency injection capabilities.
17 changes
2016–2021 · Scala 3 support and Cats integration
This period focused on extending the Macwire library to support Scala 3 and the Cats Effect ecosystem. The work involved implementing macro internals for Scala 3, adding autowiring for Cats Resource types, and establishing a robust compile-time test infrastructure to validate error handling and edge cases across both Scala versions.
15 changes
2023–2024 · Scala 3 and Pekko macro support
This period focused on expanding the Macwire library with new Scala 3 macro implementations for dependency injection, including autowire and wire functionality. It also introduced support for Apache Pekko actor wiring and added comprehensive test coverage for both the new Scala 3 features and the Pekko integration.
5 changes
Survey your own repository
softwaremill/macwire was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point the surveyor at a repository you know and see whether you agree with it.
About this page
- The description of this project is derived from its own commit history, not from its README.
- The score is its highest published measurement, taken on 3 August 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 848ac13ef7 — the exact code this score is about.
- Scored under rubric rubric-2026.08.18. Score the same commit under that rubric and you get the same number.