A terminal UI based packet monitoring tool written in Rust.
Works only on Unix-like OSes for now.
Prerequisites: rust
and cargo
.
git clone
this repository.cd rshark
cargo install --path .
should install the binary. Make sure$HOME/.cargo/bin
is in your$PATH
variable.
USAGE:
rshark [OPTIONS]
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-i, --interface <INTERFACE> Sets network interface to capture packets on
Note that since rshark
sniffs network packets, it requires root privileges
- Find a network device to monitor. To find one using OSX:
networksetup -listallhardwareports
- Run the binary on a device, e.g. WiFi, must run as root.
sudo cargo run -- -i en0
key | alternate | description |
---|---|---|
k | ↑ | move cursor up |
j | ↓ | move cursor down |
g | move cursor at begin | |
G | move cursor at end | |
ESC | ← | reset cursor position |
q | CTRL+C | quit program |
J | TAB | toggle focus between the panels: list of packets or single packet information |
Please open an issue and we'll try to help.
- Add code formatting check in CI.
- Add
clippy
checks for better and idiomatic Rust code. - Maybe a separate thread for running a timer, to get time of arrival of packets.
- Use the
insta
crate for snapshot testing(or UI testing). - Gracefully handle errors instead of just panicking.
- Maybe add a logging functionality for catching errors.
Please check out the contribution guide here.
This project is running thanks to all the contributors.
Apache License 2.0