title: Rust Installation on Windows for developing GUI apps
body: <h2>TL:DR;</h2>
  
  <p>Can I write GUI programs on Win 10 (64) using Rust without installing the full MinGW toolchain (nor the MS equivalent)?</p>
  
  <p><sub>
  Supplementary questions:
  </sub></p>
  
  <p><sub>
  - If not, should I just go ahead and install MinGW?
  </sub></p>
  
  <p><sub>
  - Does anything GNUish in <em>Windows 10 Anniversary Update</em> change any of this?
  </sub></p>
  
  <hr>
  
  <h2>Longer version</h2>
  
  <p>I <a href="https://stackoverflow.com/research/developer-survey-2016#technology-most-loved-dreaded-and-wanted">saw</a> that Rust is the most loved programming language hereabouts so 15 minutes ago...</p>
  
  <p>I <a href="https://www.rust-lang.org/en-US/downloads.html#win-foot" rel="nofollow noreferrer">read</a></p>
  
  <blockquote>
    <p>No additional software installation is necessary for basic use of the GNU build.</p>
    
    <p>Rust's support for the GNU ABI is more mature, and is recommended for typical uses.</p>
  </blockquote>
  
  <p>So I downloaded <code>Windows (GNU ABI †) (.msi) 64-bit</code> to my PC running Windows 10.</p>
  
  <h3>TUI</h3>
  
  <p>I read some basic intro and used <code>rustc</code> to compile a Hello World! and ran it OK. I then read about <code>cargo</code> and reorganised buit and ran the same code using that.</p>
  
  <h3>GUI</h3>
  
  <p>I then searched for <code>Rust GUI</code> and found <a href="https://users.rust-lang.org/t/kiss-ui-a-simple-ui-tookit-for-rust/1452" rel="nofollow noreferrer">Kiss_UI</a> </p>
  
  <blockquote>
    <p>a simple UI tookit for Rust</p>
  </blockquote>
  
  <p>So I did a <code>cargo new Hello_GUI --bin</code> and added</p>
  
  <pre><code>[dependencies.kiss-ui]
  git = "https://github.com/cybergeek94/kiss-ui"
  </code></pre>
  
  <p>to Cargo.toml</p>
  
  <p>I cut and pasted a simple example from that website into main.rs</p>
  
  <p>I then ran <code>cargo run --verbose</code>. It did </p>
  
  <pre><code>   Updating git repository `https://github.com/cybergeek94/kiss-ui`
      Updating registry `https://github.com/rust-lang/crates.io-index`
   Downloading iup-sys v0.0.3
   Downloading libc v0.2.14
   Downloading libc v0.1.12
     Compiling libc v0.1.12
  </code></pre>
  
  <p>...</p>
  
  <pre><code>warning: crate `Hello_GUI` should have a snake case name such as `hello_gui`, #[warn(non_snake_case)] on by default
  error: linking with `gcc` failed: exit code: 1
  note: "gcc" "-Wl,--enable-long-section-names" ...
  note: ld: cannot find -liup
  error: aborting due to previous error
  </code></pre>
  
  <p>So I learned two things</p>
  
  <ul>
  <li><p>I need to use snake case.</p></li>
  <li><p>GUI programming is not "basic use".</p></li>
  </ul>
  
  <p>I have no complaints about either of these points but could use a clue or two about the second:</p>
  
  <p>Assuming I want to write a GUI equivalent of Hello World in a simple way, what are my main options now?</p>