Glide 35,023 (github.com/bumptech/glide (https://github.com/bumptech/glide 35,023 )) is written in Java, loads into ImageViews with Glide.with(context).load(url).into(view), and was long the usual choice for View-based apps. The current release is 5.0.9 (11 July 2026); its Compose 234 integration is still a beta (1.0.0-beta10) marked @ExperimentalGlideComposeApi:
GlideImage(
model = book.coverUrl,
contentDescription = null,
loading = placeholder(R.drawable.menu_book_24px),
failure = placeholder(ColorDrawable(0xFFB0BEC5.toInt())), // a Drawable, not a Painter
...
) { request ->
request.timeout(10_000) // Glide's default is 2,500 ms
.listener(glideLog(book.id))
}The trailing lambda gets Glide's RequestBuilder. The compose artifact declares Glide itself as a runtime dependency, so RequestListener did not compile until com.github.bumptech.glide:glide:5.0.9 was added. And the first run, without timeout, failed every Glide cover while Coil 11,909 's loaded:
I/Glide : Caused by: java.net.SocketTimeoutException: timeout D/BookNestImg: glide 5: failed com.bumptech.glide.load.engine.GlideException: Failed to load resource
Glide's HttpUrlConnection loader gives up after 2,500 ms, less than the server's three-second delay; Coil's OkHttp 47,077 client waits 10 seconds. With the timeout raised, Glide logged REMOTE, then DATA_DISK_CACHE after a restart, and also DATA_DISK_CACHE after a rotation, where Coil answered from memory.