Wasmtime 1.0

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Build time-series-based applications quickly and at scale.
  • SonarLint - Clean code begins in your IDE with SonarLint
  • Zigi - Close all those tabs. Zigi will handle your updates.
  • Scout APM - Truly a developer’s best friend
  • WASI

    WebAssembly System Interface

    Nope, the file I linked to is the WASI API, just expressed as a C header (which I find a bit easier to skim than the actual specification).

    Here's the actual WASI spec:

    https://github.com/WebAssembly/WASI/blob/main/phases/snapsho...

    You'll find it matches the file I linked. Search for "POSIX" or "errno".

  • wasmtime

    A fast and secure runtime for WebAssembly

    https://github.com/bytecodealliance/wasmtime/issues/888

    It is strange to me to call it 1.0 without seamless threading support and while wasm & wasi still have standards to work out.

    Multithreading is a basic operation in everything I build right now. It allows me to make a highly responsive UI while doing massive computations without any user experience impact. It lets me make services which can handle thousands of requests a second. And with Rust, this all comes ergonomically. At this point, I can’t think of a single solution I would implement without doing some form of this.

    While I could treat a wasm application as a client server model (have one module for interfacing / managing, have X for processing where X is the number of available cores) then share memory between them, this creates a lot of boilerplate and makes the code less ergonomic, and can drastically increase friction. I don’t want to have to hack threading into an application with so much manual setup, and I don’t like when a runtime forces architecturally decisions because it lacks a basic capability.

    Anyway, congrats on the release. I will look forward to 2.0 of these runtimes.

  • InfluxDB

    Build time-series-based applications quickly and at scale.. InfluxDB is the Time Series Data Platform where developers build real-time applications for analytics, IoT and cloud-native services in less time with less code.

  • wizard-engine

    Research WebAssembly Engine

    Congrats to the Wasmtime team on the 1.0 release!

    I'm happy to see that more runtimes are maturing and getting use on production cases... I can't wait to see and show what the future entails for WebAssembly on both the server side and the browser!

    Keep up the good work. Also I'd like to use this message to congratulate other runtimes that I'm excited about (apart from Wasmer, of course!): Wizard Engine [1], Wazero [2] and Lunatic [3].

    The future is bright in Wasm land :)

    [1] https://github.com/titzer/wizard-engine

    [2] https://github.com/tetratelabs/wazero

    [3] https://github.com/lunatic-solutions/lunatic

  • wazero

    wazero: the zero dependency WebAssembly runtime for Go developers

    Congrats to the Wasmtime team on the 1.0 release!

    I'm happy to see that more runtimes are maturing and getting use on production cases... I can't wait to see and show what the future entails for WebAssembly on both the server side and the browser!

    Keep up the good work. Also I'd like to use this message to congratulate other runtimes that I'm excited about (apart from Wasmer, of course!): Wizard Engine [1], Wazero [2] and Lunatic [3].

    The future is bright in Wasm land :)

    [1] https://github.com/titzer/wizard-engine

    [2] https://github.com/tetratelabs/wazero

    [3] https://github.com/lunatic-solutions/lunatic

  • lunatic

    Lunatic is an Erlang-inspired runtime for WebAssembly

    Congrats to the Wasmtime team on the 1.0 release!

    I'm happy to see that more runtimes are maturing and getting use on production cases... I can't wait to see and show what the future entails for WebAssembly on both the server side and the browser!

    Keep up the good work. Also I'd like to use this message to congratulate other runtimes that I'm excited about (apart from Wasmer, of course!): Wizard Engine [1], Wazero [2] and Lunatic [3].

    The future is bright in Wasm land :)

    [1] https://github.com/titzer/wizard-engine

    [2] https://github.com/tetratelabs/wazero

    [3] https://github.com/lunatic-solutions/lunatic

  • wasi-libc

    WASI libc implementation for WebAssembly

    Because it uses WASI which is basically "POSIX for Webassembly". Check out the API:

    https://github.com/WebAssembly/wasi-libc/blob/main/libc-bott...

    Symlinks, hardlinks, errno, etc. It's not surprising that it's better supported on Unix than other platforms.

    And yeah I agree it's disappointing they tacked such an obviously platform-biased API on to something that is supposed to be platform independent. I guess it was the pragmatic thing but still...

  • javy

    JS to WebAssembly toolchain

    > - JS is notably missing from the list of languages supported on the front page. But I see mentions of a Spidermonkey.wasm in the blog post. Is running JS on top of wasmtime in production a realistic prospect today? If so, where can I read more? (mainly interested in this for the instantiation time benefits, though maybe all/most of that will be negated by the embedded JS engine?)

    Shopify and others use QuickJS as their JS engine of choice. See https://github.com/Shopify/javy as a starting point. The real benefit is allowing authors of plugins to write JS and not AssemblyScript, not any performance or instantiation time benefits.

    > - How should I go about building a typical web service on top of wasmtime? Can wasmtime itself handle network requests/connections or would I need to build the web server in some other host language and pass request data to wasmtime modules? Haven't been able to find anything in the docs about this.

    There are a lot of choices for this. None I would consider mature, but some leads:

    - https://github.com/deislabs/wagi

  • SonarLint

    Clean code begins in your IDE with SonarLint. Up your coding game and discover issues early. SonarLint is a free plugin that helps you find & fix bugs and security issues from the moment you start writing code. Install from your favorite IDE marketplace today.

  • js-compute-runtime

    JavaScript runtime for Fastly [email protected]

    These are good questions! Here's some answers from the corner of the world I know best as a Wasmtime contributor at Fastly:

    1. Spidermonkey.wasm is the basis of Fastly's JavaScript on [email protected] support. We have found it to be faster than QuickJS. The source code is here: https://github.com/fastly/js-compute-runtime.

    2. Fastly [email protected] is built on wasmtime. You can develop web services for it in Rust, JS, and Go: https://developer.fastly.com/learning/compute/

    3. Fastly's multi-tenant platform is closed source, but our single-tenant local development platform, which also uses wasmtime under the hood as well, is open source: https://github.com/fastly/viceroy. It isn't a big leap to make viceroy multi-tenant: Wasmtime provides everything you need, and all Viceroy would have to do is dispatch on e.g. HTTP host header to the correct tenant. Our multi-tenant platform is closed source because it is very specialized for use on Fastly's edge, not because the multi-tenant aspect is special.

  • Viceroy

    Viceroy provides local testing for developers working with [email protected]

    These are good questions! Here's some answers from the corner of the world I know best as a Wasmtime contributor at Fastly:

    1. Spidermonkey.wasm is the basis of Fastly's JavaScript on [email protected] support. We have found it to be faster than QuickJS. The source code is here: https://github.com/fastly/js-compute-runtime.

    2. Fastly [email protected] is built on wasmtime. You can develop web services for it in Rust, JS, and Go: https://developer.fastly.com/learning/compute/

    3. Fastly's multi-tenant platform is closed source, but our single-tenant local development platform, which also uses wasmtime under the hood as well, is open source: https://github.com/fastly/viceroy. It isn't a big leap to make viceroy multi-tenant: Wasmtime provides everything you need, and all Viceroy would have to do is dispatch on e.g. HTTP host header to the correct tenant. Our multi-tenant platform is closed source because it is very specialized for use on Fastly's edge, not because the multi-tenant aspect is special.

  • wasm-micro-runtime

    WebAssembly Micro Runtime (WAMR)

    Seems the micro runtime also released 1.0:

    https://github.com/bytecodealliance/wasm-micro-runtime

    But why does it not have binaries compiled and ready?

  • We worked with Igalia to upstream the SpiderMonkey patches required to build for wasm32-wasi. We point to a fixed version (see: https://github.com/fastly/spidermonkey-wasi-embedding) which we haven't updated for a minute.

  • wasmer

    🚀 The leading WebAssembly Runtime supporting WASI and Emscripten

    Please make sure you benchmark with the latest beta of Wasmer! (3.0.0-beta2)

    https://github.com/wasmerio/wasmer/releases

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts