// the find
coil-kt/coil
Image loading for Android and Compose Multiplatform.
Coil is the de facto image loading library for Android and Compose Multiplatform — it handles fetching, caching (memory + disk), decoding, and display, all built on Kotlin coroutines. If you're building an Android or KMP app that displays images from the network, this is the library you reach for first. Version 3.x extended the original Android-only library to cover iOS, desktop, and WASM via Compose Multiplatform.
The coroutine-native design means request lifecycle is tied to the caller's scope — cancellation just works, no manual cleanup. The dependency footprint is genuinely small: Kotlin, Coroutines, and Okio; no Rx, no Java streams baggage. The multiplatform architecture is well-structured with clean platform source sets rather than a thin wrapper around separate codebases. Binary compatibility is tracked via `.api` files in the repo, so you actually know when you're making a breaking change.
The Compose Multiplatform support is real but uneven — platform-specific decoders (BitmapFactory on Android, Skiko on other targets) mean behavior and supported formats diverge in ways the README glosses over. Animated image support (GIF, WebP, APNG) requires separate optional modules and the non-Android targets have thinner coverage. The disk cache is a rolling LRU by default with no built-in CDN cache-control header awareness, so you may fight it if your server sends short max-age values. Custom decoder/fetcher extension points are powerful but the documentation for building them trails the API surface — expect to read source.