from Hacker News

Ask HN: What languages/ecosystems offer the smallest container sizes?

by nighmi on 7/13/23, 10:26 PM with 5 comments

(Inspired by this: https://news.ycombinator.com/item?id=36653340 and Whartung's observation that Linux forums used to bring up packaging the run time.)

What languages can fit in the smallest container with a functioning e.g. echo server?

More interestingly: What's the smallest production container you've seen and how was it accomolished?

You can build scratch containers with just a Go binary, which packages the runtime in about 1.5MB, not much more for an echo server.

With Racket (a Lisp/Scheme) you'd need to package a minimal OS like Alpine Linux and then minimal Racket (without the IDE etc.), giving you about 80MB.

I don't know Rust, but I've seen some containers around 10MB in it. I expect they can get much smaller when not packing so much functionality.

A quick Google shows a toy C container under 1KB! [1]

What's rhe smallest you can do with the JVM? Or Nim, Zig etc.? Perhaps a Fortran or Ada container? [1] https://blog.hypriot.com/post/build-smallest-possible-docker-image/

  • by gregjor on 7/14/23, 3:43 AM

    C, Rust, Go binaries are not containers, if you mean something like Docker. A VM is not a container either. You need to make a clearer distinction between compiled languages with no runtime (C), compiled languages with a runtime component (Go, Rust), languages that run in an interpreter with a runtime component (Python, Ruby, PHP), languages that run in a VM (Java, C#), and containers (Docker). You can run anything in a Docker container but you don't have to.
  • by sargstuff on 7/14/23, 12:26 AM

    0 byte container where network card hardwired to echo receiving information to serial line with screen attached & echoes display string back to sending IP.

    8 bit iot application : https://en.wikipedia.org/wiki/Contiki