Skip to content

SafeDNS v0.3.1

Choose a tag to compare

@sms1sis sms1sis released this 04 Feb 05:07
· 40 commits to android-app since this release

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)