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, 10:02:05 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

7 sources
As far as I can tell (5 minutes of internet research) this was to allow easier compilation to JavaScript as a fallback in the days when WASM wasn't widely supported. "Please add goto" issue has been open since 2016: https://github.com/WebAssembly/design/issues/796 Most interesting comment: > The upcoming Go 1.11 release will have experimental support for WebAssembly. This will include full support for all of Go's features, including goroutines, channels, etc. However, the performance of the generated WebAssembly is currently not that good. > This is mainly because of the missing goto instruction. Without the goto instruction we had to resort to using a toplevel loop and jump table in every function. Using the relooper algorithm is not an option for us, because when switching between goroutines we need to be able to resume execution at dif
Read the rest
ferent points of a function. The relooper can not help with this, only a goto instruction can. > It is awesome that WebAssembly got to the point where it can support a language like Go. But to be truly the assembly of the web, WebAssembly should be equally powerful as other assembly languages. Go has an advanced compiler which is able to emit very efficient assembly for a number of other platforms. This is why I would like to argue that it is mainly a limitation of WebAssembly and not of the Go compiler that it is not possible to also use this compiler to emit efficient assembly for the web. ^ https://github.com/WebAssembly/design/issues/796#issuecommen...
In Build your own WebAssembly Compiler (2019)
Quite a letdown that the solution for a web-based spreadsheet is for users to install a local backend. Might be a case for edge computing even. > WebAssembly has a single contiguous, linear memory space shared by all dynamic memory allocations. This means that WASM cannot make use of several memory management features that operating systems provide, such as Virtual Memory, Swapping, etc. Additionally, it cannot make use of the CPU’s MMU optimisations such as prefetching and caching. WebAssembly has memory issues, but those are not them. Virtual memory and swapping are OS features that work at the page level. CPU prefetching and caching are CPU features that work at the cacheline/address level. [1] covers the major design limitations with WebAssembly memory. [1] https://github.com/WebAssembly/design/issues/1397
In How we built a spreadsheet editor 5x faster than Google Sheets
Wasm itself provides some determinism constraints[1] as an explicit design goal, which is what enables things like this. I made a very simple snapshottable compute executer for a talk last year and it took surprisingly little code if you want a look at how it works[2], but the complexity of something like Flawless is that doing anything useful involves communicating with the outside world, where non-determinism can easily sneak in. I've been following Bernard's work on Lunatic so I'm incredibly excited to see he's tackling these hard problems. [1] https://github.com/WebAssembly/design/blob/main/Nondetermini... [2] https://github.com/drifting-in-space/wasmbox/tree/main
In Flawless – Durable execution engine for Rust
> To work with GC, you need some way to track if the GC'd object is accessible in WASM itself. I've never heard of a GC with that kind of API. Usually any native code that holds a GC reference would either mark that reference as a root explicitly (eg. https://github.com/WebAssembly/design/issues/1459) or ensure that it can be traced from a parent object. Either way, this should prevent collection of the object for as long as the reference is reachable from a root. I agree that explicitly checking whether a GC'd object has been freed would not make any sense. > The reason why you probably need a custom string type is so you can actually embed string literals without relying on interop with the environment. WASM already has ways of embedding flat string data. This can be materialized into GC/heap objects at module startup. This must ha
Read the rest
ppen in some form anyway, as all GC-able objects must be registered with the GC upon creation, for them to be discoverable as candidates for collection. Overall I still don't understand the issue. There is so much prior art for these patterns in native extensions for Python, PHP, Ruby, etc.
In Requiem for a stringref
Giving you a buffer that grows is the allocation approach I am talking about. This is not how your OS works. Your OS itself works with an allocator that does a pretty good job making sure that your memory ends up not fragmented. Because WASM is in between, the OS is not in control of the memory, and instead the browser is. The browser implementation of "bring your own allocator" is cute but realistically just a waste of time for everybody who wants to deploy a wasm app because whatever allocator you bring is crippled by the overarching allocator of the browser messing everything up. It seems like the vendors are recognizing this though, with firefox now having a discard function aparently! https://github.com/WebAssembly/design/issues/1397
In The tug-of-war over server-side WebAssembly
Scientific performance critical code isn't written in Python, it is written in C/C++ which is used by Python. Python in ML usually merely describes the calculation not unlike React describes the DOM that should be displayed in the browser. JavaScript was never really known for admin or file manipulation (Perl replacement), so that was what probably established the dominant ecosystem for Python. I also don't think the runtime overhead is applicable due to native C/C++ part, and download time doesn't have to be bad since modules can be split just like in JavaScript ecosystem today. For an AI app, the model inference weights might be larger than the compiled WASM code itself. However, I'd agree with you that porting legacy apps might not be possible without something close to a rewrite. There is a reasonable chance that once WASM GC is imple
Read the rest
mented, then direct DOM access will be provided [1], which I believe could pretty much halt interest in new JavaScript development for web frameworks overnight. WASM is the reincarnation of the Java Applet, but better. And a more typed language like Go or Dart could become the most widely used programming language. Either compile it to WASM as plugin for something like the browser, compile to JavaScript for "legacy browsers", or to native code for a standalone app. There are probably a handful of developers already assuming this and trying to write a version of React running in WASM already. [1] https://github.com/WebAssembly/design/blob/main/Web.md#gc
In Bun v0.5

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.