Library support for Kotlin coroutines with multiplatform support. Kotlin, as a language, provides only minimal low-level APIs in its standard library to enable various other libraries to utilize coroutines. Unlike many other languages with similar capabilities, async and await are not keywords in Kotlin and are not even part of its standard library. Moreover, Kotlin's concept of suspending function provides a safer and less error-prone abstraction for asynchronous operations than futures and promises. kotlinx.coroutines is a rich library for coroutines developed by JetBrains. It contains a number of high-level coroutine-enabled primitives that this guide covers, including launch, async and others. Coroutines can be thought of as light-weight threads, but there is a number of important differences that make their real-life usage very different from threads.
Features
- Use suspend functions to perform network requests
- Send requests concurrently using coroutines
- Share information between different coroutines using channels
- Coroutines confined to the main UI thread can freely update anything in UI and suspend without blocking the main thread
- Use UI coroutines with thread-blocking operations
- Core modules of kotlinx.coroutines are also available for Kotlin/JS and Kotlin/Native