Brian Fox
09/14/2026, 6:53 PMPavel Kunyavskiy [JB]
09/14/2026, 6:54 PMhfhbd
09/14/2026, 6:55 PMBrian Fox
09/14/2026, 6:58 PMBrian Fox
09/14/2026, 6:59 PMBrian Fox
09/14/2026, 6:59 PMPavel Kunyavskiy [JB]
09/14/2026, 7:00 PMBrian Fox
09/14/2026, 7:00 PMhfhbd
09/14/2026, 7:01 PMPavel Kunyavskiy [JB]
09/14/2026, 7:02 PMVsevolod Tolstopyatov [JB]
09/14/2026, 7:37 PMk-c-e is like 20 times bigger (50 mb?). So maybe downloads-wise it is a reasonable number, but artifact-size-wise it contributes way too muchPavel Kunyavskiy [JB]
09/14/2026, 7:44 PMhfhbd
09/14/2026, 7:45 PMBrian Fox
09/14/2026, 8:01 PMBrian Fox
09/14/2026, 8:08 PMBrian Fox
09/14/2026, 8:09 PMhfhbd
09/14/2026, 8:16 PMaurimas
09/14/2026, 10:43 PMaurimas
09/14/2026, 10:44 PMaurimas
09/14/2026, 10:44 PMaurimas
09/14/2026, 10:45 PMPavel Kunyavskiy [JB]
09/15/2026, 7:03 AMhfhbd
09/15/2026, 7:36 AMBrian Fox
09/15/2026, 2:28 PMBrian Fox
09/15/2026, 2:28 PMBrian Fox
09/15/2026, 2:31 PMhfhbd
09/15/2026, 2:59 PMhfhbd
09/15/2026, 2:59 PMBrian Fox
09/15/2026, 3:34 PMPavel Kunyavskiy [JB]
09/15/2026, 3:35 PMVsevolod Tolstopyatov [JB]
09/16/2026, 1:56 PMBrian Fox
09/16/2026, 3:10 PMAdam S
09/17/2026, 5:19 AMBrian Fox
09/17/2026, 10:13 PMThe kotlin compiler embedded family moves as a unit — all three are downloaded together in Gradle Kotlin DSL builds:
┌──────────────────────────────────────┬───────────────┬───────────────┬────────────┐
│ Artifact │ JAR downloads │ POM downloads │ Unique IPs │
├──────────────────────────────────────┼───────────────┼───────────────┼────────────┤
│ kotlin-compiler-embeddable │ 46.4M │ 44.5M │ 3.7M │
├──────────────────────────────────────┼───────────────┼───────────────┼────────────┤
│ kotlin-daemon-embeddable │ 45.6M │ 43.9M │ 3.7M │
├──────────────────────────────────────┼───────────────┼───────────────┼────────────┤
│ kotlin-scripting-compiler-embeddable │ 37.0M │ 35.5M │ 3.5M │
├──────────────────────────────────────┼───────────────┼───────────────┼────────────┤
│ kotlin-compiler (fat jar) │ 1.6M │ 1.6M │ 286K │
├──────────────────────────────────────┼───────────────┼───────────────┼────────────┤
│ Total (jar+pom across all) │ ~255M │ │ │
└──────────────────────────────────────┴───────────────┴───────────────┴────────────┘
~8.5M downloads/day for just this component group.Brian Fox
09/17/2026, 10:14 PMUser Agent Breakdown (kotlin-compiler-embeddable, 30 days)
┌──────────────────────────┬───────────┬───────┬────────────┬─────────────┐
│ Proxy/Tool │ Downloads │ % │ Unique IPs │ UA variants │
├──────────────────────────┼───────────┼───────┼────────────┼─────────────┤
│ Gradle │ 85.0M │ 93.5% │ 3.68M │ 617,890 │
├──────────────────────────┼───────────┼───────┼────────────┼─────────────┤
│ Coursier (Scala) │ 3.0M │ 3.3% │ 39.7K │ 2 │
├──────────────────────────┼───────────┼───────┼────────────┼─────────────┤
│ Apache-Maven │ 2.5M │ 2.7% │ 153.9K │ 20,891 │
├──────────────────────────┼───────────┼───────┼────────────┼─────────────┤
│ Wget │ 59K │ 0.07% │ 7.4K │ 12 │
├──────────────────────────┼───────────┼───────┼────────────┼─────────────┤
│ curl │ 56K │ 0.06% │ 12.7K │ 87 │
├──────────────────────────┼───────────┼───────┼────────────┼─────────────┤
│ KotlinToolchain │ 16.6K │ 0.02% │ 4.7K │ 8 │
├──────────────────────────┼───────────┼───────┼────────────┼─────────────┤
│ Nexus (proxied) │ 27.8K │ 0.03% │ 4.7K │ — │
├──────────────────────────┼───────────┼───────┼────────────┼─────────────┤
│ Artifactory (proxied) │ 23.6K │ 0.03% │ 2.1K │ — │
├──────────────────────────┼───────────┼───────┼────────────┼─────────────┤
│ DCE-Services (Checkmarx) │ 9.3K │ 0.01% │ 67 │ — │
└──────────────────────────┴───────────┴───────┴────────────┴─────────────┘
Gradle owns this completely — 93.5% from 3.68M unique IPs. The 617,890 distinct UA variants is not chaos — it's Gradle's convention of embedding the Gradle version + JVM version + OS in every UA string, so every CI runner combination produces a unique UA. This is the Kotlin DSL build path: any build.gradle.kts file causes Gradle to fetch kotlin-compiler-embeddable to compile the DSL scripts at build time.Brian Fox
09/17/2026, 10:16 PMCloud Provider Breakdown (kotlin-compiler-embeddable JAR, 30 days)
┌───────────────────────────────┬───────────────┬───────┬────────────┐
│ Provider │ JAR Downloads │ % │ Unique IPs │
├───────────────────────────────┼───────────────┼───────┼────────────┤
│ Azure (ASN 8075 / Microsoft) │ 19.8M │ 42.6% │ 70.2K │
├───────────────────────────────┼───────────────┼───────┼────────────┤
│ Other (residential, ISP, VPS) │ 15.7M │ 33.9% │ 2.26M │
├───────────────────────────────┼───────────────┼───────┼────────────┤
│ AWS (ASN 14618, 16509) │ 8.1M │ 17.5% │ 1.17M │
├───────────────────────────────┼───────────────┼───────┼────────────┤
│ GCP (ASN 396982 / Google) │ 2.8M │ 6.0% │ 208.7K │
└───────────────────────────────┴───────────────┴───────┴────────────┘
Total cloud: 66.1%. Azure at 42.6% reflects GitHub Actions + Azure DevOps dominance for Kotlin/Android CI. The "Other" bucket at 33.9% but with 2.26M IPs is the long tail of individual developers, residential networks, and small VPS providers — highly distributed, low-volume per IP.Brian Fox
09/19/2026, 12:19 AMAdam S
09/21/2026, 12:43 PMAdam S
09/21/2026, 12:46 PMaurimas
09/21/2026, 12:47 PMhfhbd
09/21/2026, 12:47 PMaurimas
09/21/2026, 12:47 PMaurimas
09/21/2026, 12:48 PMBrian Fox
09/21/2026, 8:22 PM/maven2/org/jetbrains/kotlin/kotlin-compiler-embeddable/2.0.21/kotlin-compiler-embeddable-2.0.21.jar
280.58 TB
/maven2/org/jetbrains/kotlin/kotlin-compiler-embeddable/2.4.10/kotlin-compiler-embeddable-2.4.10.jar
148.94 TB
/maven2/org/jetbrains/kotlin/kotlin-compiler-embeddable/2.4.0/kotlin-compiler-embeddable-2.4.0.jar
146.75 TB
/maven2/org/jetbrains/kotlin/kotlin-compiler-embeddable/2.2.21/kotlin-compiler-embeddable-2.2.21.jar
136.67 TB
/maven2/org/jetbrains/kotlin/kotlin-compiler-embeddable/2.2.20/kotlin-compiler-embeddable-2.2.20.jar
Lets pick a few of these to put in your Github registry and we can try some limited rewrites to see how that goes. Or if you like, we can start with one further down the list, but I would like to make a move on it this week. The work in your other ticket to make everything smaller is still really important, but this has immediate impact on costs and there’s no real reason to wait.Vsevolod Tolstopyatov [JB]
09/23/2026, 1:02 PMMargarita Bobova
09/23/2026, 1:49 PMBrian Fox
09/23/2026, 1:50 PMBrian Fox
09/23/2026, 1:55 PMBrian Fox
09/23/2026, 2:51 PMVsevolod Tolstopyatov [JB]
09/23/2026, 2:56 PMBrian Fox
09/23/2026, 2:57 PMVsevolod Tolstopyatov [JB]
09/23/2026, 2:57 PMhfhbd
09/23/2026, 2:58 PMBrian Fox
09/23/2026, 2:59 PMVsevolod Tolstopyatov [JB]
09/23/2026, 3:00 PMBrian Fox
09/23/2026, 3:00 PMhfhbd
09/23/2026, 3:01 PMhfhbd
09/23/2026, 3:01 PMBrian Fox
09/23/2026, 3:01 PMVsevolod Tolstopyatov [JB]
09/23/2026, 3:01 PMBrian Fox
09/23/2026, 3:01 PMhfhbd
09/23/2026, 3:02 PMBrian Fox
09/23/2026, 3:02 PMBrian Fox
09/23/2026, 3:03 PMBrian Fox
09/23/2026, 3:03 PMhfhbd
09/23/2026, 3:56 PMBrian Fox
09/23/2026, 11:30 PMBrian Fox
09/23/2026, 11:31 PMMargarita Bobova
09/24/2026, 7:33 AMBrian Fox
09/24/2026, 1:58 PMBrian Fox
09/24/2026, 1:59 PMBrian Fox
09/24/2026, 1:59 PMVsevolod Tolstopyatov [JB]
09/24/2026, 3:02 PMBrian Fox
09/24/2026, 11:01 PMVsevolod Tolstopyatov [JB]
09/25/2026, 11:06 AMVsevolod Tolstopyatov [JB]
09/25/2026, 11:07 AMOliver.O
09/25/2026, 11:12 AMBrian Fox
09/25/2026, 1:00 PMBrian Fox
09/25/2026, 11:29 PMVsevolod Tolstopyatov [JB]
09/28/2026, 1:53 PMBrian Fox
09/28/2026, 1:57 PMBrian Fox
09/29/2026, 1:30 PMBrian Fox
09/29/2026, 1:31 PMBrian Fox
09/29/2026, 1:32 PMMargarita Bobova
09/29/2026, 2:35 PMBrian Fox
09/29/2026, 2:36 PMBrian Fox
09/29/2026, 2:38 PMBrian Fox
09/29/2026, 2:39 PMBrian Fox
09/30/2026, 1:45 AMMargarita Bobova
10/01/2026, 12:45 PM