All Projects → dennwc → Dom

dennwc / Dom

Licence: apache-2.0
DOM library for Go and WASM

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Dom

Asm Dom
A minimal WebAssembly virtual DOM to build C++ SPA (Single page applications)
Stars: ✭ 2,604 (+514.15%)
Mutual labels:  webassembly, dom
Tokamak
SwiftUI-compatible framework for building browser apps with WebAssembly and native apps for other platforms
Stars: ✭ 1,083 (+155.42%)
Mutual labels:  webassembly, dom
Wac
WebAssembly interpreter in C
Stars: ✭ 372 (-12.26%)
Mutual labels:  webassembly
Wheels
以自己是否能造出轮子来衡量学习的效果
Stars: ✭ 406 (-4.25%)
Mutual labels:  dom
Vugu
Vugu: A modern UI library for Go+WebAssembly (experimental)
Stars: ✭ 4,251 (+902.59%)
Mutual labels:  webassembly
Anglesharp
👼 The ultimate angle brackets parser library parsing HTML5, MathML, SVG and CSS to construct a DOM based on the official W3C specifications.
Stars: ✭ 4,018 (+847.64%)
Mutual labels:  dom
Faasm
High-performance stateful serverless runtime based on WebAssembly
Stars: ✭ 403 (-4.95%)
Mutual labels:  webassembly
Ply
CSS inspection aided by visual regression pruning
Stars: ✭ 370 (-12.74%)
Mutual labels:  dom
Vr Dos
💾 Virtual Reality DOS 💾
Stars: ✭ 416 (-1.89%)
Mutual labels:  webassembly
Js Tracker
A chrome extension tracks front-end JavaScript that uses DOM / jQuery APIs to manipulate html dom elements (e.g., change style, attach event listener) at runtime.
Stars: ✭ 387 (-8.73%)
Mutual labels:  dom
Bootstrapblazor
A set of enterprise-class UI components based on Bootstrap and Blazor
Stars: ✭ 403 (-4.95%)
Mutual labels:  webassembly
Movienight
Single instance video streaming server with integrated chat.
Stars: ✭ 387 (-8.73%)
Mutual labels:  webassembly
Lucet
Lucet, the Sandboxing WebAssembly Compiler.
Stars: ✭ 4,006 (+844.81%)
Mutual labels:  webassembly
Threads
Threads and Atomics in WebAssembly
Stars: ✭ 401 (-5.42%)
Mutual labels:  webassembly
Fn Fx
A Functional API around JavaFX / OpenJFX.
Stars: ✭ 373 (-12.03%)
Mutual labels:  dom
Via.js
Write JS code that runs in a different context. E.g. use the DOM in a Web Worker.
Stars: ✭ 412 (-2.83%)
Mutual labels:  dom
Go Webassembly Framework
A Go Based WebAssembly framework for building frontend applications in Go!
Stars: ✭ 372 (-12.26%)
Mutual labels:  webassembly
Cheetah
On-device streaming speech-to-text engine powered by deep learning
Stars: ✭ 383 (-9.67%)
Mutual labels:  webassembly
Rustynes
👾 An NES emulator by Rust and WebAssembly
Stars: ✭ 399 (-5.9%)
Mutual labels:  webassembly
Hrjs
🔄 Tiny JavaScript plugin for highlighting and replacing text in the DOM
Stars: ✭ 420 (-0.94%)
Mutual labels:  dom

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" }
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].