A terminal UI based packet monitoring tool written in Rust.
Works only on Unix-like OSes for now.
Prerequisites: rust and cargo.
git clonethis repository.cd rsharkcargo install --path .should install the binary. Make sure$HOME/.cargo/binis in your$PATHvariable.
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
clippychecks for better and idiomatic Rust code. - Maybe a separate thread for running a timer, to get time of arrival of packets.
- Use the
instacrate 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
