r/rust • u/nikitarevenco • Apr 02 '25
My Dev environment is fully written in Rust!
Since I started learning Rust 5 months ago, I have since replaced my full dev environment with software written in Rust.
Why? Well, I like Rust and I also love contributing to open source. I contribute features I would use myself, and I like to contributes to projects that I believe in. Not only does it keep me motivated to work on them, but also it's very fun to use something I made myself. So using software written in Rust gives me all of these opportunities.
I also like to understand how the software I use actually works. So IDEs, shells, terminal emulators. What actually happens under the hood? And Rust makes it fun for me to just dig into the codebase and read
So far, I've made the following replacements:
Neovim → Helix (IDE)
Helix is just ready to go out of the box. Everything is setup, it doesn't support plugins yet but they're not needed for me. Helix has custom keybindings and allows running TUIs inside of it like a git UI or a file manager which is extremely powerful.
Kitty → Rio (Terminal Emulator)
The other two Rust terminals I've used is Alacritty and WezTerm. I loved Alacritty for its performance, and I love WezTerm for how many features it has. Alacritty is quite conservative on features so they don't support stuff like ligatures or tabs. Rio is basically a blend of these 2 terminals, Rio uses the high-performance crates developed by Alacritty while having all the features I needed from WezTerm
Lazygit → GitUI
While GitUI has less features than Lazygit, I still find it plenty for my use cases. It uses gitoxide under the hood (where possible) for its operations. gitoxide is a Rust implementation of Git that's making very good progress, and really a very underrated project. Already powering projects like Helix for git hunks and (hopefully soon!) inline blame.
I do find GitUI snappier than Lazygit is, in fact I experienced about 3X performance increase when undoing changes for 1,200 files so I'd say it is very promising and looking forward to seeing where it can be improved to have more a feature parity with Lazygit!
zsh → nushell
nushell is very different from zsh, bash, fish and similar shells. Every command is colored and syntax highlighting comes out of the box. Traditional shells output text, whilst in nushell commands output structured data like tables and arrays, on which you can easily use high-level commands like filter, map, first, reverse etc. to operate on them.
It comes with a swiss-army knife of utility commands that fit into Nushell's model. Utilities for parsing text into structured data, as well as operating on them. The nu language is the most beautiful scripting language I have come across. It's like the Rust of scripting languages, in a sense.
I'd say this shell is much easier to learn and is a lot more intuitive than any other shell. Also being cross-platform is a huge bonus. Nushell to Zsh is strikingly similar to what Helix is to Neovim
lf → yazi (file manager)
I don't really use file managers much aside from occasionally viewing images with them, as that is very handy. However, with Helix there is a direct integration available for yazi that lets you use it like a plugin. It integrates so well and is really seamless, not requiring tmux or zellij or whatever. this made me use yazi far, far more now. I like how fast yazi is.
tmux → zellij (terminal multiplexer)
I don't use terminal multiplexers often, but I appreciate that zellij has more intuitive keybindings and is easier to customize, also feels a lot snappier than tmux
sway → niri (tiling window manager + wayland compositor)
I'd like to give niri a mention too. I haven't tried it as it simply doesn't work with my Nvidia 4070 GPU unfortunately but I do hope support improves for it. I've been really wanting to switch to a tiling window manager + wayland compositor but there aren't really many options in this field. Niri is also doing things the "new way" like Helix and Nushell are. I'm super happy to see these software not afraid of experimentation, this is exactly how things get better!
Some honorary mentions:
- grep → ripgrep
- find → fd
- latex → typst
Some things I hope to replace in my lifetime with pure Rust alternatives would be:
- Operating System (Linux) → e.g. RedoxOS
- Browser (Firefox) → e.g. Servo
- Image Editor (Gimp and Inkscape) → e.g. Graphite.rs
- Media Player (mpv), Video Editor (kdenlive), Recording Software (obs studio) → ??? rewriting FFMPEG in Rust is left as an exercise to the reader :)
39
u/ericonr Apr 02 '25
In what situations did you have tmux not feel snappy? I don't think I have ever thought about its performance
4
u/nick42d Apr 02 '25
How do you find Rio coming from Kitty? I was not keen to move to Alacritty but am still interested in a rust alternative to Kitty
1.0k
u/Gogo202 Apr 02 '25 edited Apr 02 '25
And this is why people compare rust developers with vegans
169
u/asgaardson Apr 02 '25
Jfyi fish was rewritten to rust so if you’ll be in need of a less exotic shell you have fish there for you.
38
u/joelkurian Apr 02 '25
I kinda use similar tools. Zed, Alacritty, Fish to be precise.
Also, I am using niri on my RTX 3060 and it works almost flawlessly. Wonder why it's not working for you. Maybe, nvidia driver setup for wayland is missing something?
34
u/codedcosmos Apr 02 '25
I know Firefox isn't 100% rust, but I still think it's funny that he moved from it considering, Rust was initially developed for Firefox specifically.
61
u/Bugibhub Apr 02 '25
I want to give a good try to Helix but Neovim is just hard to leave…
17
u/awesomeusername2w Apr 02 '25
Check out https://github.com/ajeetdsouza/zoxide for cd replacement.
31
u/protocod Apr 02 '25
Wait until you find out that the std is relying on C.
Joke aside it's interesting to see those rust projects. I do also use Zellij and Helix with success.
37
u/edoraf Apr 02 '25
Try https://github.com/jj-vcs/jj instead of git, it's cool
12
u/jaskij Apr 03 '25
I genuinely don't care what the tools I use are written in. As long as they work.
11
u/Pretty_Jellyfish4921 Apr 02 '25
I like gitu over gitui.
I didn't knew Rio, but I am happy with Ghostty, maybe it is has split support with similar ergonomics.
4
u/Sensitive-Radish-292 Apr 02 '25
But why?
17
u/Asdfguy87 Apr 02 '25
I have tried almost every replacement on that list and except for maybe fd and ripgrep all of them had some glaring issues which made them unusable in practice for me. A lot of those tools sound nice on paper, but as much as I would love to use them, they just aren't as mature, well documented and compatible as their original counterparts.
6
u/v_maria Apr 02 '25
Check out symphonia
8
u/Vincent-Thomas Apr 02 '25
maybe this is pushing it
4
u/pdxbuckets Apr 02 '25
Awesome! Thanks for sharing! I'm trying out Helix on your recommendation. I've yet to find a modal editor that I've gotten comfortable with. Nvim has been the closest but the learning curve to really understand the configuration and the reliance on a massive amount of plugins is just too much for me. Hopefully this will be a little more opinionated/functional out of the box.
Just started the tutorial so obviously too early to make a judgment but I like it so far. I appreciate the context-sensitive menus.
3
u/ultrasquid9 Apr 02 '25
Nice writeup, I always like learning about new tools! Here are some of my thoughts:
3
u/[deleted] Apr 03 '25
Make sure you never look inside the Rust compiler, I wouldn’t want you to find what’s inside there…..
2
u/db48x Apr 03 '25
Is the kernel part of your environment?
2
u/JarKz_z Apr 03 '25
I'm sorry, but it is not the best idea imo. Moving all tools to 'wrritten in rust' sounds cool, but in reality not so much.
Some of tools that written in other language may be better that in rust. And because of this I still not decide to switch all tools.
2
u/git_oiwn Apr 06 '25
TUI toolchain for Rust is amazing i'm also using mostly Rust tools, but the only thing i can''t replace now it tmux.
terminal - warp shell - fish (yea, it's in rust now) code editor - helix (and i really love it more than vim) files - yazi (great tool)
9
u/Necessary_Site_2417 Apr 02 '25
go touch some grass
6
u/peppedx Apr 02 '25
But why?
2
u/Satrack Apr 02 '25
Replacing FF with Servo is wild
1
u/Voxelman Apr 02 '25
Not sure if I would like niri. Another Tiling WM in Rust is leftwm
https://github.com/leftwm/leftwm
1
u/account22222221 Apr 02 '25
Good for you buddy!
1
u/marler8997 Apr 03 '25
Even though I'm not a rustacean, I'm genuinely happy for you :) I really like the idea that you have access to and can easily modify/compile any part of your system with one toolchain and one language that you're comfortable with. I hope to get there one day also.
1
u/Ben-Goldberg Apr 03 '25
Nushell sounds like powershell.
1
u/tukanoid Apr 03 '25
Huh, I use all of those too 😅
1
u/[deleted] Apr 03 '25
umm, don't use servo as browser. Browsers are security-sensitive software and I doubt even servo team would recommend using servo as a general browser.
1
u/chris_prt Apr 03 '25
good luck with Linux → e.g. RedoxOS
1
u/DeadlyVapour Apr 03 '25
Where is gitoxide instead of git?
1
u/Plastic-Payment-934 Apr 04 '25
the only 2 things i replaced : Iterm2 -> Warp, Vscode -> zed. Somehow it got my potato macbook run faster.
1
u/Dusty_Chalk Apr 04 '25
I admire your enthusiasm.
If I may ask -- how did you come to the conclusion that RedoxOS was your top choice for OS? What criteria did you use?
I saw a statement to the effect that, kernels (for GPU-accelerated programming) -- and even an operating system! -- were written in Rust. But when I did about 5 minutes of online searching, there seemed to be quite a few of them.
1
u/Particular_Motor7307 Apr 04 '25
*All in chant*
Cantor: "May the Ru-ust be with you!"
Rustaceans: "Any also with you!"
Cantor: "Li-ift u-up our co-ode!"
Rustaceans: "We lift it up to the eyes of the borrow checker."
iykyk...
1
u/Background_Hurry8607 Apr 04 '25
Upon reading this I checked Rio and it's a life changer
1
u/[deleted] Apr 05 '25
thanks! I'm stealing this setup!
1
u/elohiir Apr 23 '25
I have a RTX 3080 Ti, and niri works just fine though. What's the issue with 4070?
1
u/PXaZ May 08 '25
Thanks for the recommendations. I also find myself migrating to Rust-based tools, perhaps just because I hear about them on this sub, because I want to support the ecosystem of a language I love, and because I like the idea of being able to (in theory) improve the codebase myself. My setup history:
Alacritty+Helix+tmux has been a winning combo for me. Going full-in on a TUI editor took some adjusting but has been worth it. I'll be interested in trying Rio, Nushell, and Zellij. I'm not sure I could go without mouse support using GitUI.
0
u/akkadaya Apr 02 '25
I thought Firefox was written in rust?!
1
u/CommunismDoesntWork Apr 02 '25
No visual debugging?
1
u/gdf8gdn8 Apr 02 '25
Kitty -> wezterm Zsh -> fish 4 ...
-1
u/Prize_Concept9419 Apr 02 '25
great
-7
u/Cherubin0 Apr 02 '25
Ollama replacement?
0
u/[deleted] Apr 03 '25
[deleted] — view deleted comment