explaingit

tauri-apps/wry

4,779RustAudience · developerComplexity · 4/5LicenseSetup · moderate

TLDR

A Rust library that embeds a web browser view inside a desktop app window using the operating system's built-in browser engine, keeping the app small and working on Windows, Mac, Linux, Android, and iOS.

Mindmap

mindmap
  root((wry))
    What it does
      Embeds web browser view
      Cross-platform rendering
    Platforms
      Windows WebView2
      macOS WebKit
      Linux WebKitGTK
      Android iOS
    Use Cases
      Desktop app UIs
      Custom app frameworks
    Audience
      Rust developers
      Tauri users
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Build a desktop application in Rust that renders its UI as HTML and JavaScript using WRY as the webview layer.

USE CASE 2

Create a custom desktop app framework in Rust that needs a cross-platform way to show web content inside native windows.

USE CASE 3

Embed a web panel alongside native controls in a desktop window by positioning WRY as a child view.

USE CASE 4

Add Android and iOS webview support to a Tauri-based cross-platform app.

Tech stack

RustWebKitWebView2WebKitGTK

Getting it running

Difficulty · moderate Time to first run · 30min

Linux requires WebKitGTK system packages, Android needs environment variables and a specific activity configuration.

Use freely for any purpose under either the MIT or Apache 2.0 license, whichever suits your project.

In plain English

WRY is a cross-platform library written in Rust that lets developers embed a web browser view inside a desktop application window. It is a core building block of Tauri, a popular framework for building desktop apps using web technologies. If you have used an app built with Tauri, WRY is the piece responsible for rendering the HTML and JavaScript that makes up the user interface. The library works by using whatever web engine the operating system already provides, rather than bundling its own browser. On macOS it uses WebKit, which is the same engine that powers Safari. On Windows it uses WebView2, which comes from Microsoft Edge. On Linux it uses WebKitGTK. This approach keeps the distributed app size small, since no browser engine needs to be shipped alongside the app. WRY supports Windows 7 and later, macOS, Linux, Android, and iOS. Embedding a webview into a window takes just a few lines of Rust code: you point it at a URL or give it raw HTML, attach it to an existing window, and it handles the rendering. The library also supports positioning webviews as child panels inside a larger window, which lets you mix native controls with web content on screen at the same time. There are some platform-specific setup steps to be aware of. On Linux you need to install system packages such as WebKitGTK before the library will work. On Android you need to configure a few environment variables and set up a specific activity in your project. The README includes copy-paste install commands for major Linux distributions including Debian, Ubuntu, Fedora, and Arch Linux. The project is maintained by the Tauri team and is licensed under both MIT and Apache 2.0. Most developers will encounter WRY indirectly through Tauri rather than using it directly, but it is designed to be usable as a standalone library for anyone building their own desktop app framework in Rust.

Copy-paste prompts

Prompt 1
Using tauri-apps/wry in a Rust project, create a minimal desktop window that loads a URL and displays the page using the OS web engine.
Prompt 2
Show me how to embed raw HTML with inline JavaScript into a WRY webview window without pointing it at an external URL.
Prompt 3
Using WRY, set up a child webview panel inside a larger native window so part of the UI is web-rendered and part is native.
Prompt 4
What are the Linux system packages I need to install before building a Rust project that depends on WRY with WebKitGTK?
Open on GitHub → Explain another repo

← tauri-apps on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.