HACKER Q&A
📣 nighmi

What languages/ecosystems offer the smallest container sizes?


(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/


  👤 gregjor Accepted Answer ✓
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.

👤 sargstuff
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