Skip to content

Prathewsh/PacketWarden

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PacketWarden

PacketWarden is a fast, beautifully designed, and cross-platform network packet sniffer built with Rust. It features a rich, Wireshark-inspired Graphical User Interface (GUI) powered by the iced framework.

Features

  • Live Packet Capture: Monitor network traffic in real-time.
  • Deep Packet Inspection: Parse and analyze Ethernet, IPv4, TCP, UDP, TLS/SSL, ARP, and OSPF frames.
  • Wireshark Aesthetics: Polished interface with protocol-based row coloring (e.g., UDP in light blue, TCP in gray, OSPF in yellow) and a side visual packet map.
  • Display Filters: Instantly filter captured packets by protocol, source, destination, or info strings.
  • Detailed Packet Analysis: Expandable, tree-like detail views for packet headers and layered protocols.
  • Hex Dump Viewer: View the raw byte-level content of packets aligned with standard hexadecimal offset and ASCII representation.

Prerequisites

PacketWarden relies on libpcap to capture packets from your network interfaces.

  • macOS / Linux: libpcap is usually pre-installed.
  • Windows: You will need to install Npcap (make sure to install it in "WinPcap API-compatible Mode").

Installation & Running

  1. Clone the repository (if you haven't already):

  2. Run the application: Because packet sniffing requires elevated system privileges, you must run the application with administrative or root access.

    On macOS/Linux:

    sudo cargo run

    On Windows (run your terminal as Administrator):

    cargo run

Building for Production

To distribute the application, you can build a highly optimized release binary.

  1. Build the release binary:

    cargo build --release

    The compiled executable will be located at target/release/packetwarden (or packetwarden.exe on Windows).

  2. Packaging for Windows (.exe):

    • The .exe generated in target/release/packetwarden.exe is a standalone executable. You can simply share this file.
    • For a full installer setup, consider using tools like Inno Setup.
  3. Packaging for macOS (.app and .dmg):

    • Install cargo-bundle to package the binary into a native macOS app bundle:
      cargo install cargo-bundle
      cargo bundle --release
    • Your .app will be created in target/release/bundle/osx/.
    • To create a .dmg, you can use the built-in macOS hdiutil or tools like create-dmg:
      brew install create-dmg
      create-dmg "PacketWarden.dmg" "target/release/bundle/osx/PacketWarden.app"

Key Technologies

  • Rust
  • Iced (GUI Framework)
  • pnet (Networking/Packet parsing)
  • pcap (Packet capture bindings)

License

MIT License

About

PacketWarden is a fast, beautifully designed, and cross-platform network packet sniffer built with Rust. It features a rich, Wireshark-inspired Graphical User Interface (GUI) powered by the iced framework.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages