NetTest/CHANGELOG.md

96 lines
4.0 KiB
Markdown

# Changelog
All notable changes to the NetTest project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
### Added
- Comprehensive documentation with extensive doctests
- Integration test examples demonstrating all major features
- Enhanced README with detailed usage examples
- Library-level documentation in src/lib.rs
- Cargo.toml metadata for docs.rs integration
### Changed
- Improved API documentation with real-world examples
- Enhanced error messages and debugging information
## [0.1.0] - 2024-01-15
### Added
- **DNS Testing**
- Comprehensive DNS resolution testing with multiple record types
- Support for 23 traditional DNS servers including Google, Cloudflare, Quad9, OpenDNS, AdGuard
- System DNS resolver integration with EDNS0 support
- DNS sinkhole detection and security analysis
- Smart error handling distinguishing between failures and missing records
- Support for A, AAAA, MX, NS, TXT, CNAME, SOA, PTR, and DNSSEC record types
- **DNS-over-HTTPS (DoH) Support**
- 16 DoH providers with comprehensive coverage
- Support for both JSON and Wire format protocols (RFC 8484)
- Provider variants for security filtering (malware blocking, family filters)
- Automatic format detection and provider-specific optimizations
- Google, Cloudflare, Quad9, OpenDNS, and AdGuard DoH endpoints
- **Network Connectivity Testing**
- TCP and UDP connection testing with IPv4/IPv6 support
- ICMP ping tests with optional sudo privileges
- Common port scanning functionality
- Configurable timeouts and retry logic
- Cross-platform compatibility (macOS, Linux, Windows)
- **MTU Discovery**
- Binary search MTU path discovery algorithm
- Common MTU size testing (68, 576, 1280, 1492, 1500, 4464, 9000)
- Custom MTU range testing capabilities
- IPv6-aware MTU validation (1280 byte minimum)
- Optional sudo support for accurate ICMP-based discovery
- **Security Analysis**
- DNS filtering effectiveness analysis
- Domain category testing (normal, ads, spam, adult, malicious, social, streaming, gaming, news)
- Sinkhole IP detection (0.0.0.0, 127.x.x.x, common filtering IPs)
- Security-focused DNS provider testing
- **CLI Interface**
- Comprehensive command-line interface with subcommands
- Human-readable output with colored formatting
- JSON output format for integration with other tools
- Progress indicators for long-running operations
- Verbose logging support
- **Performance Features**
- Async/concurrent testing architecture
- Parallel DNS provider testing (up to 39 simultaneous queries)
- Efficient binary search algorithms for MTU discovery
- Connection pooling and timeout optimization
- EDNS0 support for large DNS responses
### Technical Details
- **Dependencies**: Built with Tokio for async networking, Hickory DNS for resolution, Reqwest for HTTP
- **Architecture**: Modular design with separate modules for DNS, network, MTU, and utilities
- **Error Handling**: Comprehensive error types with detailed error messages
- **Testing**: Extensive test suite with unit tests, integration tests, and doctests
- **Documentation**: Complete API documentation with examples and usage patterns
### Performance Benchmarks
- DNS queries: 5-50ms for traditional DNS, 50-200ms for DoH
- MTU discovery: Binary search completes in < 10 iterations for typical ranges
- Concurrent testing: 39 DNS providers tested simultaneously
- Memory usage: Efficient async implementation with minimal resource usage
### Compatibility
- **Rust Version**: 1.70+ required
- **Platforms**: macOS, Linux, Windows
- **IPv6**: Full IPv6 support alongside IPv4
- **Privileges**: Optional sudo support for enhanced ICMP and MTU testing
### Known Limitations
- ICMP ping may require elevated privileges on some systems
- MTU discovery accuracy depends on network path characteristics
- Some DoH providers may have rate limiting
- IPv6 connectivity depends on network infrastructure support