Go WASM

Open-source Go projects categorized as WASM

WebAssembly (abbreviated WASM) is a binary instruction format for a stack-​based virtual machine. WebAssembly is an open standard that defines a portable binary-code format for executable programs, and a corresponding textual assembly language, as well as interfaces for facilitating interactions between such programs and their host environment.

Top 23 Go WASM Projects

  • TinyGo

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

    Project mention: What made you fall in love with Go? | reddit.com/r/golang | 2023-03-13

    For IoT use https://tinygo.org/

  • Pion WebRTC

    Pure Go implementation of the WebRTC API

    Project mention: Show HN: Free Broadcast WebRTC Server | news.ycombinator.com | 2023-03-14

    Hey HN!

    I'm building a broadcast webrtc server (as a free service) to let developers add live video/audio/data to their apps. As a base, I'm using the amazing https://github.com/pion/webrtc project. The main features that I'm striving to achieve are:

    - one to very many broadcast

  • InfluxDB

    Access the most powerful time series database as a service. Ingest, store, & analyze all types of time series data in a fully-managed, purpose-built database. Keep data forever with low-cost storage and superior data compression.

  • go-app

    A package to build progressive web apps with Go programming language and WebAssembly.

    Project mention: Ask HN: What is the most pleasant, uncomplicated full stack to start with? | news.ycombinator.com | 2023-02-14

    Wasm to the rescue - https://go-app.dev/, https://yew.rs/.

    I enjoy it as much as Vue 1.0 before we had bundlers, transpilers, builders and what not.

  • pigo

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

    Project mention: Face classifier/detection library for Go? | reddit.com/r/golang | 2023-02-03

    Then I saw this library https://github.com/esimov/pigo but as far as I know, this library only detects if an image has face in it, but cannot really classify the face. CMIIW.

  • wazero

    wazero: the zero dependency WebAssembly runtime for Go developers

    Project mention: Wazero 1.0.0 - The zero dependency WebAssembly runtime for Go developers | reddit.com/r/CKsTechNews | 2023-03-25
  • wasmer-go

    🐹🕸️ WebAssembly runtime for Go

    Project mention: Running Go code inside a NodeJS app with WASM (Part 1/2, 2023) | dev.to | 2023-02-13

    However, there are other, more fleshed-out, libraries like wasmer-go that provides a runtime and help us navigate around these limitations. The wasmer-go documentation provides a good summary of these challenges:

  • eggos

    A Go unikernel running on x86 bare metal

    Project mention: I just began to learn programming, here is how I see languages: | reddit.com/r/ProgrammerHumor | 2022-12-23

    I need to admit i was wrong about the bare metal part. There even is some attempt at an operating system written in basically pure Go.

  • SonarQube

    Static code analysis for 29 languages.. Your projects are multi-language. So is SonarQube analysis. Find Bugs, Vulnerabilities, Security Hotspots, and Code Smells so you can release quality code every time. Get started analyzing your projects today for free.

  • deepflow

    Application Observability using eBPF

    Project mention: DeepFlow uses Spot Instances to speed up GitHub Action exploration | dev.to | 2022-11-20
  • wasmtime-go

    Go WebAssembly runtime powered by Wasmtime

  • wa

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

    Project mention: Hacker News top posts: Nov 11, 2022 | reddit.com/r/hackerdigest | 2022-11-11

    The Wa Programming Language\ (16 comments)

  • hackpad

    The in-browser IDE for Go

  • gossamer

    🕸️ Go Implementation of the Polkadot Host

    Project mention: Bill Laboon AMA - 19 Aug 13.00 - 14.00 UTC | reddit.com/r/Polkadot | 2022-08-19

    There are a few other implementations of the Polkadot Host available. ChainSafe is currently developing a Go version of the Polkadot Host, Gossamer, and Soramitsu is creating a C++ version, Kagome.

  • apiclarity

    An API security tool to capture and analyze API traffic, test API endpoints, reconstruct Open API specification, and identify API security risks. 

    Project mention: Risk scoring your API Specification with Panoptica | dev.to | 2023-01-19

    This feature is available in the open-source tool APIClarity, as part of the OpenClarity initiative.

  • hive

    Function scheduler for Go & WebAssembly (by suborbital)

  • tarmac

    Write, Deploy, and Scale Microservices with WebAssembly Functions

    Project mention: Tarmac new release v0.4.0 - Microservices with WebAssembly Functions | reddit.com/r/golang | 2023-03-22
  • go-wasm-http-server

    Embed your Go HTTP handlers in a ServiceWorker and emulate an HTTP server!

  • wasm-to-oci

    Use OCI registries to distribute Wasm modules

  • gweb

    Interact with browser from Go. Manually crafted WebAPI interoperation library.

    Project mention: gweb: Interact with browser from Go. Manually crafted WebAPI interoperation library. | reddit.com/r/coding | 2022-07-19
  • wasmbrowsertest

    Run WASM tests inside your browser

  • webapi

    Go Lang Web Assembly bindings for DOM, HTML etc

  • gtree

    Output tree🌳 or Make directories📁 from #Markdown or Programmatically. Provide CLI, Golang library and Web (using #Wasm ).

    Project mention: How can I make the process faster? | reddit.com/r/golang | 2023-02-11
  • wapc-go

    Golang-based WebAssembly Host Runtime for waPC-compliant modules

    Project mention: Wazero: The zero dependency WebAssembly runtime for Go developers | news.ycombinator.com | 2022-05-16
  • go

    Trealla Prolog embedded in Go using WASM (by trealla-prolog)

    Project mention: PHP: Prolog Home Page | news.ycombinator.com | 2023-01-07

    Hey, this is mine. Thanks for submitting it. I'll answer some questions.

    > Why?

    I ported Trealla Prolog to WASM (WASI) and I was looking for something useful to test it against. I found Spin, which can run WASM+CGI, and landed on this. Making this project exposed a number of bugs in my port that have now been fixed, so consumers of more useful projects[1][2] benefit as well. Also, PHP style templates are just fun! There's something valuable to just being able to shove a little bit of code inside some HTML and get it up on the internet.

    I started my webdev journey with PHP many many years ago, and it's nice to revisit it from a different perspective. I don't use the real (elephant) PHP anymore, but I've gained a newfound appreciation for how fun its quick & dirty development style is.

    I hope this project can serve as an example of how to use Prolog for fun things. It does showcase some of the cooler dynamic aspects of the language, and the PHP parsing code is like 10 lines of DCG.

    > Is it a joke?

    Yes and no. The name is certainly a joke. I was pondering what 'Prolog on Rails' might be and thought calling it PHP would be funny. This led to the PHP-style templates which were quick to implement and pretty powerful. Despite the humorous presentation, it does actually work.

    > Can you use Prolog for web services?

    Yes! For example, SWI has a mature HTTP package: https://www.swi-prolog.org/pldoc/doc_for?object=section(%27p.... It's used to power SWISH, an online Prolog code sharing thing: https://swish.swi-prolog.org/

    > Next steps?

    I would like to support persistence somehow. I think it'd be really cool if you could use Prolog's dynamic database[3] as a persistent store. Spin has components for Postgres and Redis so it shouldn't be too hard to implement, but I lose the WASI compatibility if I do that... which means I can't use the binary from WAPM, etc.

    I would also like to experiment with running Trealla on Cloudflare Workers. I have another project, worker-prolog[4], which uses Tau Prolog (a Prolog written in Javascript) on Workers.

    On a somewhat related note, I've also been playing around with Cosmopolitan libc[5]. I got Trealla to compile to an APE executable but there's some issues with the embedded Prolog libraries getting garbled, so I need to improve my GDB skills and figure out what's going on there.

    Finally, I'd like to say thanks to Andrew Davison (@infradig on GitHub), the author of Trealla Prolog, for letting me add WASM support to his project and helping me with lots of things. For example, PHP led to Andrew implementing improvements for using DCGs to parse Prolog terms, which is now super fast[6]!

    [1]: https://github.com/guregu/trealla-js

    [2]: https://github.com/trealla-prolog/go

    [3]: https://www.swi-prolog.org/pldoc/man?predicate=assertz/1

    [4]: https://github.com/guregu/worker-prolog

    [5]: https://justine.lol/cosmopolitan/

    [6]: https://github.com/trealla-prolog/trealla/issues/53

  • SaaSHub

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

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). The latest post mention was on 2023-03-25.

Go WASM related posts

Index

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

Project Stars
1 TinyGo 12,475
2 Pion WebRTC 10,923
3 go-app 6,917
4 pigo 4,018
5 wazero 2,651
6 wasmer-go 2,407
7 eggos 2,035
8 deepflow 746
9 wasmtime-go 593
10 wa 572
11 hackpad 458
12 gossamer 379
13 apiclarity 372
14 hive 290
15 tarmac 242
16 go-wasm-http-server 226
17 wasm-to-oci 204
18 gweb 191
19 wasmbrowsertest 141
20 webapi 135
21 gtree 91
22 wapc-go 69
23 go 65
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com