`wasm32-wasi` support added to Tokio

This page summarizes the projects mentioned and recommended in the original post on reddit.com/r/rust

Our great sponsors
  • SonarLint - Clean code begins in your IDE with SonarLint
  • talent.io - Download talent.io’s Tech Salary Report
  • Scout APM - Truly a developer’s best friend
  • InfluxDB - Build time-series-based applications quickly and at scale.
  • tokio

    A runtime for writing reliable asynchronous applications with Rust. Provides I/O, networking, scheduling, timers, ...

    note: support has not stabilized yet, tracking issue

  • wasmer

    🚀 The leading WebAssembly Runtime supporting WASI and Emscripten

    It allows WebAssembly to be programs which are run using a runtime on the command line, like Wasmtime, Wasmer, Wasm3, etc. Sometimes, you want to have a program which acts like a server, in that it can receive connections and send responses. This is what the patch for Tokio does.

  • 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.

  • enarx

    Enarx: Confidential Computing with WebAssembly

    Yup, Wasm without NodeJS, without the browser. Just need a runtime, and some of the runtimes can be used as a libary, allowing for Wasm integration into other projects. For example, my company works on Enarx r/enarx which uses Wasmtime as a library to allow running Wasi applications in encrypted enclaves on AMD Epyc and Intel Xeon CPUs.

  • MIO

    Metal IO library for Rust

    Made possible by Wasi support for Mio https://github.com/tokio-rs/mio/pull/1576

  • wasm3

    🚀 The fastest WebAssembly interpreter, and the most universal runtime

    It allows WebAssembly to be programs which are run using a runtime on the command line, like Wasmtime, Wasmer, Wasm3, etc. Sometimes, you want to have a program which acts like a server, in that it can receive connections and send responses. This is what the patch for Tokio does.

  • wasmtime

    A fast and secure runtime for WebAssembly

    It allows WebAssembly to be programs which are run using a runtime on the command line, like Wasmtime, Wasmer, Wasm3, etc. Sometimes, you want to have a program which acts like a server, in that it can receive connections and send responses. This is what the patch for Tokio does.

  • wasi-libc

    WASI libc implementation for WebAssembly

    Wasi is basically WebAssembly without the browser, or WebAssembly with a `main()`.

  • talent.io

    Download talent.io’s Tech Salary Report. Median salaries, most in-demand technologies, state of the remote work... all you need to know your worth on the market by tech recruitment platform talent.io

  • hyper

    An HTTP library for Rust (by hyperium)

    PR for Hyper: https://github.com/hyperium/hyper/pull/2900, haven't been able to get dev attention, and tried reaching out on their Discord server

  • axum

    Ergonomic and modular web framework built with Tokio, Tower, and Hyper (by rjzak)

    Axum for Wasi: https://github.com/rjzak/axum/tree/wasi_wip, I haven't filed a PR yet since I'm waiting on the next version for Tokio, and for the Hyper PR to be merged.

  • wasi-crypto

    WASI Cryptography API Proposal

    That's why there's wasi-crypto! https://github.com/WebAssembly/wasi-crypto

  • wasi-crypto-example

    Simple example: https://github.com/rjzak/wasi-crypto-example

  • wasi-sockets

    WASI API proposal for managing sockets

    Wasi-sockets for better networking support: https://github.com/WebAssembly/wasi-sockets (though I don't think there's any implementations of this yet)

  • component-model

    Repository for design and specification of the Component Model

    Not really. Use cases like that would be covered by the Component-Model Proposal I'd guess.

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