scala/scala-async
58.2
Adequate · 28 September 2026
156
lines of production code
Scala
primary language
2
measurements over time
What this system is
This system is a Scala library that provides async/await support for Futures by transforming code into state machines via the compiler's -Xasync flag. It enables developers to write sequential-looking asynchronous code and includes utilities for exception handling and Future composition. The project supports cross-compilation for Scala 2.12 and 2.13 on JVM and Scala.js platforms.
Features
Introduce async/await support for Scala Futures
Adds the \scala.async\ library, enabling non-blocking asynchronous code blocks via \async { ... }\ and \await(...)\. This feature relies on the Scala compiler's \-Xasync\ flag to transform code into a state machine, allowing developers to write sequential-looking code that executes asynchronously without blocking threads. The implementation includes the \Async\ macro and the underlying \FutureStateMachine\ runtime class.
src/main · high confidence
Removals
Removal of the legacy scala.async macro implementation
The \scala.async\ package, including the \Async.scala\ macro implementation and \AsyncUtils.scala\ helper trait, has been removed from the codebase. This eliminates the previous state-machine-based transformation logic for \async\/\await\ expressions, meaning any code relying on this specific macro implementation will no longer compile or function as it did previously.
src/async · high confidence
Behavioural changes
Project restructured with Apache 2.0 license and updated documentation
The project has been relicensed from the 3-clause BSD license to the Apache License 2.0, accompanied by the addition of standard LICENSE and NOTICE files. The repository structure has been updated with a new .gitignore, a CODE\_OF\_CONDUCT.md referencing the Scala community standards, and a detailed CONTRIBUTING.md that explains the build process, contributor agreement, and debugging options. The README has been expanded to document usage for scala-async 1.0, including specific SBT and Maven dependency configurations and compiler flags (-Xasync).
(repo-wide) · high confidence
Test coverage
Added test suite for async exception handling and Future composition
Added new test files in src/test/scala/scala/async to verify the behavior of the async library. ExceptionalTest ensures that fatal errors are not caught as failed futures during async and Future operations. FutureSpec validates Future composition with custom ExecutionContexts, for-comprehensions, and exception recovery mechanisms. SmokeTest provides a basic sanity check for async/await functionality, and TestUtil introduces helper classes like TestLatch and utility methods for testing.
src/test · high confidence
Dependencies
Upgrade to Scala 2.13.18 and 2.12.21 with cross-compilation support
The build configuration has been updated to support Scala versions 2.13.18 and 2.12.21, enabling cross-compilation for both JVM and Scala.js platforms. This change also includes updates to test dependencies, specifically JUnit 4.13.2 and junit-interface 0.13.3, and configures the project to export OSGi packages with versioning.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 56 → 58 (+2.7)
- Rubric changed (rubric-2026.09.8 → rubric-2026.09.16) — scores are not directly comparable.
Lenses
- Code Health 99 → 99 (+0.0)
- Architecture 69 → 69 (+0.0)
- Maturity 54 → 54 (+0.0)
- Readiness 46 → 51 (+5.6)
- Security 72 → 72 (+0.0)
Resolved (2)
- Documentation: no architecture or design documentation (README.md)
- Off-boarding risk: anonymized user #1
New (1)
- Off-boarding risk: anonymized user #1
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
scala/scala-async 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 a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 28 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit af48469c614a60afbada02aba5ba23085f8d7ada — the exact code this score is about.
- Scored under rubric-2026.09.16 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-2d9048c36d26.