<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Rust Studio</title>
    <description>The latest articles on DEV Community by Rust Studio (@suststudio).</description>
    <link>https://dev.to/suststudio</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4228700%2Ffd1b1195-ae47-40f2-8a41-3ce42ac80040.png</url>
      <title>DEV Community: Rust Studio</title>
      <link>https://dev.to/suststudio</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/suststudio"/>
    <language>en</language>
    <item>
      <title>What's new in Ruststudio 0.1.3, and where a Rust-native IDE can go next</title>
      <dc:creator>Rust Studio</dc:creator>
      <pubDate>Sat, 07 Nov 2026 06:09:18 +0000</pubDate>
      <link>https://dev.to/suststudio/whats-new-in-ruststudio-013-and-where-a-rust-native-ide-can-go-next-2jf4</link>
      <guid>https://dev.to/suststudio/whats-new-in-ruststudio-013-and-where-a-rust-native-ide-can-go-next-2jf4</guid>
      <description>&lt;p&gt;A few weeks ago I introduced &lt;a href="https://www.ruststudio.org" rel="noopener noreferrer"&gt;Ruststudio&lt;/a&gt;, a free IDE for Rust that is itself written in Rust. Version 0.1.3 is out. It is a small release on purpose, so this post covers what changed, a tour of what the IDE does today, and the directions I am thinking about. Where something is an idea and not shipped, I say so.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is new in 0.1.3
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Sign-up and sign-in happen inside the app.&lt;/strong&gt;&lt;br&gt;
Ruststudio is free. After the first week it asks you to sign up, and before 0.1.3 that sent you to a web page and left the app unaware that you had finished. Now a form opens in the window. You enter your details, get a six-digit code by e-mail, type it in, and that copy is linked to your account straight away. There is no password to create. The free-week dialog, the account button and &lt;em&gt;Help &amp;gt; Sign Up / Account&lt;/em&gt; all use the same form.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Sign out, when you are signed in.&lt;/strong&gt;&lt;br&gt;
Once your copy is linked, the account menu shows &lt;em&gt;My account&lt;/em&gt; and &lt;em&gt;Sign out&lt;/em&gt;, not Sign up and Sign in. Sign out asks first, tells the server to unlink this install, and only then clears the signed-in state. If the server cannot be reached you stay signed in, so the app never says "signed out" while the next check quietly signs you back in. Your account is untouched, and you can link again whenever you like.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. The sign-up dialog no longer flickers.&lt;/strong&gt;&lt;br&gt;
On Windows, showing a message box runs a nested message loop, and the app's poll timer kept firing inside it, so the "free week is over" dialog opened again on every tick. The fix is a guard plus a test that opens the gate and asserts exactly one dialog. If you hit the flicker in 0.1.2, that is why.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Linux downloads carry the version.&lt;/strong&gt;&lt;br&gt;
The Linux tarball, the .deb and the install folder now include the version number, with a .sha256 next to each, so you can keep several versions side by side and verify what you downloaded.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. The app trusts your system certificate store.&lt;/strong&gt;&lt;br&gt;
Some company networks inspect HTTPS with their own root certificate. The update check and sign-up now use the operating system's trust store, so they work there too.&lt;/p&gt;

&lt;h2&gt;
  
  
  A tour of what is in the IDE today
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Editor&lt;/strong&gt; with rust-analyzer: diagnostics, completion, hover, go to definition, format, Find/Replace, Go to Symbol.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Solutions.&lt;/strong&gt; A .rssln file lists several projects, a startup project and Debug/Release. A generated workspace Cargo.toml keeps Cargo happy, so nothing about your repository is locked in.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Run menu:&lt;/strong&gt; build, run, test, clippy, doc, with a Problems panel and an integrated terminal.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Debugger&lt;/strong&gt; (lldb-dap) with threads and an Immediate window, plus &lt;strong&gt;database connectors&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Templates&lt;/strong&gt; for web (an axum back end with React, Vue, Svelte or Angular), desktop, native Android (no web view), libraries, CLIs, and samples such as a 100k-row data grid.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Packages in one place:&lt;/strong&gt; crates (including rupm, a registry with revocable tokens), NuGet for native libraries, and npm, pnpm, yarn and bun for the front end.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cargo Cleaner&lt;/strong&gt; finds every target folder and cargo cache on the disk and deletes only those.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI assistant&lt;/strong&gt; that works with many providers, including local Ollama and LM Studio, using your own keys.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Possibilities I am exploring
&lt;/h2&gt;

&lt;p&gt;These are &lt;strong&gt;not&lt;/strong&gt; shipped. They are what I would like to build next, and I would like to hear which matter to you.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A running-app monitor.&lt;/strong&gt; CPU, memory and thread count of the program you launched, next to the output panel, so you can see a leak or a runaway loop without leaving the IDE.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Live variable values.&lt;/strong&gt; Refreshing the variables view at breakpoints and steps, and a light profiler view on top of it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;iOS next to Android.&lt;/strong&gt; The Android template is native, with no web view. I would like iOS to be native in the same way, with build commands driven from the IDE instead of opening Xcode. That needs a Mac for the build, so it is a separate effort.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Older Linux support.&lt;/strong&gt; The current .deb is built on a recent Ubuntu, so it needs a recent glibc. Building against an older one would let it install on more distributions.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;Ruststudio is free for Windows, macOS and Linux and installs per user, without administrator rights. On Linux and macOS, install Rust with &lt;a href="https://rustup.rs" rel="noopener noreferrer"&gt;rustup&lt;/a&gt;; the Windows installer can offer to do it for you.&lt;/p&gt;

&lt;p&gt;Download: &lt;a href="https://www.ruststudio.org" rel="noopener noreferrer"&gt;https://www.ruststudio.org&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you try 0.1.3, tell me what is missing. The feedback button in the app goes straight to me.&lt;/p&gt;

</description>
      <category>rust</category>
      <category>ide</category>
      <category>showdev</category>
      <category>tooling</category>
    </item>
    <item>
      <title>I ran the same three programs in six languages. Rust did not win all of them.</title>
      <dc:creator>Rust Studio</dc:creator>
      <pubDate>Thu, 05 Nov 2026 14:00:26 +0000</pubDate>
      <link>https://dev.to/suststudio/i-ran-the-same-three-programs-in-six-languages-rust-did-not-win-all-of-them-24h8</link>
      <guid>https://dev.to/suststudio/i-ran-the-same-three-programs-in-six-languages-rust-did-not-win-all-of-them-24h8</guid>
      <description>&lt;p&gt;"Rust is fast" is true often enough that people stop checking. While building Ruststudio (an IDE for Rust, written in Rust) I wanted a page that tells newcomers when Rust is worth the learning curve, so I measured instead of repeating slogans.&lt;/p&gt;

&lt;p&gt;The setup: three small programs, written the same way in Rust, Go, C#, Java, Node and Python. Each prints a checksum, and all six languages print the same one, so they did the same work. Each ran three times at below-normal priority; I report the median. Machine: i7-10750H, 12 logical cores, Windows 11. Rust 1.93, Go 1.26.5, .NET 10, OpenJDK 17, Node 22, Python 3.13. Start-up time is included, so Java and C# pay for starting their runtime.&lt;/p&gt;

&lt;h2&gt;
  
  
  Speed (seconds, lower is better)
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Rust&lt;/th&gt;
&lt;th&gt;Go&lt;/th&gt;
&lt;th&gt;C#&lt;/th&gt;
&lt;th&gt;Java&lt;/th&gt;
&lt;th&gt;Node&lt;/th&gt;
&lt;th&gt;Python&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Mandelbrot 800x800&lt;/td&gt;
&lt;td&gt;0.09&lt;/td&gt;
&lt;td&gt;0.09&lt;/td&gt;
&lt;td&gt;0.17&lt;/td&gt;
&lt;td&gt;0.18&lt;/td&gt;
&lt;td&gt;0.15&lt;/td&gt;
&lt;td&gt;2.74&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Primes below 20 million&lt;/td&gt;
&lt;td&gt;0.16&lt;/td&gt;
&lt;td&gt;0.18&lt;/td&gt;
&lt;td&gt;0.23&lt;/td&gt;
&lt;td&gt;0.24&lt;/td&gt;
&lt;td&gt;0.26&lt;/td&gt;
&lt;td&gt;1.15&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Word count, 3 million words&lt;/td&gt;
&lt;td&gt;0.81&lt;/td&gt;
&lt;td&gt;0.43&lt;/td&gt;
&lt;td&gt;0.47&lt;/td&gt;
&lt;td&gt;0.55&lt;/td&gt;
&lt;td&gt;0.60&lt;/td&gt;
&lt;td&gt;1.71&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;On the two number-crunching programs Rust and Go lead. Python is 30 times slower on the Mandelbrot set.&lt;/p&gt;

&lt;p&gt;Now look at the last row. &lt;strong&gt;Go and C# beat Rust on the word count&lt;/strong&gt;, nearly twice as fast. The program creates millions of small strings and looks each one up in a hash map. Rust's default hash map uses an attack-resistant hash, and the program used the system allocator, which loses to the allocators built into Go and .NET for many tiny objects. A fast hasher helped only a little (0.75 s), so most of the cost is allocation. Rust gives you the control to fix that (reuse buffers, avoid the allocation, choose another allocator). It does not do it for you.&lt;/p&gt;

&lt;h2&gt;
  
  
  Memory (peak MB)
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Rust&lt;/th&gt;
&lt;th&gt;Go&lt;/th&gt;
&lt;th&gt;C#&lt;/th&gt;
&lt;th&gt;Java&lt;/th&gt;
&lt;th&gt;Node&lt;/th&gt;
&lt;th&gt;Python&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Mandelbrot&lt;/td&gt;
&lt;td&gt;3.9&lt;/td&gt;
&lt;td&gt;5.6&lt;/td&gt;
&lt;td&gt;21.0&lt;/td&gt;
&lt;td&gt;38.0&lt;/td&gt;
&lt;td&gt;30.7&lt;/td&gt;
&lt;td&gt;10.7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Primes&lt;/td&gt;
&lt;td&gt;23.0&lt;/td&gt;
&lt;td&gt;25.5&lt;/td&gt;
&lt;td&gt;39.6&lt;/td&gt;
&lt;td&gt;55.8&lt;/td&gt;
&lt;td&gt;47.9&lt;/td&gt;
&lt;td&gt;48.8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Word count&lt;/td&gt;
&lt;td&gt;8.0&lt;/td&gt;
&lt;td&gt;13.0&lt;/td&gt;
&lt;td&gt;35.3&lt;/td&gt;
&lt;td&gt;99.1&lt;/td&gt;
&lt;td&gt;49.5&lt;/td&gt;
&lt;td&gt;16.2&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Rust used the least in all three. There is no garbage collector, so memory comes back when a value goes out of scope.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you ship
&lt;/h2&gt;

&lt;p&gt;The Rust benchmark became one 146 KB executable that needs nothing installed. Go: 2.4 MB, also standalone. C# and Java need their runtimes; Node and Python need the interpreter and their packages.&lt;/p&gt;

&lt;h2&gt;
  
  
  The bugs that never run
&lt;/h2&gt;

&lt;p&gt;I wrote the same small bug in each language. A missing value used as if present, use after move, a reference that outlives its target: in Rust all three are compile errors. In every other language the first one crashes at run time.&lt;/p&gt;

&lt;p&gt;The one that surprised me: eight threads adding to one counter with no lock. Rust refuses to compile it. Go printed 244,043, C# 207,098 and Java 117,040, where the right answer is 800,000. No error, and a different wrong total each time. (Node is single threaded, and Python's global lock happened to hide it in my run. That is luck, not a guarantee.)&lt;/p&gt;

&lt;h2&gt;
  
  
  What Rust costs
&lt;/h2&gt;

&lt;p&gt;It is wordier: 83 lines against Python's 41. Release builds compile slower. Ownership takes weeks to feel natural. Some ecosystems (mature GUI toolkits, enterprise libraries) are thinner than Java's or .NET's. And integer overflow is &lt;em&gt;not&lt;/em&gt; stopped: a release build wraps like everyone else's.&lt;/p&gt;

&lt;h2&gt;
  
  
  So when?
&lt;/h2&gt;

&lt;p&gt;Choose Rust when a crash or a security hole is expensive, when you need predictable latency without GC pauses, when you want one small executable, or when the code will live for years. Choose something else for throw-away scripts, or when your team already ships fast Java or .NET and the hot path is not critical.&lt;/p&gt;

&lt;p&gt;Everything here is regenerated by scripts. The full write-up, with the bug table and the method, is at &lt;a href="https://ruststudio.org/why-rust" rel="noopener noreferrer"&gt;https://ruststudio.org/why-rust&lt;/a&gt;. These are small programs on one PC: an illustration of trade-offs, not a verdict. If you think a program is unfair to your favourite language, send a fix.&lt;/p&gt;

</description>
      <category>rust</category>
      <category>performance</category>
      <category>programming</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
