title: Why are Rust executables so huge?
body: <p>Just having found Rust and having read the first two chapters of the documentation, I find the approach and the way they defined the language particularly interesting. So I decided to get my fingers wet and started out with Hello world... </p>
  
  <p>I did so on Windows 7 x64, btw.</p>
  
  <pre><code>fn main() {
      println!("Hello, world!");
  }
  </code></pre>
  
  <p>Issuing <code>cargo build</code> and looking at the result in <code>targets\debug</code> I found the resulting <code>.exe</code> being 3MB. After some searching (documentation of cargo command line flags is hard to find...) I found <code>--release</code> option and created the release build. To my surprise, the .exe size has only become smaller by an insignificant amount: 2.99MB instead of 3MB.</p>
  
  <p>So, confessing I am a newbie to Rust and its ecosystem, my expectation would have been that a Systems Programming language would produce something compact.</p>
  
  <p>Can anyone elaborate on what Rust is compiling to, how it can be possible it produces such huge images from a 3 liner program? Is it compiling to a virtual machine? Is there a strip command I missed (debug info inside the release build?)? Anything else which might allow to understand what is going on?</p>