rustnet: Network Monitoring TUI Now Available via Ubuntu PPA
After spending numerous hours figuring out how to do Rust builds on Launchpad, I’m happy to announce that rustnet is now available via Ubuntu PPA!
Quick Install
For Ubuntu 25.10 (Questing) and newer:
1
2
3
sudo add-apt-repository ppa:domcyrus/rustnet
sudo apt update
sudo apt install rustnet-monitor
My Packaging Journey
Getting rustnet packaged for Ubuntu turned out to be quite an adventure. Here are some lessons learned:
The Debian/Ubuntu Build System and Rust
The Debian build system and Rust/Cargo don’t always play nicely together. The biggest challenge is the Rust edition and toolchain requirements. If you want to use Rust 2024 edition features, as far as I know you basically can only target Ubuntu 25.10 (Questing), which just released on October 9, 2025. This is the latest version that includes Rust 1.88.
Interestingly, Ubuntu 25.10 uses several Rust-based tools itself, including sudo-rs, yet there’s no easy way to backport newer Rust versions to the LTS Noble (24.04) release. Noble ships with Rust 1.75/1.76 (released on Dec. 28, 2023), which is quite dated for modern Rust projects.
Launchpad Build Constraints
Launchpad has some requirements that make Rust packaging fairly challenging:
- No internet during build: You need to vendor all dependencies beforehand. This means creating a complete tarball with all crates vendored.
 - Complex tooling: The process involves 
debhelper,dh-cargo, and various Debian-specific tools that have a steep learning curve. - Documentation gap: There’s limited up-to-date documentation on packaging Rust projects for Ubuntu, especially for newer Rust editions.
 
I tried using Claude Code to help with the packaging process, but it wasn’t very helpful in this case. This is probably just too much of a niche topic for AI. The intersection of Rust, Cargo, Debian packaging, and Launchpad’s specific requirements is maybe quite a bit special.
Comparison with Other Distros
The contrast with some other distributions rustnet supports is really big:
- Arch Linux (AUR): Creating an AUR package was a breeze. The PKGBUILD format is straightforward, and Cargo integration just works.
 - Fedora (COPR): Also very easy and allows internet access during builds, so you don’t need to vendor dependencies manually.
 - Ubuntu/Debian: By far the most complex and time-consuming process so far :)
 
Installation on Other Distributions
If you’re not on Ubuntu 25.10+, rustnet is also available on:
- Arch Linux: Available in the AUR
 - Fedora: Available via COPR
 - Any Linux: Via 
cargo install rustnet-monitor - Docker: 
docker pull ghcr.io/domcyrus/rustnet:latest 
For detailed installation instructions, see the INSTALL.md in the repository.
What is rustnet?
rustnet is a cross-platform network monitoring TUI (Terminal User Interface) that provides real-time visibility into your network connections. Key features include:
- eBPF-based process identification on Linux (low overhead, no constant /proc polling)
 - Deep packet inspection to detect protocols (HTTP, HTTPS/TLS with SNI, DNS, SSH, QUIC)
 - Connection state tracking for TCP, UDP, ICMP, and ARP
 - Powerful filtering system to find exactly what you’re looking for
 - Cross-platform support (Linux, macOS, Windows)
 
If you’re interested in the technical details of how process identification works differently on Linux vs macOS, check out my previous posts:
- Why catching short-lived processes requires eBPF on Linux but just a header on macOS
 - PKTAP vs eBPF: Network Process Identification
 
Community
rustnet has gained some traction with over 1,200 stars on GitHub. I’d love to hear your feedback and feature requests!
Closing Thoughts
If you’re a Rust developer considering packaging for Ubuntu, be prepared for a learning curve, especially if you’re used to the simpler workflows of Arch or Fedora.
Happy monitoring! 🦀