Glide

Glide, the Established Alternative

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:

ui/CoverImages.kt: the same cover through Glide (excerpt)Kotlin
  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:

Output of 118
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.