Kotlin 2.1.20, the latest release of JetBrains’ cross-platform programming language, introduces significant improvements in compiler plugin support and debugging capabilities, particularly for Kotlin’s K2 compiler and the Kotlin/WebAssembly (Wasm) toolchain. Announced on March 20, this update builds on previous efforts to streamline development workflows, enhance performance, and strengthen platform interoperability.
A major highlight of this release is the bolstered support for the K2 compiler through updated kapt and Lombok plugins. Notably, the kapt plugin is now enabled by default for all projects, reflecting JetBrains’ commitment to maintaining compatibility and stability even as kapt remains in maintenance mode. The experimental Lombok plugin, aimed at enabling Java Lombok declarations in Kotlin projects, gains support for the @SuperBuilder
annotation, which simplifies the creation of builders in class hierarchies—an important step for mixed-language projects that rely on advanced object construction patterns.
The Kotlin/Wasm target sees a substantial boost in debugging capabilities with version 2.1.20. Developers can now take advantage of improved property usage and built-in support for custom formatters in development builds. Additionally, support for DWARF (Debugging With Arbitrary Record Format) data enables more insightful inspection of compiled code. This metadata can be embedded directly into the WebAssembly binary, allowing various debuggers and virtual machines to interpret and display detailed runtime information about Kotlin/Wasm programs.
Beyond compiler enhancements, Kotlin 2.1.20 delivers updates across other areas of the language ecosystem. The Compose compiler now loosens restrictions on @Composable
functions, and its Gradle plugin will include source information by default to unify behavior across all supported platforms, including Android. The standard library sees experimental additions such as cross-platform atomic types, enhanced UUID support, and new APIs for time-tracking. For Kotlin/Native, an inlining optimization pass aims to improve performance, while Kotlin Multiplatform introduces a new DSL that replaces the older Gradle Application plugin, signaling a continued investment in simplifying cross-platform development.