whatisgithub

What is wry?

hecrj/wry — explained in plain English

Analysis updated 2026-07-18 · repo last pushed 2026-05-21

RustAudience · developerComplexity · 3/5MaintainedSetup · moderate

In one sentence

A Rust library that embeds a native web view inside desktop apps, letting you build the UI with HTML, CSS, and JavaScript across Windows, macOS, Linux, Android, and iOS.

Mindmap

mindmap
  root((repo))
    What it does
      Embeds web view
      Cross-platform windows
      Bridges Rust and JS
    Tech stack
      Rust
      WebKit
      Edge WebView2
    Use cases
      Web-based desktop UI
      Package existing web app
      Tauri framework
    Audience
      Web developers
      Rust developers
    Features
      Custom URL schemes
      Drag and drop
      Run JS from Rust

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

What do people build with it?

USE CASE 1

Build a cross-platform desktop app UI using HTML, CSS, and JavaScript instead of a native toolkit.

USE CASE 2

Package an existing web app as a standalone desktop application using Wry.

USE CASE 3

Use Wry as the rendering layer under a framework like Tauri to ship a lightweight desktop app.

USE CASE 4

Run JavaScript from a Rust backend to communicate with the embedded web content.

What is it built with?

RustWebKitWebView2WebKitGTK

How does it compare?

hecrj/wry0xr10t/pulsefi404-agent/codes-miner
Stars00
LanguageRustRustRust
Last pushed2026-05-21
MaintenanceMaintained
Setup difficultymoderatehardmoderate
Complexity3/54/53/5
Audiencedeveloperdeveloperdeveloper

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

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires integrating an event loop library like winit or tao, Linux additionally needs GTK system dependencies installed.

So what is it?

Wry is a library that lets developers embed web content (like a website or web app) inside desktop applications written in Rust. Instead of building a traditional desktop app from scratch, you can use familiar web technologies like HTML, CSS, and JavaScript to create the user interface, and Wry handles displaying that content in a native window on Windows, macOS, Linux, Android, and iOS. At a high level, Wry acts as a bridge between your Rust application and the web rendering engine available on each platform. On Windows it uses Microsoft Edge's web engine, on macOS it uses WebKit, and on Linux it uses WebKitGTK. You tell Wry what URL or web content to display, it creates a window, and handles all the platform-specific details so you don't have to. The library also supports more advanced features like custom URL schemes (for loading local assets), drag-and-drop handling, and running JavaScript code from your Rust backend. Developers building desktop applications would use this library when they want to use web technologies for their user interface instead of native UI frameworks. A common example is Tauri, a framework that uses Wry to let you build lightweight desktop apps with web frontends. You might use it if you're already comfortable with web development and want to ship a cross-platform app without learning native UI toolkits, or if you have an existing web app and want to package it as a standalone desktop application. One notable aspect is that Wry requires your application to have an event loop running, a core loop that listens for user interactions and system events. Different windowing libraries like winit or tao handle this, and Wry integrates with them. On Linux specifically, you need to manage GTK (a graphical toolkit) alongside your event loop, and you'll need to install some system dependencies. The library also offers optional features you can enable or disable depending on your needs, like developer tools, custom protocols, and drag-and-drop support.

Copy-paste prompts

Prompt 1
Show me how to set up a basic Wry window in Rust that loads a local HTML file with an event loop using winit.
Prompt 2
How do I run JavaScript from my Rust code in a Wry web view and get a result back?
Prompt 3
Walk me through setting up Wry on Linux, including the GTK dependencies I need to install.
Prompt 4
What's the difference between using Wry directly versus using Tauri, which is built on top of it?

Frequently asked questions

What is wry?

A Rust library that embeds a native web view inside desktop apps, letting you build the UI with HTML, CSS, and JavaScript across Windows, macOS, Linux, Android, and iOS.

What language is wry written in?

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

Is wry actively maintained?

Maintained — commit in last 6 months (last push 2026-05-21).

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.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.