What does HackerNews think of tui-rs?
Build terminal user interfaces and dashboards using Rust
Language:
Rust
Rust has great libraries for TUIs. tui-rs (https://github.com/fdehau/tui-rs) has been used in numerous popular applications, but is unmaintained. ratatui (https://github.com/tui-rs-revival/ratatui) is the maintained version, and is pretty new. Less widely known is cursive (https://github.com/gyscos/cursive), which I have yet to try.
Aside from the libraries, I just wanted to start a project that would make be better at Rust. The easy distribution with cargo is a huge bonus though.
tui-rs[0] is the closest equivalent. It's like the pre-css version of textual.
I enjoyed using https://github.com/fdehau/tui-rs on a few side projects.
There's similar libraries for python[1], golang[2], rust[3]. Drawing on the terminal isn't that resource intensive so I'd stay in whatever ecosystem I have a reason to be in.
1. https://github.com/willmcgugan/rich
2. https://github.com/gizak/termui
3. https://github.com/fdehau/tui-rs
Notably absent is the JVM. Another victim of startup time I imagine.
Rust has several interesting TUI libraries too.
Check https://github.com/fdehau/tui-rs for example.
Check out https://github.com/rivo/tview (golang), https://github.com/prompt-toolkit/python-prompt-toolkit (python) and https://github.com/fdehau/tui-rs (rust).
Personally I went with prompt toolkit for a work project I had to do in python and it is great!
https://github.com/fdehau/tui-rs
Liked using this. I wrote a TUI for my company's api with it. I dont use the website much any more.
Surprisingly easy! I was scared of building TUI like this because it seemed so complex, but it's actually not that hard. Or at least, with tui-rs[1], which is surprisingly easy to pick up. Once you read two or three examples, you'll gain pretty good overview of how to build applications with it. I can definitely recommend it, it does all the heavy lifting and leaves surprisingly little for you to care about. Just don't forget to unset terminal raw mode before your application exits, or else you'll start breaking people's terminals :-)