rusty-ping
A replacement for prettyping.
A very simple ping utility that tries to be as visual as possible.
Tested on Linux only.
Install
$ git clone https://source.tube/ache/rusty-ping
$ cd rusty-ping
$ cargo install --path .
You can also clone :
Usage
$ rusty-ping <host>
Or before installation :
$ cargo run -- <host>
Uninstall
$ cargo uninstall rusty-ping
⚠️ Don't forget to remove any shell integration !
Shell integration
Rusty-ping doesn't use a config file to keep things as simple as possible.
The goal, for me, is to type pp to quickly do a ping.
I will not call this project pp as it may conflict with other CLI tools.
So you should set up a shell alias (e.g., pp, rp, or any name you prefer) via shell integration.
I primarily use Fish, so if anything breaks with bash or zsh, please send me an email.
Fish
I prefer to use fish abbreviations.
In $HOME/.config/fish/function/pp.fish or $HOME/.config/fish/conf.d/pp.fish :
abbr --add pp rusty-ping --stats --status --default-target 2606:4700:4700::1111
But a function works too.
function pp
rusty-ping --stats --status --default-target 2606:4700:4700::1111
end
Bash / zsh
You can just use a function :
"User Interface"
Here is the full UI and the explanations :
rusty-ping --stats --status --default-target git.ache.one --legend
0 ▁ 30 ▄ 50 ▆ 70 █ 90 ▂ 120 ▅ 150 █ 170 ▂ 190 ▄ 210 ▆ 240 ? <-- The legend (--legend)
PING git.ache.one (145.239.86.0) <-- The status line (--status)
▄▄▄▄▄▄▄▄? <-- The ping line
0/9 (0.0%) | ⌊34⌋ ⌈35⌉ [35] [Δ0]ms <-- Statistics on every packet (--stats)
0/9 (0.0%) | ⌊34⌋ ⌈35⌉ [35] [Δ0]ms <-- Statistics on the last 30 packets (--stats)
The legend indicates which characters correspond to which RTT in the ping line.
On the ping line, each character represents an ICMP packet sent.
? => Packet not yet received
! => Packet lost
The statistics
RTT is expressed in miliseconds.
┏━> Number of packets lost / Total sent (Percentage of packets lost)
│ ┏━> Just a separator
0/9 (0.0%) | ⌊36⌋ ⌈56⌉ [40] [Δ4]ms
│ │ │ ┕━> The mean absolute difference
│ │ │ to the average RTT
│ │ ┕━> The average RTT
│ ┕━> The maximum RTT
┕━> The minimum RTT
Technical Notes
Rusty-ping does NOT use the ping command.
It isn't tied to Bash or any specific shell.
Rust dependencies:
clapto parse args.pingcrate to actually do the ping.term_sizeto print the legend on a single line.tokioformpsc, the default mpsc queue seems to be deprecated;
License
CeCILL 2.1