gitwtfhub

wtf is wry?

tauri-apps/wry — explained in plain English

Analysis updated 2026-06-26

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

TL;DR

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

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

Why would anyone build with this?

REASON 1

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

REASON 2

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

REASON 3

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

REASON 4

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

What's in the stack?

RustWebKitWebView2WebKitGTK

How it stacks up

tauri-apps/wryanordal/shellhardengodot-rust/gdext
Stars4,7794,7814,786
LanguageRustRustRust
Setup difficultymoderateeasyhard
Complexity4/52/54/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

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.

Wtf does this do

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.

Yoink these 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?

Frequently asked questions

wtf is wry?

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.

What language is wry written in?

Mainly Rust. The stack also includes Rust, WebKit, WebView2.

What license does wry use?

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

How hard is wry to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is wry for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.