BoringTun is a userspace implementation of the WireGuard protocol written in Rust, developed by Cloudflare for portability and speed. The project is actively deployed across millions of consumer devices on iOS and Android through Cloudflare's 1.1.1.1 application, as well as on thousands of Cloudflare Linux servers, demonstrating its production-ready status and real-world reliability at scale.
The repository consists of two main components. The boringtun library provides the core WireGuard protocol implementation without network or tunnel stacks, allowing developers to build fast and efficient WireGuard client applications on various platforms including iOS, Android, Windows, and Linux. The boringtun-cli executable offers a userspace WireGuard implementation for Linux and macOS systems, functioning as a complete tunnel interface that can be configured using standard WireGuard tools like wg and wg-quick.
BoringTun supports a wide range of platforms and architectures. The binary executable is available for x86_64, aarch64, and armv7 on Linux, as well as x86_64 on macOS. The library extends support further to include Windows via x86_64-pc-windows-msvc, multiple iOS architectures including aarch64, armv7, and armv7s, and Android platforms supporting both aarch64 and arm architectures. This broad platform coverage reflects Cloudflare's goal of enabling WireGuard deployment across diverse environments.
The project provides multiple integration pathways for developers. C ABI bindings are exposed through a wireguard_ffi.h header file, enabling integration with C, C++, Swift, and C# applications. Java Native Interface bindings are available in src/jni.rs for Android development. These bindings allow developers to embed WireGuard functionality into applications using their preferred languages and platforms.
According to GitGenius activity tracking, the repository shows median issue and pull request response latency of approximately 8913 hours with a mean of 14015.9 hours across 34 tracked items. The most active contributors include celeste-sinead with 16 events, CodingMarkus with 9 events, and thomaseizinger with 6 events. Enhancement requests represent the most common issue type with 3 tracked items, followed by questions and bug reports. The project shares contributors with major repositories including ant-design/ant-design, rust-lang/rust, and electron/electron, indicating involvement from developers working across diverse technology ecosystems.
The repository is currently undergoing restructuring, with the maintainers recommending users rely on the crates.io packages rather than the master branch directly. Installation and building are straightforward using Cargo, with options to build the library alone or include the executable. The project is licensed under the 3-Clause BSD License and welcomes contributions following the guidelines in CONTRIBUTING.md.