Wry is a cross-platform WebView rendering library written in Rust for embedding web content in native applications.
Wry solves the problem of rendering web content across different operating systems by providing a unified Rust API that wraps each platform's native web engine. On Windows it uses WebView2, on macOS it uses WebKit, on Linux it uses WebKitGTK, and on Android and iOS it uses platform-native WebView implementations. The library requires a running event loop and a window handle from a windowing library such as tao or winit. It supports creating webviews as child windows within existing windows on macOS, Windows, and Linux, and offers platform-specific builders to handle differences in how each OS manages web rendering, particularly for supporting both X11 and Wayland on Linux through GTK integration.
Wry suits projects that need to embed web content in Rust-based desktop or mobile applications and want to avoid bundling a separate browser engine. It works well with windowing libraries like tao and winit, though developers using winit on Linux must manually initialize and manage GTK alongside the windowing event loop. Android development with wry requires additional setup including environment variables, Kotlin file generation, and JNI bindings through provided macros. The library is recommended for developers who want native web rendering without the overhead of solutions that bundle Chromium or other engines.
Development on the project shows consistent activity with regular commits addressing platform-specific issues and feature improvements. The maintainers actively respond to issues and pull requests, indicating ongoing engagement with the user community. The codebase receives updates to handle edge cases across different platforms, particularly around WebKit linking on macOS and GTK integration on Linux. Documentation is maintained with platform-specific guidance and examples for different windowing library combinations.