{
  "note": "Every FROM must be one of these images pinned by its multi-arch index digest, or an earlier stage of the same Dockerfile. Write FROM <image>@<digest>. Ask in Discord before Oct 28 15:00 UTC to add one. Digests resolved Oct 24 2026; halloumee/speed-demon-rust added Oct 28 2026.",
  "images": [
    {"image": "debian:13-slim", "digest": "sha256:62bd423aeee912639ca8ee681c2b762cb3e25137e0a92b20be455898a9f034ad", "use": "runtime stage"},
    {"image": "python:3.13-slim", "digest": "sha256:d98cc29d3266e535dd9da1099688d9cb3ca4753813571e071763d17725460962", "use": "Python (the reference)"},
    {"image": "rust:1-slim-trixie", "digest": "sha256:1a939748a7cbab172de91a014e3804a97af1394a8c844faa67fce9401c4e40fb", "use": "Rust"},
    {"image": "rust:1-trixie", "digest": "sha256:931c2c0531a8b143e044f0f3914dfe802f15bb3d1955f0b657e9359327ac2ffc", "use": "Rust, full toolchain"},
    {"image": "halloumee/speed-demon-rust:1.99.1-trixie-llvm-tools", "digest": "sha256:13e4ee7135d8eac6c56476c7d1aee201f36479f4745fd5d0e6b4529f4e13251a", "use": "Rust, rust:1-trixie plus llvm-tools (llvm-profdata for PGO); source in harness/images/rust-llvm-tools"},
    {"image": "golang:1-trixie", "digest": "sha256:fbb7ae40b62ff8afe31662df570d39b4f5052ac32b90dae8e60d7657a20a74f4", "use": "Go"},
    {"image": "gcc:15", "digest": "sha256:eb5e64286ad47187b32bda75c6b6916166ecb41da56559b8b09e0001748d2cce", "use": "C and C++"},
    {"image": "gcc:16", "digest": "sha256:43978d7710a803d1c3d32f4117c1528ec7285a4ce2c0a51e982ec1a6e3d87d95", "use": "C and C++"},
    {"image": "eclipse-temurin:25-jdk", "digest": "sha256:2d5d5e9b533342a565907c84f47a2ec298c40cde7b13a3ca85d4950fa456a641", "use": "Java, Kotlin, Scala build"},
    {"image": "eclipse-temurin:25-jre", "digest": "sha256:dbb43d81099eec91e0800226ed2296d03146ee7857165b95112372ad0d67e87f", "use": "JVM runtime stage"},
    {"image": "ghcr.io/graalvm/native-image-community:25", "digest": "sha256:0d936f32bb8acb5bc60c41b33e05f064d7a6aaf36b726538296c54949bd4a3c0", "use": "GraalVM native-image"},
    {"image": "node:22-slim", "digest": "sha256:de170b39439eb0e5a3444ad7d60b015614a381e10fecae2e30ec9e735122f38d", "use": "JavaScript and TypeScript"},
    {"image": "node:24-slim", "digest": "sha256:55fb5f5a527ea2c5c4a95f963e48ef90aa38c7b346054fdc8ee9957a2b55d205", "use": "JavaScript and TypeScript"},
    {"image": "mcr.microsoft.com/dotnet/sdk:10.0", "digest": "sha256:747cbade5bfd918a175ac32f8f1d931edec2c7d0d5397a3de72eaef1ac1f66d2", "use": "C# and F# build"},
    {"image": "mcr.microsoft.com/dotnet/runtime:10.0", "digest": "sha256:0cf09aaccf6a9f68900aed4c73fb28fe25bb59ec85de4dea08ba02240a8635f3", "use": ".NET runtime stage"},
    {"image": "swift:6.2", "digest": "sha256:d6f8f6112e9a63da0a4a151d6b93acd16699d35c0b82531ac1a245f5af210197", "use": "Swift"},
    {"image": "haskell:9", "digest": "sha256:15aeb965021bf51853f95a2328291d169aa541c836ca76986b97297df817f293", "use": "Haskell"}
  ]
}
