NetTraceX
A comprehensive network diagnostic toolkit built with Go, featuring a beautiful terminal user interface powered by the Bubble Tea framework.
What is NetTraceX?โ
NetTraceX is a modern network diagnostic tool that combines the power of traditional command-line network utilities with an intuitive terminal user interface. Built with clean architecture principles and extensive testing, it provides a unified experience for network troubleshooting and analysis.
Key Featuresโ
- ๐ Comprehensive Network Tools: Built-in support for ping, traceroute, DNS lookups, WHOIS queries, and SSL certificate analysis
- ๐จ Beautiful Terminal Interface: Powered by the Bubble Tea framework for responsive and intuitive terminal UI
- ๐ง Extensible Plugin System: Clean architecture with SOLID principles allows for easy extension
- โก High Performance: Built with Go for fast execution and low resource usage
- ๐งช Well Tested: Comprehensive unit tests with 100% coverage for all core components
- ๐ฆ Cross-Platform: Works on Windows, macOS, and Linux
Quick Startโ
Prerequisitesโ
- Go 1.21 or later
- Make (for Unix/Linux/macOS) or PowerShell (for Windows)
Installationโ
Unix/Linux/macOS (with Make)โ
# Clone the repository
git clone https://github.com/nettracex/nettracex-tui.git
cd nettracex
# Download dependencies
make deps
# Build the application
make build
# Run the application
make run
Windows (PowerShell)โ
# Clone the repository
git clone https://github.com/nettracex/nettracex-tui.git
cd nettracex
# Download dependencies
go mod download
go mod tidy
# Build the application
go build -o bin/nettracex.exe ./cmd/nettracex
# Run the application
./bin/nettracex.exe
Architectureโ
The project follows clean architecture principles with clear separation of concerns:
- Domain Layer: Core business logic interfaces and types
- Application Layer: Use cases and application services
- Infrastructure Layer: Network clients and external integrations
- Presentation Layer: TUI components and user interface
SOLID Principles Implementationโ
- Single Responsibility: Each interface and type has a single, well-defined purpose
- Open/Closed: Plugin architecture allows extension without modification
- Liskov Substitution: All implementations can be substituted for their interfaces
- Interface Segregation: Small, focused interfaces for different concerns
- Dependency Inversion: High-level modules depend on abstractions
What's Next?โ
- Installation Guide - Detailed installation instructions for all platforms
- Configuration - Learn how to configure NetTraceX
- API Reference - Complete API documentation
- Contributing - How to contribute to the project