reference-types VS webcontainer-core

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

reference-types

Proposal for adding basic reference types (anyref) (by WebAssembly)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
reference-types webcontainer-core
9 20
151 3,622
- 1.9%
5.3 2.0
over 2 years ago almost 1 year ago
WebAssembly
GNU General Public License v3.0 or later MIT License
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.

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,

webcontainer-core

Posts with mentions or reviews of webcontainer-core. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-07-03.
  • API Security Academy dedicated to GraphQL security
    1 project | /r/graphql | 13 Sep 2023
    How does it work? There is no backend whatsoever. The API Security Academy leverages WebContainers, a new technology that allows running full-blown node instances directly in the browser. Each WebContainer contains a live GraphQL application, so you'll not only understand why a vulnerability is risky, but also how to exploit it and, most importantly, how to fix it.
  • Node on Web. Use Nodejs freely in your browser with Linux infrastructure.
    8 projects | /r/node | 3 Jul 2023
    StackBlitz made the claim "... run Node.js, entirely inside your browser" #658, then had to revise it's claim to "We currently do not expose a way to use WebContainer outside of StackBlitz.com,".
  • Lua: The Little Language That Could
    16 projects | news.ycombinator.com | 28 May 2023
    > Wasm though seems like the likely general heir, and will have many different offerings for how to do that (Deno being one!).

    I was recently blown away by some ideas that StackBlitz [0] apply based on WebContainers. The idea of a "server in the browser", they allow you to run Node-based environment like that via Wasm.

    [0] https://stackblitz.com/

    [1] https://webcontainers.io/

  • How repl.it and online code editors are built?
    1 project | /r/ExperiencedDevs | 24 May 2023
    See https://webcontainers.io.
  • Blog Post: Reasonable Bootstrap
    2 projects | /r/rust | 13 Apr 2023
    This very simple fact is well known flaw, which was already often criticized and asked for solutions by users. It doesn't only affect this kind of very exotic bootstrap applications but also significantly limits rusts usefulness in many other areas. Pure browser based scientific code documentation and example notebooks (e.g. jupyterLite) and sandboxed CI and IDE solutions (e.g. web containers) as available for many other languages are simply not available for rust because of this very fundamental issue.
  • WebContainer API
    3 projects | news.ycombinator.com | 14 Feb 2023
    Looks like they plan to open it. From the FAQ section of README (https://github.com/stackblitz/webcontainer-core#faqs):

    > Is there a developer API?

  • [AskJS] Is there an JavaScript engine agnostic server module that can be imported into Bun, QuickJS, Deno, and Node.js?
    5 projects | /r/javascript | 8 Jan 2023
    I'm skeptical about stackblitz claims. The last time I checked that is closed source code https://github.com/stackblitz/webcontainer-core/issues/658.
  • Use SSH in browser
    7 projects | /r/learnjavascript | 11 Dec 2022
    StackBlitz claimed https://blog.stackblitz.com/posts/introducing-webcontainers/ to have implemented Node.js in the browser, though I have not observed any evidence of that being true and correct https://github.com/stackblitz/webcontainer-core/issues/658.
  • Node.js in Chrome extension
    1 project | /r/learnjavascript | 2 Jul 2022
  • Docker Desktop Requires A Paid Subscription, Now What?
    6 projects | dev.to | 28 Jan 2022
    The other honorable mention is StackBlitz, a web-based web editor for making containers that run Javascript applications. Interestingly, StackBlitz is championing WebContainers, a technology that allows developers to start NodeJS servers within the browser. The downside is, this technology only works with Javascript-based projects (NodeJS, NextJS, etc). I include it here because WebContainers could easily be extended to support other languages via WASM, like Ruby. I’ll also add in Buildah, a tool for building OCI images. I won’t say much about this tool because it’s designed for building images; you still need another service, like Podman, to actually create the containers.

What are some alternatives?

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

assemblyscript - A TypeScript-like language for WebAssembly.

wasmer - 🚀 The leading Wasm Runtime supporting WASIX, WASI and Emscripten

wasmtime - A fast and secure runtime for WebAssembly

standards-positions

ffmpeg.wasm - FFmpeg for browser, powered by WebAssembly

wasm-clang - Running Clang/LLD in WebAssembly Demo

proposals - Tracking WebAssembly proposals

threads - Threads and Atomics in WebAssembly

schism - A self-hosting Scheme to WebAssembly compiler

joystick - A full-stack JavaScript framework for building stable, easy-to-maintain apps and websites.

biwascheme - Scheme interpreter written in JavaScript

openvscode-server - Run upstream VS Code on a remote machine with access through a modern web browser from any device, anywhere.