MeowUI

MeowUI is a TUI written in Rust

Published on · 2 min read · 1 view · 1 reading right now

RUST
PHOENIX
Screenshot of MeowUI with ferris behind it
Ferris!!!

Introducing MeowUI, a TUI written in Rust using the Ratatui library. I have always wanted to work on a TUI project because most of my time is spent in the terminal :)

Initially, my plan with the TUI project was to make it using elixir and cluster the locally running elixir node with the one running on fly.io but elixir has not much good support for making TUIs(raw mode for terminal landed on erlang/OTP 28) so I kind of abandoned the plan of making a TUI in elixir but since then two things happened:

  1. I learned rust. Ever since I got the hang of rust, I wanted to work on a project to solidify my learnings.
  2. I found out that the LiveView Native team have worked on a rust library for Phoenix Channels client which I can use to establish a channel connection to my phoenix backend.

So I set out to work on a TUI project and here it is: https://github.com/aayushmau5/meowui

Honestly, I had a lot of fun writing Rust. The type system is really. Compile time were fairly good. Practised a ton on borrow checker and ownership models. Traits are a nice abstraction. (These are my opinions at the time of writing this blog. It is subject to change in the future, who knows?)

Usecase

The TUI project is a 100% personal project that I made for me. It is a project manager, a pastebin manager(pastebin clone that I made in phoenix), notes manager, etc.

On running, it connects to my phoenix backend using phoenix channels and sends/receives events + data.

ToDos

Still, a lot of work is to be done. I have established a common pattern for the TUI but some things are pending:

  • Pastebin support: reading, creating, updating, deleting -> Done
  • Adding sqlite for offline support
  • Syncing between local sqlite and remote phoenix postgres(this will be fun)
  • Adding support for notes
  • Project management is still WIP

Quite some work is left, but I'm excited to work on them.

That's it about MeowUI. See you later 👋

(I might/might not be working on a new project until then)

0 likes

Other articles

Theme: