HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
WebAssembly
design
Web Development2015–2026
WebAssembly / design

design

WebAssembly Design Documents

196Distinct people
260Mentions
2Explicit recommenders
11.6KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

WebAssembly Design Documents

GitHub

Where it is used

  • Shopify — Shopify uses WebAssembly within a Wasm Engine to execute partner modules on its infrastructure. The engine is invoked during runtime processes such as web requests to perform functions. Source

What people are saying

I love the fact that they chose s-expressions for the textual representation of WASM[0][1]. [0]: https://developer.mozilla.org/en-US/docs/WebAssembly/Underst... [1]:…

kuwze used a recommendation phrase. 2 indexed comments match. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 3:30:57 AM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year260 dated mentions

Observed mentions: 2015-06-17 16:27:29 UTC to 2026-05-03 00:07:52 UTC.

02040602015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 53 mentions; 5 submissions, 48 comments20152016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 66 mentions; 1 submissions, 65 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 66 mentions; 5 submissions, 61 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 16 mentions; 0 submissions, 16 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 12 mentions; 0 submissions, 12 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 11 mentions; 0 submissions, 11 comments20202021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 13 mentions; 3 submissions, 10 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 6 mentions; 1 submissions, 5 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 7 mentions; 0 submissions, 7 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 5 mentions; 0 submissions, 5 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC53548
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC66165
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC66561
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC16016
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC12012
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC11011
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC13310
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC615
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC707
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC303
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC505
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC202

What Hacker News says

16 sources
The general point that this article makes is true--C and C++ are still unsafe, even if you execute them in a VM--but there are some very important caveats to note: * ROP should be impossible in Web Assembly, because the call stack is a separate stack, inaccessible from the heap and effectively invisible to the program. * For the same reason, classic buffer overflow attacks involving attacker-supplied machine code are impossible. In addition, Web Assembly bytecode is never mapped into the heap, so attackers cannot inject shellcode via the usual methods. * Mmap functionality is proposed for the future [1], which would allow for the implementation of guard pages. (Guard pages are fairly weak defenses anyway...) I'm sure that it's possible to attack a Web Assembly program's control flow by overwriting vtables and function pointers and taking
Read the rest
advantage of the resulting type confusion. But it's significantly more difficult than it is in native code. [1]: https://github.com/WebAssembly/design/blob/master/FutureFeat...
In WebAssembly doesn’t make unsafe languages safe
Related to this, the wasm generated by Go is currently tied to being executed in the browser. There doesn't yet seem to be a implementable standard to define what a non-browser execution environment looks like. The beginnings of a common spec are here though, which some places have started working with: https://github.com/CommonWA/cwa-spec That'll likely need to make it's way into the official specs: * https://github.com/WebAssembly/design * https://github.com/WebAssembly/spec At which point implementations will have something to focus on. :) For the Go, this is the (recent) matching issue: https://github.com/golang/go/issues/27766 Kind of guessing it'll turn into a tracking issue to get it done.
In Wasmjit: Kernel Mode WebAssembly Runtime for Linux
I believe this is the place to ask a question I've been wondering about. WebAssembly currently doesn't support Goto labels and several people are pushing for it: https://github.com/WebAssembly/design/issues/796 Now I'm aware that mutually recursive functions can be gracefully used to implement state machines and that the issue of jumping into the middle of a loop from a goto seems to be prized. The former (mutually recursive function) seem to solve that problem, not necessarily in almost a general senses, however perhaps preventing some of the most nasty things Goto can do. I'd like to know if mutually recursive function requires the underlying machinery to provide gotos. In my view, that would fully justify them. If not, then tail-recursion might be the only thing missing from WebAssembly.
In SICP Goodness – Why you don't need looping constructs
You'll see much more mature looking code once Web Assembly Host Bindings [0] land. Until then, using non-JS languages require crossing the WASM-JS boundary to manipulate the DOM. There's a performance penalty to that, so it makes sense that current solutions create a massive HTML blob and send it to JS to inject as innerHTML. That doesn't mean those languages are repeating JavaScript mistakes, it just means that there's still a technical barrier to doing it correctly. [0] https://github.com/WebAssembly/design/issues/1148
In Web Assembly and Go: A look to the future
> I'm also doing Scala.js for the quick startup time btw. The JVM isn't usable with AWS Lambda last I tried. Heh, I was using Scala.js when AWS lambda was first announced I enthusiastically posted to the mailing list at the time that Scala.js would be great with this new paradigm of programming. I think the JVM is going to just be dead in the water on that front. So much of the design of v8 is around beign tossed a bunch of code and being told to start running it at full performance ASAP, whereas the JVM has been optimized under a very different set of constraints (e.g. long running server processes which it pivoted to 15 years ago after the failure of applets). --- > I think WebAssembly is going to be great, but it's effectively a sandbox for native code, so it targets languages like C++ and Rust, or in other words languages that have a
Read the rest
very light runtime and no garbage collector. I think the end goal for wasm is to provide all the hooks that javascript has.[1] And, In the meantime, Two stories I came across recently, indicate enhancements and polyfills and moving rapidly to bridge the gap: https://news.ycombinator.com/item?id=16585315 (Making WebAssembly better for Rust and for all languages) https://github.com/alexcrichton/wasm-bindgen (A project for facilitating high-level interactions between wasm modules and JS.) > I don't know what hooks WebAssembly will be able to provide, but consider that at this point most high level languages would also have to ship at least a garbage collector with the compiled binary, because WebAssembly does not give you one, see open issue: https://github.com/WebAssembly/design/issues/1079 > So you won't be able to run languages like Java, Scala, C#, Go, Clojure, etc any time soon. These languages are better off targeting JavaScript for now. I could see there being some sort of jvm bytecode interpreter written in wasm happening some handy wavy time in the "future". My hunch is that wasm going to become the universal low level bytecode, so I think there will be more and more projects emitting wasm as compilation target in addition to then eventually surpassing x86 / arm etc (obviously this won't happen overnight). That does still leave the area of server processes with long uptimes that benefit from JIT performance optimizations and which are ok with garbage collection overheads. > That said the thought of targeting browsers and Node with binaries built out of Rust fills me with joy. With all great power ... And a bit of fear of having articles & guis rendered to canvas removing the ability for users to control their interaction with the web. Maybe once that happens you'll start seeing your node servers stop falling over. 1: e.g. https://github.com/WebAssembly/host-bindings (Host Bindings Proposal for WebAssembly: This repository is a clone of github.com/WebAssembly/spec/. It is meant for discussion, prototype specification and implementation of a proposal to add host object bindings (including JS + DOM) support to WebAssembly.)
In Run JavaScript on Cloudflare with Workers
I'm also doing Scala.js for the quick startup time btw. The JVM isn't usable with AWS Lambda last I tried. --- I think WebAssembly is going to be great, but it's effectively a sandbox for native code, so it targets languages like C++ and Rust, or in other words languages that have a very light runtime and no garbage collector. I don't know what hooks WebAssembly will be able to provide, but consider that at this point most high level languages would also have to ship at least a garbage collector with the compiled binary, because WebAssembly does not give you one, see open issue: https://github.com/WebAssembly/design/issues/1079 So you won't be able to run languages like Java, Scala, C#, Go, Clojure, etc any time soon. These languages are better off targeting JavaScript for now. That said the thought of targeting browsers and Node with bin
Read the rest
aries built out of Rust fills me with joy.
In Run JavaScript on Cloudflare with Workers

Showing the 15 most recent of 16 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.