96 lines
4.0 KiB
Markdown
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 |