The WASM Editor Frontend and Server Shim
Branch: master
Clone or download

README.md

Summary

This repo is a workspace repo that contains three others:

  1. The WASM editor front-end
  2. The The backend shim the front-end talks to over websockets
  3. The web view package fthat allows for not having to use a full browser to use the editor

Overall Architecture

The Editor is meant to be used in one of two ways:

  1. From a web browser
  2. As an Electron-style application

In the first scenario, the Editor will use the built-in browser storage, with the option to export the project. In the second, a built-in webserver will serve the application, and it can read/write to and from the native file system.

yew_editor

This crate contains the code that is compiled to WASM and served up via a web browser. It uses the Yew framework, and functions much like Angular, Elm, and React.

This crate uses the cargo-web cargo extension. Some useful commands are:

Hot-reload

If you run cargo web run it will start your application and serve it on port 8000. You can then navigate to http://localhost:8000 to test things. Changes to the code will trigger a recompile and reload. This can take some seconds, so watch the terminal if you need to.

How the Editor is Deployed

Cargo generates a wasm file, and in static/index.html you can find the minimal JS needed to load the WASM application.

UI

The UI is just plain UIKit.

Directory Structure

This section describes the directory structure and general layout of the yew_editor project.