Skip to content

dennwc/dom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

5d59134 · May 27, 2019

History

88 Commits
Apr 17, 2019
Mar 2, 2019
Mar 16, 2019
Mar 2, 2019
May 27, 2019
Mar 2, 2019
Mar 16, 2019
Mar 16, 2019
Mar 16, 2019
Aug 12, 2018
Apr 6, 2019
Jun 30, 2018
Oct 18, 2018
Jul 10, 2018
Mar 16, 2019
Mar 16, 2019
Mar 16, 2019
Mar 16, 2019
Mar 2, 2019
Mar 2, 2019
Mar 16, 2019
Mar 16, 2019
May 24, 2019
Mar 16, 2019
Mar 16, 2019
Mar 16, 2019
Mar 16, 2019
Mar 16, 2019

Repository files navigation

Go DOM binding (and more) for WebAssembly

This library provides a Go API for different Web APIs for WebAssembly target.

It's in an active development, but an API will be carefully versioned to avoid breaking users. Use Go dependency management tools to lock a specific version.

More information about Go's WebAssembly support can be found on Go's WebAssembly wiki page.

Features:

  • Better JS API (wrappers for syscall/js)
  • Basic DOM manipulation, styles, events
  • Input elements
  • SVG elements and transforms
  • LocalStorage and SessionStorage
  • Extension APIs (tested on Chrome):
    • Native Messaging
    • Bookmarks
    • Tabs
  • net-like library for WebSockets
    • Tested with gRPC
  • wasm-server for fast prototyping

Quickstart

Pull the library and install wasm-server (optional):

go get -u github.com/dennwc/dom
go install github.com/dennwc/dom/cmd/wasm-server

Run an example app:

cd $GOPATH/src/github.com/dennwc/dom
wasm-server

Check result: http://localhost:8080/

The source code is recompiled on each page refresh, so feel free to experiment!

Similar Projects

Editor Configuration

If you are using Visual Studio Code, you can use workspace settings to configure the environment variables for the go tools.

Your settings.json file should look something like this:

{
    "go.toolsEnvVars": { "GOARCH": "wasm", "GOOS": "js" }
}