NewsSecurityProgramming Languages

Mullvad GotaTun Cuts Android VPN Crashes 97% with Rust

Mullvad VPN announced GotaTun yesterday, a Rust-based WireGuard implementation that slashed Android app crashes by 97%. The new implementation replaced wireguard-go, which caused over 85% of all crashes in Mullvad’s Android app. Since rolling out GotaTun in late November, the user-perceived crash rate dropped from 0.40% to 0.01%. Zero crashes have been attributed to GotaTun itself.

This isn’t marketing speak. It’s hard production data that validates Rust’s reliability pitch for mobile applications. For developers weighing Rust versus Go for reliability-critical projects, GotaTun provides concrete evidence that Rust’s safety guarantees deliver measurable outcomes.

The wireguard-go Crash Crisis

Over 85% of all crashes reported in Mullvad’s developer console stemmed from wireguard-go, the Go-based WireGuard implementation. That’s not a bug—it’s a crisis. The root cause was Go-to-Rust FFI (foreign function interface) complexity. Mullvad’s Android app is built in Rust, and integrating Go’s runtime through FFI created a maintenance nightmare.

Moreover, Go runtime crashes provided limited debugging visibility. Stack traces were opaque, making it nearly impossible to identify root causes. Mullvad’s engineering team managed to fix some issues over the years, but many persisted. When one component accounts for 85% of your crash reports, something has to change.

GotaTun’s 97% Crash Reduction

GotaTun is a Rust-based WireGuard implementation forked from Cloudflare’s BoringTun project. BoringTun already powers millions of iOS and Android devices plus thousands of Cloudflare servers, so the foundation was production-proven. Mullvad customized it to add privacy features like DAITA (Defense Against AI-guided Traffic Analysis) and Multihop connections.

The results speak for themselves. Since deploying GotaTun to all Android users in late November, Mullvad’s crash rate plummeted from 0.40% to 0.01%. That’s 40 crashes per 10,000 users down to 1 crash per 10,000 users. Furthermore, zero crashes have been attributed to GotaTun itself since rollout. Users report faster connection speeds and better battery life as bonuses.

Why Rust Solved It

Rust’s compile-time memory safety guarantees eliminate entire classes of bugs that plagued wireguard-go. If Rust code isn’t memory-safe, it won’t compile. Period. The Rust compiler catches use-after-free errors, null pointer dereferences, and data races before code ever ships to production.

Additionally, GotaTun employs zero-copy memory strategies and safe multi-threading. Data passes through the VPN tunnel without unnecessary allocations, reducing CPU overhead. Rust’s ownership model guarantees thread safety without runtime checks. No garbage collection means no GC pauses—a critical advantage for battery-constrained mobile devices.

The Go-to-Rust FFI complexity disappeared entirely. GotaTun integrates natively with Mullvad’s Rust codebase, eliminating the language boundary that caused 85% of crashes. Debugging is straightforward because stack traces are no longer crossing language barriers.

Open Source and Industry Impact

Mullvad open-sourced GotaTun under a BSD-3-Clause license on GitHub. Other VPN providers facing similar wireguard-go reliability issues can adopt it without restrictions. The repository supports Linux, macOS, Windows, iOS, and Android, with cross-platform builds available through Rust’s cargo toolchain.

Consequently, this could trigger a shift in the VPN industry. If other providers validate similar crash reductions, GotaTun might become the de facto WireGuard implementation for Rust-based mobile apps. Mullvad plans to extend GotaTun to desktop and iOS platforms in 2026, with a third-party security audit scheduled for early next year.

Key Takeaways

  • Mullvad’s 97% crash reduction (0.40% to 0.01%) provides hard evidence that Rust’s memory safety guarantees deliver measurable production reliability for mobile applications.
  • Over 85% of Mullvad’s Android crashes came from wireguard-go due to Go-Rust FFI complexity, demonstrating the cost of mixing languages in mobile architectures.
  • GotaTun is open-source (BSD-3-Clause) and available on GitHub, allowing other VPN providers and developers to adopt it for improved WireGuard reliability.
  • Rust’s compile-time safety, zero-copy memory, and lack of garbage collection translated to zero GotaTun crashes since November 2025 deployment.
  • Desktop and iOS support planned for 2026, with third-party security audit scheduled early next year, signaling Mullvad’s long-term commitment to GotaTun.

For developers choosing between Rust and Go for reliability-critical mobile components, GotaTun isn’t just a success story—it’s a case study with metrics. Zero crashes versus 85% of all crashes is about as clear as evidence gets.

ByteBot
I am a playful and cute mascot inspired by computer programming. I have a rectangular body with a smiling face and buttons for eyes. My mission is to simplify complex tech concepts, breaking them down into byte-sized and easily digestible information.

    You may also like

    Leave a reply

    Your email address will not be published. Required fields are marked *

    More in:News