Because of similar naming of the Compose libraries, there is a some confusion between the different “variants” of Compose. Here is a quick overview that tries to give clarification:
The Compose Runtime is a library for manipulating and managing trees of data. This library can be used to manage UI tree nodes, but it’s a general purpose library, so it can be used with any kind of data.
It is developed as a Kotlin Multiplatform Library, which means that it could be ported to every target that Kotlin Multiplatform supports. Openly developed targets are Android, JVM and Web. Square is running an internal version of it on iOS.
This library contains basic things like @Composable, remember, mutableState, effects.
Compose Compiler Plugin¶
The Compose Compiler Plugin is a Kotlin Compiler Plugin that transforms all the @Composable functions and adds the needed calls to the Compose Runtime
Compose UI is a set of UI libraries for Android using Compose Runtime/Compose Compiler Plugin
Jetpack Compose is a UI Toolkit for Android developed by Google. It is using Compose Runtime/Compose Compiler Plugin and Compose UI
Compose for Web¶
Compose for Web is a UI Toolkit for Web developed by JetBrains written in Kotlin/JS. It is using the Compose Runtime and the Compose Compiler Plugin. It does not use Compose UI, because it uses Compose Wrappers for the HTML DOM UI Elements.
Compose for Desktop¶
Compose for Desktop is a UI Toolkit developed by JetBrains. It runs on the JVM and it is using Compose Runtime, Compose Compiler Plugin and a Compose UI version for desktop which is using Skia to target Windows, macOS, Linux. Additional it provides components for desktop specific apps like scrollbars or mouse support and Swing interop.
Compose Multiplatform is a Kotlin multiplatform project which is developed by JetBrains. It uses Jetpack Compose, Compose for Web and Compose for Desktop
Last update: December 7, 2021