Skip to content(if available)orjump to list(if available)

Ion: Modern System Shell in Rust

Ion: Modern System Shell in Rust

8 comments

·November 17, 2025

d3Xt3r

In case you guys missed it: the popular fish shell is also now written in Rust. :)

https://github.com/fish-shell/fish-shell/releases/tag/4.0.0

raggi

I love how one of the screenshots appears to be using the ion window manager, I guess they're very aware of the name collision :D

mtillman

"It is written entirely in Rust, which greatly increases the overall quality and security of the shell."

Is this true? I don't know Rust so I'm probably missing context. Obvious kudos to OP for writing a shell.

zie

You get memory safety. That's about it for Security. Quality is in the eye of the beholder. maybe it's quality code? Maybe it's junk, who knows. Rust isn't magic that forces code to be quality code or anything. That said, the code in the Redox system is generally good, so it's probably fine, but that's not because it's written in Rust, it's because of the developers.

Any GC'd language(Python, JS, Ruby, etc) gives you the same memory safety guarantees that Rust gives you. Of course GC'd languages tend to go a fair bit slower(sometimes very drastically slower) than Rust. So really the memory safety bit of Rust is that the memory safety happens at develop and compile time, instead of at runtime, like a GC language does. So you get the speed of other "systems" languages, like C, C++, etc AND memory safety.

killme2008

Yeah, that’s true — Microsoft’s report (https://www.microsoft.com/en-us/msrc/blog/2019/07/why-rust-f...) says the same thing, and Google’s recent post on Rust in Android (https://security.googleblog.com/2025/11/rust-in-android-move...) backs it up too.

We’ve been using Rust for about seven years now, and as long as you stay away from fancy unsafe tricks, you really can avoid most memory safety bugs.

ablob

It's true for new projects. For rewrites (such as a shell) it can mean a lot of regressions. The rust-replacements for coreutils are a good negative example. The new programs do not reach feature-parity, added regressions, and in some cases also had security vulnerabilities.

So for battle-proved software I wouldn't say so per-se (if your goal is to replace them).

Nonetheless, if you add truly new rust-code to a new or existing codebase when it's without much of hassle with the interop it should hold.

timeon

Why is this link to mirror instead of actual repo?

interstice

Github vs Gitlab I guess?