2019-11-25 14:55:14 +01:00
..
2019-11-25 14:55:14 +01:00
2019-11-25 14:55:14 +01:00
2019-11-20 10:54:32 +01:00

iced_web

Documentation Crates.io License project chat

iced_web takes iced_core and builds a WebAssembly runtime on top. It achieves this by introducing a Widget trait that can be used to produce VDOM nodes.

The crate is currently a very experimental, simple abstraction layer over dodrio.

iced_core

Installation

Add iced_web as a dependency in your Cargo.toml:

iced_web = "0.1.0-alpha"

Iced moves fast and the master branch can contain breaking changes! If you want to learn about a specific release, check out the release list.

Usage

The current build process is a bit involved, as wasm-pack does not currently support building binary crates.

Therefore, we instead build using the wasm32-unknown-unknown target and use the wasm-bindgen CLI to generate appropriate bindings.

For instance, let's say we want to build the tour example:

cd examples
cargo build --example tour --target wasm32-unknown-unknown
wasm-bindgen ../target/wasm32-unknown-unknown/debug/examples/tour.wasm --out-dir tour --web

Then, we need to create an .html file to load our application:

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
    <title>Tour - Iced</title>
  </head>
  <body>
    <script type="module">
      import init from "./tour/tour.js";

      init('./tour/tour_bg.wasm');
    </script>
  </body>
</html>

Finally, we serve it using an HTTP server and access it with our browser.