A memory-safe, Rust implementation of the classic Linux net-tools networking utilities.
net-tools has been the foundation of Linux networking administration
for decades, providing essential utilities like ifconfig, route,
netstat, and others. This project reimplements these tools in Rust,
bringing memory safety and modern development practices to these
critical system utilities.
net-tools-rs aims to be a drop-in replacement for the original net-tools for common use cases, leveraging Rust's memory safety guarantees to prevent entire classes of vulnerabilities present in C implementations. The project emphasizes modern development practices with comprehensive testing, including compliance tests against the original implementation. We strive to build an active contributor base and welcoming community around maintaining these fundamental Linux networking utilities.
See issue #3 for detailed implementation status on individual command flags and features.
Currently, net-tools-rs can be installed from crates.io or built from source. We aim to package it for various Linux distributions in the future.
cargo install net-tools-rsgit clone https://github.com/rust-swifties/net-tools-rs
cd net-tools-rs
cargo build --releaseThe compiled binaries will be available in target/release/.
We maintain comprehensive compliance tests to ensure net-tools-rs behaves identically to the original net-tools implementation. See compliance-tests/README.md for detailed testing documentation.
We welcome contributions! Please see CONTRIBUTING.md for details on how to get started, development setup, and our code quality standards.
This project is licensed under the GNU General Public License v2.0 or later (GPL-2.0-or-later).
This matches the licensing of the original net-tools project, ensuring compatibility and legal compliance.