Stability of Kotlin components | Kotlin (original) (raw)

The Kotlin language and toolset are divided into many components such as the compilers for the JVM, JS and Native targets, the Standard Library, various accompanying tools and so on. Many of these components were officially released as Stable, which means that they were evolved in a backward-compatible way following the principles of Comfortable Updates and Keeping the Language Modern.

Following the Feedback Loop principle, we release many things early for the community to try out, so a number of components are not yet released as Stable. Some of them are at a very early stage, some are more mature. We mark them as Experimental, Alpha or Beta depending on how quickly each component evolves and the level of risk users take on when adopting it.

Stability levels explained

Here's a quick guide to these stability levels and their meaning:

Experimental means "try it only in toy projects":

Alpha means "use at your own risk, expect migration issues":

Beta means "you can use it, we'll do our best to minimize migration issues for you":

We collectively refer to Experimental, Alpha and Beta as pre-stable levels.

Stable means "use it even in most conservative scenarios":

Please note that stability levels do not say anything about how soon a component will be released as Stable. Similarly, they do not indicate how much a component will be changed before release. They only say how fast a component is changing and how much risk of update issues users are running.

GitHub badges for Kotlin components

The Kotlin GitHub organization hosts different Kotlin-related projects. Some of them we develop full-time, while others are side projects.

Each Kotlin project has two GitHub badges describing its stability and support status:

Stability of subcomponents

A stable component may have an experimental subcomponent, for example:

We make sure to document precisely which subcomponents are not Stable. We also do our best to warn users where possible and ask to opt them in explicitly to avoid the accidental use of features that have not been released as stable.

Current stability of Kotlin components

Kotlin compiler

Component Status Status since version Comments
Kotlin/JVM Stable 1.0.0
Kotlin/Native Stable 1.9.0
Kotlin/JS Stable 1.3.0
Kotlin/Wasm Alpha 1.9.20
Analysis API Stable

Core compiler plugins

Kotlin libraries

Component Status Status since version Comments
kotlin-stdlib (JVM) Stable 1.0.0
kotlinx-coroutines Stable 1.3.0
kotlinx-serialization Stable 1.0.0
kotlin-metadata-jvm Stable 2.0.0
kotlin-reflect (JVM) Beta 1.0.0
kotlinx-datetime Alpha 0.2.0
kotlinx-io Alpha 0.2.0

Kotlin Multiplatform

Kotlin/Native

Component Status Status since version Comments
Kotlin/Native Runtime Stable 1.9.20
Kotlin/Native interop with C and Objective-C Beta 1.3.0
klib binaries Stable 1.9.20 Not including cinterop klibs, see below
cinterop klib binaries Beta 1.3.0
CocoaPods integration Stable 1.9.20

Language tools

Component Status Status since version Comments
Scripting syntax and semantics Alpha 1.2.0
Scripting embedding and extension API Beta 1.5.0
Scripting IDE support Beta Available since IntelliJ IDEA 2023.1 and later
CLI scripting Alpha 1.2.0

Language features and design proposals

For language features and new design proposals, see Kotlin language features and proposals.

Last modified: 04 April 2025