DEV Community

Cover image for I love Rust/Tauri & Svelte
Nasser El Idrissi
Nasser El Idrissi

Posted on

I love Rust/Tauri & Svelte

Hey DEV community! πŸ‘‹ I recently built a native task manager for macOS that brings the htop experience to the desktop. After sharing it on Reddit and getting amazing feedback, I wanted to share what I learned here as well.

The Project: NeoHtop

NeoHtop is a modern, native process monitoring tool that combines the power of terminal-based system monitors with a clean, desktop-native UI. Check it out:

Key Features

πŸš€ Real-time process monitoring
πŸ’» CPU and Memory usage tracking
🎨 Beautiful, modern UI with dark/light themes
πŸ” Process search and filtering
πŸ“Œ Pin important processes
πŸ›  Process management (kill processes)
🎯 Sort by any column
πŸ”„ Auto-refresh system stats

  • and more...

Tech Stack & Architecture

For this project, I went with a Rust and Tauri backend paired with a Svelte frontend. The backend uses the fantastic sysinfo crate to collect system metrics efficiently. What I love about this combination is how Rust handles all the heavy lifting - from process monitoring to CPU/Memory calculations - while Tauri seamlessly bridges the gap between native capabilities and web technologies.

On the frontend side, Svelte has been a joy to work with. Its reactive nature made it perfect for building the UI components that need constant updates. I particularly enjoyed implementing the themes switcher and integrating SimpleIcons to give each process a distinctive visual identity.

Technical Challenges & Solutions

Building NeoHtop came with its fair share of interesting challenges. Performance was the biggest one - keeping everything smooth while updating multiple processes in real-time isn't trivial. The solution came from leveraging Rust's efficiency for heavy computations and establishing a fast IPC bridge to the frontend.

The most... interesting part? Dealing with Apple's certification process πŸ˜…. Between code signing, notarization, and configuring entitlements, it felt like navigating a maze. But hey, it was a great learning experience!

Lessons Learned

This project really opened my eyes to the power of Rust and Tauri for desktop applications. The developer experience was fantastic, and the performance speaks for itself. Svelte's simplicity made frontend development a breeze, though I learned to be extra careful when dealing with native APIs, especially on macOS.

What's Next?

I'm excited about the future of NeoHtop! I'm planning to add Linux support, implement more process management features, and include detailed system metrics. Network usage monitoring is high on the priority list too. I'm also planning to write a detailed technical article diving deep into the implementation details, especially around performance optimization and the IPC bridge.

Join the Journey!

I'd love for you to try out NeoHtop and share your thoughts. Have you built desktop apps with Tauri? How was your experience with Rust in desktop development? Let's chat in the comments!

Stay tuned for my upcoming technical deep-dive article where I'll break down the architecture and share some code snippets! πŸš€

Try It Out!

Top comments (27)

Collapse
Β 
chinmaymoghe profile image
Chinmay β€’ β€’ Edited

Absolutely amazing work πŸ’―πŸ‘ I am bullish on Rust and I am learning it with Rustlings, Svelte is also near and dear to me , I am build a code editor in it for fun and learning esbuild bundling, this was informative and fun....

Collapse
Β 
yeasin2002 profile image
Md Kawsar Islam Yeasin β€’

Add Linux support Bro, How to download on linux ?

Collapse
Β 
abdenasser profile image
Nasser El Idrissi β€’

thank you, that's among things I'm planning todo.

Collapse
Β 
yeasin2002 profile image
Md Kawsar Islam Yeasin β€’

As much I know, Tauri provide direct Linux support.
It also creates a Linux executable.
.

Thread Thread
Β 
abdenasser profile image
Nasser El Idrissi β€’

NeoHtop is now cross platform and support all major Linux distros as well abdenasser.github.io/neohtop/

Collapse
Β 
jonesbeach profile image
Tyler Green β€’

I’m most impressed you made a website for this. jkjk I’ve been in marketing brain πŸ˜‚ this is honestly very cool and impressive!

Collapse
Β 
abdenasser profile image
Nasser El Idrissi β€’ β€’ Edited

hhh it's a (Github Pages) landing page for people to download the app

Collapse
Β 
jonesbeach profile image
Tyler Green β€’

haha yes I know, I'm impressed all around!

Collapse
Β 
marcinguy profile image
Marcin Kozlowski β€’

Very cool

Collapse
Β 
trymnilsen profile image
Trym Nilsen β€’

Love it!

Collapse
Β 
archer_lamprongroup_1f profile image
Archer - Lampron Group β€’

Nicely done!

Collapse
Β 
iamamanxz profile image
Husnul Aman β€’

Amazing!

Collapse
Β 
marcos_gabrielsoarescru profile image
Marcos Sete β€’

It was very good, congratulations

Collapse
Β 
zaunere profile image
hz β€’

Performance concern on a Mac and no Linux is odd but ok. Sharp tech stack though, cross-platform should be nearly automatic.

Collapse
Β 
zhangcheng9 profile image
Cheng Zhang β€’

Looks amazing! What is the average RAM usage for this app?

Collapse
Β 
abdenasser profile image
Nasser El Idrissi β€’ β€’ Edited

around 80Mb

Image description

Some comments may only be visible to logged-in visitors. Sign in to view all comments.