π¦ Compare the static binary size and memory usage of "Hello, World!" programs across various languages.
Note
This project automatically builds and records binary sizes/memory usage of "Hello, World!" implementations for various languages like C, C++, Rust, Go, Zig, Nim, V, and more β all statically linked!
![]() |
![]() |
![]() |
![]() |
To ensure fair and meaningful comparisons:
- β Each "Hello, World!" program must be idiomatic in its language (e.g. no inline assembly, etc.).
- β Output must be a simple "Hello, World!" to stdout.
- β Only statically linked binaries are allowed.
- β Standard toolchains only (no exotic or size-optimized forks).
- β Compiler optimizations (e.g. -Os, -s) are allowed and noted.
- Copy the src/_template directory and and rename it to match the language name (e.g.
src/go
,src/rust
). - Update
src/{lang}/flake.nix
to build a statically linkedhello
binary in that language. - Add the new language to the
inputs
andlangs
list in the top-level flake.nix. - Run
nix run
to build the new language and generate a report.
The goal of this project is to help me learn βοΈ Nix + Flakes by creating reproducible builds and comparing static binary sizes across languages.
View historical reports under ./.github/reports/