rustc 1.84.1 e71f9a9a9 2025-01-27 -rwxr-xr-x 1 user user 9.1M hello
So 9.1 MB on my machine. And as I pointed out in a comment below, your release binary of 440k is still larger than necessary by a factor 2000x or so.
Windows 95 came on 13x 3.5" floppies, so 22MB. The rust compiler package takes up 240mb on my machine. That means rust is about 10x larger than a fully functional desktop OS from 30 years ago.
rustc 1.85.0 (4d91de4e4 2025-02-17) -rwxr-xr-x 1 user user 436K 21 Feb 17:17 main
What's your output for `rustup default`?
Also, what's your output when you follow min-sized-rust?
This is such a silly argument because nobody is optimizing compilers and standard libraries for Hello World utilities.
It's also ridiculous to compare debug builds in rust against release builds for something else.
If you want a minimum sized Hello World app in rust then you'd use nostd, use a no-op panic handler, and make the syscalls manually.
> The rust compiler package takes up 240mb on my machine. That means rust is about 10x larger than a fully functional desktop OS from 30 years ago.
Fortunately for all of us, storage costs and bandwidth prices have improved by multiple orders of magnitude since then.
Which is why we don't care. The added benefits of modern software are great.
You're welcome to go back and use a 30 year old desktop OS if you'd like, though.
The default settings don’t optimize for size, because for most people, this doesn’t matter. But if you want to, you can.
3.8M Feb 21 11:56 target/debug/helloworld
A release build is:
426K Feb 21 15:28 target/release/helloworld
If you use lto, codegen-units = 1 and strip then you get:
323K Feb 21 15:30 target/release/helloworld
This isn't true. It took me two seconds to create a new project, run `cargo build` followed by `ls -hl ./target/debug/helloworld`. That tells me it's 438K, not 3.7MB.
Also, this is a debug build, one that contains debug symbols to help with debugging. Release builds would be configured to strip them, and a release binary of hello world clocks in at 343K. And for people who want even smaller binaries, they can follow the instructions at https://github.com/johnthagen/min-sized-rust.
Older Rust versions used to include more debug symbols in the build, but they're now stripped out by default.