assemblyscript VS reference-types

Compare assemblyscript vs reference-types and see what are their differences.

reference-types

Proposal for adding basic reference types (anyref) (by WebAssembly)
Sevalla - Deploy and host your apps and databases, now with $50 credit!
Sevalla is the PaaS you have been looking for! Advanced deployment pipelines, usage-based pricing, preview apps, templates, human support by developers, and much more!
sevalla.com
featured
InfluxDB – Built for High-Performance Time Series Workloads
InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
www.influxdata.com
featured
assemblyscript reference-types
39 9
17,534 151
0.4% -
7.1 5.3
3 days ago almost 4 years ago
WebAssembly WebAssembly
Apache License 2.0 GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

assemblyscript

Posts with mentions or reviews of assemblyscript. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2025-07-16.
  • A Rust Shaped Hole
    2 projects | news.ycombinator.com | 16 Jul 2025
    This is probably the closest thing to that: https://www.assemblyscript.org/
  • Ask HN: Languages Designed for WASM?
    13 projects | news.ycombinator.com | 29 Jun 2025
  • IoT Architectures Under Pressure: hosting a portable firmware (Part 3)
    4 projects | dev.to | 16 May 2025
    We're going to write a fictional (and minimal!) firmware for our smart thermostat, let's assume we decided to use AssemblyScript (but it could have been in C, Rust, Go or any other supported language):
  • Show HN: Zero-codegen TypeScript type inference from Protobuf messages
    5 projects | news.ycombinator.com | 14 Apr 2025
    and have that just work without any JS "glue code". Maybe someday. I know they're working on the DOM APIs, but as you said, it's been slow going. Feels like priorities are elsewhere. Even CSS is moving forward with new features faster than WASM is (nesting and view transitions are awesome though).

    (Btw when I said "separate runtime type checking" I didn't mean language-level; I was referring to the validation libraries that are required today since TS types obviously no longer exist after build. If it were a real static language, then of course you wouldn't need to do that because you can't store a bool in a string in the first place.)

    [0]: https://www.assemblyscript.org/ (Porffor looks neat too. Wonder if it could be useful in plugin architectures? E.g. plugins can written in JS, and the program only needs a WASM interpreter. I'll bookmark it. Thanks.)

  • Write code on esp32 on different languages (currently AssemblyScript and TinyGo supported)
    2 projects | dev.to | 22 Jan 2025
    Built a platform flibbert.com where you can run code on ESP32 microcontrollers in AssemblyScript and TinyGo. It’s great for trying things out or learning without the usual setup hassle. Would love for people to try it and share feedback! (The project is on early stage, tested only on esp32-cam)
  • A Minimalist TypeScript for C
    4 projects | news.ycombinator.com | 20 Jan 2025
  • Is WebAssembly Memory64 worth using?
    3 projects | news.ycombinator.com | 15 Jan 2025
    I get your point but one of the advantage of WASM is the compile step. It means that the WASM code will load and start running much faster because the browser gets a ready made binary to execute.

    But yes, having the need for special tooling is a pain. My understanding is that AssemblyScript[0] allows to write code that look like Typescript and integrate well with the node ecosystem. Could be worth a look.

    In case you start with a WAT file, there are ways to compile WAT to WASM in the browser[1].

    [0] https://www.assemblyscript.org/

    [1] https://webassembly.github.io/wabt/demo/wat2wasm/

  • The many faces of undefined in JavaScript
    3 projects | news.ycombinator.com | 25 Jun 2024
  • Borgo is a statically typed language that compiles to Go
    21 projects | news.ycombinator.com | 30 Apr 2024
    I like your take but JavaScript was literally the assembly language of the web until WASM came along. There was no other language that TypeScript could compile to.

    This train of thought lead me to discover AssemblyScript! https://www.assemblyscript.org/

  • Let's Write a Malloc
    4 projects | news.ycombinator.com | 26 Nov 2023
    Incidentally, it’s also what AssemblyScript uses: https://github.com/AssemblyScript/assemblyscript/blob/main/s...

reference-types

Posts with mentions or reviews of reference-types. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-11-03.
  • Old CSS, new CSS (2020)
    1 project | news.ycombinator.com | 13 Apr 2024
    > It could be an interesting use case for WASM if the problem of passing data into the WASM VM cheaply (perhaps by reference) can be solved.

    WASM Reference Types should hopefully solve this. The WASM working group seems to have some good momentum - so I'm hopeful this (or a similar replacement spec) will land sooner rather than later.

    https://github.com/WebAssembly/reference-types/blob/master/p...

  • Bring garbage collected programming languages efficiently to WebAssembly
    16 projects | news.ycombinator.com | 3 Nov 2023
    AFAIK GC is irrelevant for "direct DOM access", you would rather want to hop into the following rabbit hole:

    - reference types: https://github.com/WebAssembly/reference-types/blob/master/p...

    - interface types (inactive): https://github.com/WebAssembly/interface-types/blob/main/pro...

    - component model: https://github.com/WebAssembly/component-model

    If this looks like a mess, that's because it is. Compared to that, the current solution to go through a Javascript shim doesn't look too bad IMHO.

  • Extism: Make all software programmable with WebAssembly
    14 projects | news.ycombinator.com | 1 Dec 2022
    [1]: https://github.com/WebAssembly/proposals

    A glance of the overview and spec seems to indicate that WASM will provide some primitive data types, and any GC language can build their implementation on top of it. As I understand it, it's heavily based on Reference Types[3], which allows acting on host-provided types, and is already considered part of the spec [4]. It doesn't remove the need for the 5 different runtimes to have their own GC, but it lowers the bulk that the runtimes need to carry around, and offloads some of that onto the WASM runtime instead.

    [3]: https://github.com/WebAssembly/reference-types/blob/master/p...

  • Struggling to find yew benchmarks
    2 projects | /r/rust | 4 Sep 2022
    They've talked about interface types, and added reference types, which is a stepping stone toward the GC extension proposal, which would be a stepping stone toward manipulating the DOM from the WebAssembly side, but their official roadmap page is more short-term.
  • Blazor WASM and privacy
    1 project | /r/dotnet | 6 Nov 2021
    Nope, WASM reference types, it has nothing to do with .NET type system.
  • FFmpeg for browser and node, powered by WebAssembly
    6 projects | news.ycombinator.com | 20 Aug 2021
    > And there's been talk of exposing the JS GC to wasm for a few years. Hopefully when that stuff lands, it'll get easier to marshal objects across the gap.

    You don't need a Wasm GC to do this. If you only need js objects to pass on to, say, the host's function or check is null or not, then reference types that are opaque external references: https://github.com/WebAssembly/reference-types/blob/master/p...

    You can even do many more things if you export `Reflect` to WebAssembly: https://github.com/AssemblyScript/assemblyscript/blob/main/t...

    Reference Types are available almost everywhere already (In Safari will be available after 15.0): https://webassembly.org/roadmap

  • WebContainers: Run Node.js natively in the browser
    11 projects | news.ycombinator.com | 20 May 2021
  • Cranelift, Part 3: Correctness in Register Allocation
    4 projects | /r/rust | 15 Mar 2021
    Re: GC -- yes, indeed, the whole business with safepoints arose from the need to support Wasm reference types as a backend for Wasmtime or Firefox. No safepoints are needed for Rust (or other C-like) code.
  • Wasmer 1.0 released, the fastest WebAssembly VM, cross-compilation, headless, native object engine, AOT compilers and more!
    11 projects | /r/programming | 7 Jan 2021
    Reference Types,

What are some alternatives?

When comparing assemblyscript and reference-types you can also consider the following projects:

Lua - Lua is a powerful, efficient, lightweight, embeddable scripting language. It supports procedural programming, object-oriented programming, functional programming, data-driven programming, and data description.

mutable-global - Import & export of mutable globals

interface-types

biwascheme - Scheme interpreter written in JavaScript

goscript - An alternative implementation of Golang specs, written in Rust for embedding or wrapping.

proposals - Tracking WebAssembly proposals

Sevalla - Deploy and host your apps and databases, now with $50 credit!
Sevalla is the PaaS you have been looking for! Advanced deployment pipelines, usage-based pricing, preview apps, templates, human support by developers, and much more!
sevalla.com
featured
InfluxDB – Built for High-Performance Time Series Workloads
InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
www.influxdata.com
featured

Did you know that WebAssembly is
the 61st most popular programming language
based on number of references?