Repository navigation
SafeDNS v0.3.1
SafeDNS v0.3.1 - Performance & Rebranding Update
This release marks a major milestone for the project with a full rebranding to SafeDNS and significant architectural improvements to the Rust proxy
engine, focusing on extreme low-latency and network robustness.
🛡️ Major Rebranding: SafeDNS
- New Identity: The app is now officially SafeDNS.
- Package Update: Changed Android package name to io.github.SafeDNS.
⚠️ Important Note: Due to the package name change, this version will install as a new app rather than an update to the previous
https_dns_proxy_rust installation. Please uninstall the old version manually.- Polished UI: Updated themes, icons, and labels across the dashboard and Quick Settings tiles.
🚀 Performance Optimizations (Rust Core)
- Dynamic Resolver: Implemented a persistent HTTP client architecture. The proxy no longer drops connections during bootstrap refreshes,
eliminating connection-reset errors and latency spikes. - Smart DNS Caching: Integrated hickory-proto to extract real TTL values from DNS responses. The cache now strictly follows protocol-defined
lifetimes instead of using a static global timer. - High-Concurrency Tuning: Increased the internal connection pool to 32 idle connections per host, optimized for heavy multi-app usage on Android.
- Robust Forwarding: Added a retry mechanism with a small backoff for DoH queries to mitigate transient network failures and HTTP timeouts.
🛠️ New Features & CLI Changes
- Cache Control: Added a new --cache-ttl argument to the CLI and a corresponding setting in the Android JNI interface.
- Platform Verifier: Improved integration with the Android system CA store via rustls-platform-verifier.
- Warning Cleanup: Refactored JNI code to eliminate compiler warnings on non-Android build targets.
📦 Technical Summary
- Version: v0.3.1
- Rust Edition: 2024
- Target Architecture: arm64-v8a (optimized with NEON)
- Min SDK: 23 (Android 6.0)