Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/greatscottgadgets/packetry
A fast, intuitive USB 2.0 protocol analysis application for use with Cynthion.
https://github.com/greatscottgadgets/packetry
packet-analyzer rust usb
Last synced: 6 days ago
JSON representation
A fast, intuitive USB 2.0 protocol analysis application for use with Cynthion.
- Host: GitHub
- URL: https://github.com/greatscottgadgets/packetry
- Owner: greatscottgadgets
- License: bsd-3-clause
- Created: 2022-03-01T18:38:04.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-12-02T12:54:53.000Z (about 1 month ago)
- Last Synced: 2024-12-22T22:02:32.854Z (13 days ago)
- Topics: packet-analyzer, rust, usb
- Language: Rust
- Homepage:
- Size: 2.03 MB
- Stars: 163
- Watchers: 20
- Forks: 30
- Open Issues: 21
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Packetry
A fast, intuitive USB 2.0 protocol analysis application for use with [Cynthion](https://greatscottgadgets.com/cynthion/).
![Screenshot of Packetry](screenshot.png)
## Documentation
Read the latest [Packetry Documentation](https://packetry.readthedocs.io/).
## Development
Packetry is written in [Rust](https://rust-lang.org/), with its GUI using [GTK 4](https://gtk.org) via the [gtk-rs](https://gtk-rs.org/) bindings.
To build it, you need a working Rust development environment. The minimum supported Rust version is 1.75.
You must also have the GTK 4 headers installed and discoverable via `pkg-config`, as this is required for Rust to build the gtk-rs crates.
### Building and running
To build, run `cargo build` after installing the necessary prerequisites (see below). Run with `cargo run`.
If you pass a capture filename as an argument, Packetry will attempt to load it. The current supported file format is a `.pcap` file with the `LINKTYPE_USB_2_0` link layer header type.
Note: Do not build with `--all-features`. All the optional features currently in the package are for debug/test purposes only, and will prevent or degrade normal use of the application if enabled. See `Cargo.toml` for details.
### Installing prerequisites
#### Linux
Install the Rust build tools, other essential build tools, and GTK 4 headers.
On Debian based systems it may be sufficient to use the command:
`apt install rustc cargo build-essential libgtk-4-dev`
For Fedora systems:
`yum install rust cargo make gcc gcc-c++ gtk4-devel pango-devel`
For other distributions, a similar set of packages should be required.
Note that Packetry requires a minimum Rust version of 1.75. If your distribution's packages are older than this, use [rustup](https://rustup.rs/) to get the latest Rust toolchain and manage your Rust installation.
#### macOS
Install Rust with [rustup](https://rustup.rs/), and install [Homebrew](https://brew.sh/).
Install GTK 4 with `brew install gtk4`.
#### Windows
Follow the installation instructions from [GUI development with Rust and GTK 4](https://gtk-rs.org/gtk4-rs/stable/latest/book/installation_windows.html).
You can use either the MSVC or GNU toolchains.