Coder Social home page Coder Social logo

wry's Introduction

WRY (Webview Rendering librarY)

Cross-platfrom WebView rendering library in Rust that supports all major desktop platforms like Windows 10, macOS, and Linux.

[dependencies]
wry = "0.6"

Overview

Wry connects the web engine on each platform and provides easy to use and unified interface to render WebView. It uses winit on most platforms and gtk-rs on Linux for windows creation.

Usage

The minimum example looks like following:

use wry::{Application, Result};

fn main() -> Result<()> {
    let mut app = Application::new()?;
    app.add_window(Default::default())?;
    app.run();
    Ok(())
}

There are also more samples under examples, you can enter commands like following to try them:

cargo run --example multiwindow

For more information, please read the documentation below.

Platform-specific notes

All platforms uses winit to build the window except Linux. Here are the underlying web engine each platfrom uses and some dependencies you might need to install.

Linux

Unlike other platforms, gtk-rs is used to build the window instead of winit. Because wry needs WebKitGTK and winit provides lower level of interface like x11 or wayland. Please make sure WebKitGTK is installed. If not, run the following command:

Arch Linux / Manjaro:

sudo pacman -S webkit2gtk

Debian / Ubuntu:

sudo apt install libwebkit2gtk-4.0-dev

macOS

WebKit is native on macOS so everything should be fine.

If you are cross-compiling for macOS using osxcross and encounter a runtime panic like Class with name WKWebViewConfiguration could not be found it's possible that WebKit.framework has not been linked correctly, to fix this set the RUSTFLAGS environment variable:

RUSTFLAGS="-l framework=WebKit" cargo build --target=x86_64-apple-darwin --release

Windows

WebView2 provided by Microsoft Edge Chromium is used. So wry supports Windows 7, 8, and 10.

License

Apache-2.0/MIT

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.