SaaSHub helps you find the best software and product alternatives Learn more β
Top 23 Rust TUI Projects
-
I was missing interactive rebase, as it is missing from libgit2
https://github.com/extrawurst/gitui/issues/32
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
I used to use ranger, but have since switched to yazi[1] for speed and out of the box image support. (Ranger can do the same, but I think you have to set the preview_images_method[2]).
[1] https://yazi-rs.github.io
-
ratatui
A Rust crate for cooking up terminal user interfaces (TUIs) π¨βπ³π https://ratatui.rs
Excellent article of what is going on in the terminal space, agree on the TUI section where we are seeing lots of terminal tools being built in Rust and Go and libraries such as Ratatui [1] and Bubble Tea [2] becoming a new modern alternative to ncurses for building TUIs.
Python has Textualize which is also very popular for building terminal user interfaces [3]
And we've noticed this renaissance as well of new CLI and TUI tools that we list on Terminal Trove [4].
[1] https://ratatui.rs/
[2] https://github.com/charmbracelet/bubbletea
[3] https://textual.textualize.io/
[4] https://terminaltrove.com/
-
bottom
-
For each benchmark we took the best result of five runs. Each run was performed by making as many requests as possible with 150 concurrent workers, over 10s. The load generation was performed with oha, a Rust and Tokio-based HTTP load testing tool.
-
// https://github.com/sachaos/viddy/blob/4dd222edf739a672d4ca4bdd33036f524856722c/src/cli.rs#L96-L105 fn parse_duration_from_str(s: &str) -> Result { match humantime::parse_duration(s) { Ok(d) => Ok(Duration::from_std(d)?), Err(_) => { // If the input is only a number, we assume it's in seconds let n = s.parse::()?; Ok(Duration::milliseconds((n * 1000.0) as i64)) } } }
-
-
Project mention: Superfile β A fancy, petty terminal file manager | news.ycombinator.com | 2024-05-10
I love that there are a lot of great options in this space. This one looked nice due to its selection pane: https://xplr.dev/
-
Project mention: How Raw sockets behave differently in macOS and Linux | news.ycombinator.com | 2024-09-18
OP, you may find this [1] βtrickβ useful. It allows you to dynamically determine the correct byte order for the various IPv4 headers for the platform and thus avoid the need to statically decide on the byte ordering for each platform you intend to target.
You may also find this [2] table useful, it shows which platforms allow the combination of IPPROTO_ICMP + IP_HDRINCL so it may be used without elevated privileges.
In general, my experience of raw sockets is that they are not very βrawβ at all, the OS can and does still perform a variety modifications and additions to what you send and receive, in highly platform specific and often poorly documented ways. In particular, TCP and raw sockets should generally be avoided.
[1] https://github.com/fujiapple852/trippy/blob/master/crates/tr...
[2] https://github.com/fujiapple852/trippy/issues/101#issuecomme...
-
-
-
-
I'm going to anticipate a "problem" we are going to encounter. For my use case, I would like the user to press Q or Enter to confirm or not that she wants to save a weak password. From what I understood, it's not straightforward to do this with the same io::stdin we used before because of the line-buffered nature of most terminals. Meaning, we have to wait for the user to press Enter to read the input. So, we are going to use the crossterm crate that allow us to read single chars from user's input. We can add it with: cargo add crossterm
-
Project mention: Rainfrog β a database management TUI for Postgres | news.ycombinator.com | 2024-09-16
Looks sleek! But Iβm curious, what made you decide that gobang[0] wasnβt cutting it for you?
[0] https://github.com/TaKO8Ki/gobang
-
-
zenith
Zenith - sort of like top or htop but with zoom-able charts, CPU, GPU, network, and disk usage
Project mention: Zenith: Like top/htop with zoomable charts of CPU, GPU, network and disk usage | news.ycombinator.com | 2024-05-22 -
-
Project mention: Binsider β Analyze binaries without leaving the terminal | news.ycombinator.com | 2024-09-30
-
-
-
nice work!
can I use "cargo install --git https://github.com/aabiji/muse"?
I also recommend:
https://github.com/ratatui-org/ratatui
https://github.com/mikaelmello/inquire
for your further development
I also have a Rust CLI music project here if you want to have a look
https://github.com/glicol/glicol-cli
-
-
There's a kind of "Magit Imitation" project https://github.com/altsem/gitu that aims to do what it does but sans-emacs. And it's ... fine... but what I realized once I started playing with it was that a large part of what makes magit.. magic... is the editor / buffers being right there.
I've still not fully absorbed magit, and mostly just use the command line and the emacs interactive git rebase mode, but I go in there once in a while. And wow. So cool.
Rust TUI discussion
Rust TUI related posts
-
Show HN: Screensavers for your terminal (Bevy/Ratatui)
-
Theattyr: A terminal theater for playing VT100 art and animations
-
Rainfrog β a database management TUI for Postgres
-
Show HN: Oryx β TUI for sniffing network traffic using eBPF
-
Show HN: Stu β A TUI Explorer for Amazon S3
-
TUI for sniffing network traffic using eBPF on Linux
-
A TUI for sniffing network traffic using eBPF on Linux
-
A note from our sponsor - SaaSHub
www.saashub.com | 11 Oct 2024
Index
What are some of the best open-source TUI projects in Rust? This list will help you:
Project | Stars | |
---|---|---|
1 | gitui | 18,368 |
2 | yazi | 15,233 |
3 | ratatui | 10,214 |
4 | bottom | 9,945 |
5 | oha | 5,499 |
6 | viddy | 4,714 |
7 | Cursive | 4,267 |
8 | xplr | 4,155 |
9 | trippy | 3,538 |
10 | spotify-player | 3,473 |
11 | joshuto | 3,428 |
12 | ox | 3,312 |
13 | crossterm | 3,222 |
14 | gobang | 2,887 |
15 | dijo | 2,809 |
16 | zenith | 2,619 |
17 | kmon | 2,522 |
18 | binsider | 2,430 |
19 | Termion | 2,100 |
20 | kdash | 2,086 |
21 | inquire | 1,966 |
22 | ATAC | 1,889 |
23 | gitu | 1,792 |