Go WebAssembly

Open-source Go projects categorized as WebAssembly

Top 23 Go WebAssembly Projects

  • TinyGo

    Go compiler for small places. Microcontrollers, WebAssembly (WASM/WASI), and command-line tools. Based on LLVM.

  • Project mention: Cylon: JavaScript framework for robotics, drones, and the Internet of Things | news.ycombinator.com | 2024-05-04
  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • Pion WebRTC

    Pure Go implementation of the WebRTC API

  • Project mention: VoRS: Vo(IP) Simple Alternative to Mumble | news.ycombinator.com | 2024-04-19
  • qt

    Qt binding for Go (Golang) with support for Windows / macOS / Linux / FreeBSD / Android / iOS / Sailfish OS / Raspberry Pi / AsteroidOS / Ubuntu Touch / JavaScript / WebAssembly

  • vugu

    Vugu: A modern UI library for Go+WebAssembly (experimental)

  • wazero

    wazero: the zero dependency WebAssembly runtime for Go developers

  • Project mention: Runtime code generation and execution in Go | news.ycombinator.com | 2024-05-29

    and for reference see how it's done in wazero https://github.com/tetratelabs/wazero/blob/c397a402ad17e495a...

  • pigo

    Fast face detection, pupil/eyes localization and facial landmark points detection library in pure Go.

  • wasmer-go

    πŸΉπŸ•ΈοΈ WebAssembly runtime for Go

  • Project mention: Running WebAssembly code in Go | dev.to | 2023-12-12

    The next step is to create a Go project and run our wasm file with some runtime. For this, I chose wasmer-go.

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  • vecty

    Vecty lets you build responsive and dynamic web frontends in Go using WebAssembly, competing with modern web frameworks like React & VueJS.

  • yomo

    πŸ¦– Stateful Serverless Framework for Geo-distributed Edge AI Infra

  • wasmtime-go

    Go WebAssembly runtime powered by Wasmtime

  • Project mention: Wazero: Zero dependency WebAssembly runtime written in Go | news.ycombinator.com | 2023-07-01

    [2] https://github.com/bytecodealliance/wasmtime-go

  • wa

    The Wa Programming Language: Simple, maintainable, compiled language for developing WebAssembly software

  • Project mention: The Forgotten History of Chinese Keyboards | news.ycombinator.com | 2024-06-02

    Very good article, like it.

    Chinese characters are a type of pictographs that have some characteristics of QR codes. In fact, there is indeed a word retrieval method called four-corner number, which quickly maps Chinese character graphics to four numbers through some simple formulas, which is especially suitable for one-way encoding and retrieval. For example, the four-corner number of "龍" is coded as 0121, and the code of "ε…²" is 1080 (please refer to https://github.com/chai2010/im4corner).

    In addition, Chinese characters are actually more important as hieroglyphic shapes. For example, we have a "凹语言" (Wa-lang https://github.com/wa-lang/wa/ ) designed for WebAssembly (WASM for short, WebAssembly => WASM => Wa), in which the Chinese characters "ε‡Ή" and WASM The logo is very similar, and there was even a pronunciation of "wa" in the past.

    After the popularization of computers, the function input method has been greatly improved, but there is still a lot of input resistance. For example, in programming, frequent switching between Chinese character names and English keywords brings a loss of input efficiency. As a programmer, I hope Chinese users can continue to pay attention to and improve these in the future.

  • gfile

    Direct file transfer over WebRTC

  • e2core

    Server for sandboxed third-party plugins, powered by WebAssembly

  • proxy-wasm-go-sdk

    WebAssembly for Proxies (Go SDK)

  • Project mention: A "Tiny" APISIX Plugin | dev.to | 2023-11-27

    // references: // https://github.com/tetratelabs/proxy-wasm-go-sdk/tree/main/examples // https://github.com/apache/apisix/blob/master/t/wasm/ package main import ( "github.com/tetratelabs/proxy-wasm-go-sdk/proxywasm" "github.com/tetratelabs/proxy-wasm-go-sdk/proxywasm/types" "github.com/valyala/fastjson" ) func main() { proxywasm.SetVMContext(&vmContext{}) } // each plugin has its own VMContext. // it is responsible for creating multiple PluginContexts for each route. type vmContext struct { types.DefaultVMContext } // each route has its own PluginContext. // it corresponds to one instance of the plugin. func (*vmContext) NewPluginContext(contextID uint32) types.PluginContext { return &pluginContext{} } type header struct { Name string Value string } type pluginContext struct { types.DefaultPluginContext Headers []header } func (ctx *pluginContext) OnPluginStart(pluginConfigurationSize int) types.OnPluginStartStatus { data, err := proxywasm.GetPluginConfiguration() if err != nil { proxywasm.LogErrorf("error reading plugin configuration: %v", err) return types.OnPluginStartStatusFailed } var p fastjson.Parser v, err := p.ParseBytes(data) if err != nil { proxywasm.LogErrorf("error decoding plugin configuration: %v", err) return types.OnPluginStartStatusFailed } headers := v.GetArray("headers") ctx.Headers = make([]header, len(headers)) for i, hdr := range headers { ctx.Headers[i] = header{ Name: string(hdr.GetStringBytes("name")), Value: string(hdr.GetStringBytes("value")), } } return types.OnPluginStartStatusOK } // each HTTP request to a route has its own HTTPContext func (ctx *pluginContext) NewHttpContext(contextID uint32) types.HttpContext { return &httpContext{parent: ctx} } type httpContext struct { types.DefaultHttpContext parent *pluginContext } func (ctx *httpContext) OnHttpResponseHeaders(numHeaders int, endOfStream bool) types.Action { plugin := ctx.parent for _, hdr := range plugin.Headers { proxywasm.ReplaceHttpResponseHeader(hdr.Name, hdr.Value) } return types.ActionContinue }

  • MovieNight

    Single instance video streaming server with integrated chat.

  • karmem

    Karmem is a fast binary serialization format, faster than Google Flatbuffers and optimized for TinyGo and WASM.

  • bifrost

    Cross-platform p2p daemon and library with pluggable transports and WebAssembly support. (by aperturerobotics)

  • Project mention: Bifrost: A peer-to-peer communications engine with pluggable transports | news.ycombinator.com | 2023-10-22

    Disagree :) Having a `examples/` or `demo/` directory is already good enough, and this repository even has one of those too! https://github.com/aperturerobotics/bifrost/tree/master/exam...

    One of the examples seems relatively easy to grasp if you're a web developer, about how to do HTTP forwarding: https://github.com/aperturerobotics/bifrost/blob/master/exam...

  • olin

    Webassembly + Event Sourcing

  • hackpad

    The in-browser IDE for Go (by hack-pad)

  • Project mention: Show HN: Advent of Distributed Systems | news.ycombinator.com | 2023-12-12

    Hey! I built a playground called Advent of Distributed Systems (https://aods.cryingpotato.com/) where you can work through the Fly.io distributed systems challenges (https://fly.io/dist-sys/1/) directly in your browser. Running challenges like this directly in the browser has often been the best way for me to get the activation energy to start them since it bypasses all the annoying dev environment setup that has to happen as a precursor to working on it.

    The coding environment was built with another project I'm working on called Cannon (https://cannon.cryingpotato.com/) that aims to let you embed codeblocks of any language in your browser. Right now the Go environment runs on a Modal backend using their sandbox, but I'm hoping to use the excellent work done on Hackpad (https://github.com/hack-pad/hackpad/tree/main) to run the whole thing in your browser, with no network calls necessary, soon.

    Let me know what you think - week 3 is coming out soon!

  • dom

    DOM library for Go and WASM (by dennwc)

  • calendarheatmap

    πŸ“… Calendar heatmap inspired by GitHub contribution activity

  • sat

    Tiny & fast WebAssembly edge compute server

  • luna

    πŸŒ™ A really tiny WebAssembly compiler for demonstration and educational purposes. Written in Go and built as one of my quests to conquer the WebAssembly dungeon (by thomscoder)

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020).

Go WebAssembly discussion

Log in or Post with

Go WebAssembly related posts

  • Show HN: My Go SQLite driver did poorly on a benchmark, so I fixed it

    11 projects | news.ycombinator.com | 14 Dec 2023
  • Running WebAssembly code in Go

    1 project | dev.to | 12 Dec 2023
  • A "Tiny" APISIX Plugin

    4 projects | dev.to | 27 Nov 2023
  • The Curse of Docker

    4 projects | news.ycombinator.com | 26 Nov 2023
  • Wasify - Easy WASM development for the backend

    1 project | /r/golang | 6 Nov 2023
  • Show HN: Gogosseract, a Go Lib for CGo-Free Tesseract OCR via Wazero

    5 projects | news.ycombinator.com | 4 Nov 2023
  • Gift economy adapted to the cyber age

    1 project | /r/antiwork | 27 Jul 2023
  • A note from our sponsor - InfluxDB
    www.influxdata.com | 22 Jun 2024
    Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality. Learn more β†’


What are some of the best open-source WebAssembly projects in Go? This list will help you:

Project Stars
1 TinyGo 14,670
2 Pion WebRTC 12,959
3 qt 10,289
4 vugu 4,802
5 wazero 4,672
6 pigo 4,325
7 wasmer-go 2,763
8 vecty 2,757
9 yomo 1,631
10 wasmtime-go 767
11 wa 760
12 gfile 733
13 e2core 720
14 proxy-wasm-go-sdk 671
15 MovieNight 669
16 karmem 642
17 bifrost 522
18 olin 518
19 hackpad 509
20 dom 482
21 calendarheatmap 394
22 sat 348
23 luna 308

Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.