Open-source project
WebAssembly/spec avatar
WebAssembly/spec

WebAssembly spec: three stated components, six directories the README never mentions

WebAssembly specification, reference interpreter, and test suite.

3,473 stars545 forksWebAssemblyNOASSERTION

At a glance

What is it?
The repository holding the sources for the WebAssembly specification, a reference implementation and the official test suite, and whose README is eighty-five words of which half are instructions about where not to post. There are no releases, the license field is empty, and the tree carries six directories the front page does not mention.
Who is it for?
This repository fits someone who needs to change or cite the specification text itself, or who wants the reference implementation and the official tests as a pair, since keeping those three in one tree is what makes a proposed change checkable against an implementation. Read it as a specification project rather than as a library, because there is nothing to install, no API to call and no release to pin.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository last received commits 5 days ago.
What is it written in?
Mainly WebAssembly, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on November 14, 2026, and from our analysis. They are not legal advice.

From daily snapshots

Star history

  • WebAssembly/spec3,473 ★ · +17
Star history
Repository2026-09-242026-11-14
WebAssembly/spec3.5k3.5k

17 Stars in the last 51 days, measured from the daily GitHub snapshot. Compare with other projects

Editorial analysis

The README is eighty-five words and half of them are triage

The front page of this repository does three things and stops. It says what the repository holds, which is the sources for the WebAssembly specification, a reference implementation and the official test suite. It links the formatted version of the specification, hosted separately. And it takes up the rest of its length on process: participation is welcome, but discussions about new features, significant semantic changes, or any specification change likely to generate substantial discussion should take place in the WebAssembly design repository first, so that this repository can remain focused. So the most prominent text in a repository that defines a language is a routing notice about where not to post. There is no feature list, no install instruction, no usage example and no explanation of what WebAssembly is. For that you have to go to the published specification the README links.

Six directories the front page does not mention

The README names three things: specification, implementation, test suite. The tree holds sixteen entries, and counting the directories that carry the specification and the implementation and the tests, six others sit beside them without appearing in the text. There are two directories for the specification itself, one named for the specification and one named for the document, so the sources and whatever produces the formatted output are kept apart. There is a directory named spectec, which the README does not mention at all and whose contents cannot be read from here. There is a proposals directory and a papers directory. And there is a file at the root named for the standards body that hosts the specification, a JSON file the README never refers to. A `.gitmodules` file is also present, which means part of what a clone needs comes from another repository, again unmentioned.

Feature discussion belongs in a different repository

The contribution model is the substance of the README, and it works by exclusion. The instruction covers three categories in turn: new features, significant semantic changes, and any specification change likely to generate substantial discussion. All three are to be taken to the design repository first, and the stated reason is that this repository should remain focused. Contributors are then pointed at a contributing guide in the repository. What makes that worth reading is the tension with the tree: there is a proposals directory here, so material of that kind has a home in this repository even though the process says the conversation happens elsewhere. The likely reading is that one is the archive and the other is the venue, but the README does not draw that line, so anyone with a proposal has to work out for themselves whether to open an issue here, open one in the design repository, or both.

Two workflows, no releases, and a test suite with no name in the process

The only badges on the front page are two, and they are not the usual version or build badges. They point at two continuous integration workflow files, one named for the spec and one named for the interpreter, which is a neat map of the repository's two halves. What the badges do not cover is the third component. The README calls the test suite official, but neither workflow is named for it, so whether the tests are run by the spec workflow, the interpreter workflow, or something else is not stated anywhere in the file. Alongside that, the repository has no GitHub releases at all, which is the correct shape for something versioned by specification phase rather than by tag, but it does mean there is no artefact to download and nothing to pin. The last commit on main is dated 2026-10-03.

An empty license field, a license file, and no license section

The repository's license field carries no value, while a LICENSE file sits at the root of the tree. The README has no license section, unlike most projects of this age, and never states the terms in prose. That is worth flagging rather than resolving: for a specification repository the licensing question is not a formality, because it determines who may copy the specification text into their own documentation, their compilers and their conformance suites. A reader who needs the answer cannot get it from the front page and cannot get it from the repository metadata, which leaves only the file itself. This is also the one thing the README does not delegate to another site, since the published specification is linked but the terms are not.

Citing and contributing are each one sentence

Two of the README's three sections are single instructions. The citing section, set in lowercase as the heading reads, says that for citing WebAssembly in LaTeX you should use a BibTeX file, which is in the repository. That is the whole of the citation guidance: one file, one format named, no note about version or date, and no guidance for citing anything other than LaTeX. The contributing section is likewise one sentence plus a link, pointing at the guidelines in a contributing document in the repository root. Both are reasonable delegations, since the files are there and both are short. They also mean that a first-time contributor arrives at the repository with two links to read and no map of how the three components fit together, which is a gap the tree fills and the README does not.

Editorial conclusion

This repository fits someone who needs to change or cite the specification text itself, or who wants the reference implementation and the official tests as a pair, since keeping those three in one tree is what makes a proposed change checkable against an implementation. Read it as a specification project rather than as a library, because there is nothing to install, no API to call and no release to pin. Two things to know before you start. Feature discussion is explicitly routed elsewhere, to the design repository, so a change that would generate real debate will not be well received here first. And the front page is not a description of the language: it holds no feature list, no usage and no explanation of WebAssembly itself, so anyone arriving to learn what WebAssembly is has to be sent to the published specification instead.

Frequently asked questions

What is in the WebAssembly/spec repository?

By the README's own account, three things: the sources for the WebAssembly specification, a reference implementation, and the official test suite. The tree also carries directories the front page never mentions, including a spectec directory, a document directory alongside specification, proposals, papers, and a w3c.json file at the root.

Where is the WebAssembly specification published?

Formatted, at webassembly.github.io/spec, which the README links as the available version. This repository holds the sources rather than the built document, so the link is the place to read the specification rather than the repository itself.

Where should I propose a new WebAssembly feature?

Not in this repository. The README asks that discussions about new features, significant semantic changes, or any specification change likely to generate substantial discussion take place in the WebAssembly design repository first, so that the spec repository can remain focused. Contributors are also pointed at the guidelines in Contributing.md.

How do I cite the WebAssembly specification?

With the BibTeX file in the repository, linked from the README's citing section, which says to use it for LaTeX citations. That single link is the whole of the guidance, with no note on version or date and nothing said about citing anything other than LaTeX.

Does the WebAssembly/spec repository have releases?

No, it has no GitHub releases. Its two badges point at two continuous integration workflows instead, one named for the spec and one named for the interpreter. The README calls the test suite official but neither workflow is named for it.

Official sources

  1. Issues
  2. Project website
  3. README
  4. WebAssembly/spec on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/webassembly-spec.svg)](https://hysenlabs.com/projects/webassembly-spec)

Star history chart for your README

markdown
[![Star history](https://hysenlabs.com/chart/webassembly-spec.svg)](https://hysenlabs.com/projects/webassembly-spec)

Was this useful?