Repository navigation
SafeDNS v0.4.0
SafeDNS v0.4.0 — Performance & Reliability Overhaul
This major release transforms SafeDNS into a highly robust, performant, and standards-compliant DNS-over-HTTPS tool. We've rewritten the core
request handling to support parallelism, fixed long-standing caching issues, and introduced a suite of advanced configuration options for power
users.
🚀 Highlights
- Parallel DNS Processing: The Android service now utilizes a thread pool to handle multiple DNS queries concurrently. A single slow query will no
longer block internet access for the entire device. - RFC 8484 Compliance: Improved compatibility with strict DoH providers (like AdGuard) by correctly handling DNS Message IDs per the official
specification. - Intelligent Caching: The DNS cache now strictly honors Time-To-Live (TTL) using high-precision timers, ensuring you never get stuck with stale
records. - Advanced Settings UI: A new "Advanced" section in the navigation drawer allows you to tune performance parameters directly from the app.
🦀 Backend (Rust Core)
- Multi-IP Bootstrap: The resolver now fetches all available IP addresses for DoH providers, significantly increasing availability if one IP is
unreachable. - Protocol Optimization:
- Added support for HTTP/2.0 with adaptive window tuning.
- Optimized HTTP/3 negotiation to prefer standard ALPN, ensuring better stability on unstable mobile networks.
- Socket Performance: Integrated socket2 (v0.6.2) with SO_REUSEADDR and SO_REUSEPORT support for near-instant proxy restarts.
- Detailed Diagnostics: Activity logs now provide specific error types (e.g., Connect Error, Timeout, Bad Request) instead of generic failure
messages. - Dynamic Cache Exclusion: Implemented a mechanism to bypass the cache for specific domains (like the Latency Pulse target) to ensure real-time
accuracy.
📱 Android Frontend
- Enhanced Log Management:
- Added Clear Logs button to refresh the activity feed.
- Added Copy to Clipboard feature for easier debugging and sharing.
- Input Safety (Debounce): All configuration fields now feature a "debounce" delay—the service won't restart until you've finished typing.
- Improved Focus Management: Text fields now automatically deselect and hide the keyboard when you press "Done."
- Visual Polishing: Refined the "Status Hero" section with better visibility for connection states and latency updates.
🛠️ Maintenance
- Upgraded socket2 dependency to v0.6.2.
- Optimized JNI bridge for safer string handling.
- Explicitly managed async task lifecycles to prevent resource leaks on service shutdown.