Rust WASM

Open-source Rust projects categorized as WASM

WebAssembly (abbreviated WASM) is a binary instruction format for a stack-​based virtual machine. WebAssembly is an open standard that defines a portable binary-code format for executable programs, and a corresponding textual assembly language, as well as interfaces for facilitating interactions between such programs and their host environment.

Top 23 Rust WASM Projects

  • egui

    egui: an easy-to-use immediate mode GUI in Rust that runs on both web and native

  • Project mention: Macroquad egui DevTools: Rust Game Debugging UI | dev.to | 2024-05-02

    Probably the hardest part, if you are new to egui, is to work out how to display the widgets you want. The egui demo site is quite handy in this regard. It features the egui widgets, and has GitHub links to the Rust code used to make each widget. This will help you replicate them in your own project.

  • v86

    x86 PC emulator and x86-to-wasm JIT, running in the browser

  • Project mention: Run Windows on the browser with WASM power | news.ycombinator.com | 2024-03-14
  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • dioxus

    Fullstack GUI library for web, desktop, mobile, and more.

  • Project mention: Dioxus 0.5: Web, Desktop, Mobile Apps in Rust | news.ycombinator.com | 2024-03-28

    We have a web components example here: https://github.com/DioxusLabs/dioxus/blob/fd21c971038840130f...

    Everything should work like normal except: attributes are not typed, custom event listeners must be implemented with web-sys

  • wasmer

    🚀 The leading Wasm Runtime supporting WASIX, WASI and Emscripten

  • Project mention: Bebop v3: a fast, modern replacement to Protocol Buffers | news.ycombinator.com | 2024-03-12

    This is awesome. I'd love to have upstream support in Wasmer ( https://wasmer.io )

  • RustPython

    A Python Interpreter written in Rust

  • Project mention: Encapsulation in Rust and Python | dev.to | 2024-04-05

    Integrating Rust into Python, Edward Wright, 2021-04-12 Examples for making rustpython run actual python code Calling Rust from Python using PyO3 Writing Python inside your Rust code — Part 1, 2020-04-17 RustPython, RustPython Rust for Python developers: Using Rust to optimize your Python code PyO3 (Rust bindings for Python) Musing About Pythonic Design Patterns In Rust, Teddy Rendahl, 2023-07-14

  • tree-sitter

    An incremental parsing system for programming tools

  • Project mention: Lezer: A Parsing System for CodeMirror, Inspired by Tree-Sitter | news.ycombinator.com | 2024-03-24

    I learned from a google search that these days upstream tree-sitter provides WebAssembly bindings.

    Source: https://github.com/tree-sitter/tree-sitter/tree/master/lib/b...

    NPM: https://www.npmjs.com/package/web-tree-sitter

    Download from the latest Github release: js file (https://github.com/tree-sitter/tree-sitter/releases/download...) and wasm file (https://github.com/tree-sitter/tree-sitter/releases/download...)

  • slint

    Slint is a declarative GUI toolkit to build native user interfaces for Rust, C++, or JavaScript apps.

  • Project mention: Ask HN: Why would you ever use C++ for a new project over Rust? | news.ycombinator.com | 2024-04-02

    Did you get a chance to check https://slint.dev?

    Disclaimer: I work for Slint

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  • wasmtime

    A fast and secure runtime for WebAssembly

  • Project mention: Backdoor in upstream xz/liblzma leading to SSH server compromise | news.ycombinator.com | 2024-03-29

    Just a documentation change, fortunately:

    https://github.com/bytecodealliance/wasmtime/commits?author=...

    They've submitted little documentation tweaks to other projects, too, for example:

    https://learn.microsoft.com/en-us/cpp/overview/whats-new-cpp...

    I don't know whether this is a formerly-legitimate open source contributor who went rogue, or a deep-cover persona spreading innocuous-looking documentation changes around to other projects as a smokescreen.

  • genact

    🌀 A nonsense activity generator

  • wasm-bindgen

    Facilitating high-level interactions between Wasm modules and JavaScript

  • Project mention: Implement a Simple Calculator Android App by Reusing Logics in Rust via JavaScript-WASM Interfacing | dev.to | 2024-05-14

    The binding of Rust (WASM) and JavaScript is done with the help of wasm-bindgen and wasm-pack -- https://github.com/rustwasm/wasm-bindgen/tree/main/examples/without-a-bundler

  • burn

    Burn is a new comprehensive dynamic Deep Learning Framework built using Rust with extreme flexibility, compute efficiency and portability as its primary goals.

  • Project mention: 3 years of fulltime Rust game development, and why we're leaving Rust behind | news.ycombinator.com | 2024-04-26

    You can use libtorch directly via `tch-rs`, and at present I'm porting over to Burn (see https://burn.dev) which appears incredibly promising. My impression is it's in a good place, if of course not close to the ecosystem of Python/C++. At very least I've gotten my nn models training and running without too much difficulty. (I'm moving to Burn for the thread safety - their `Tensor` impl is `Sync` - libtorch doesn't have such a guarantee.)

    Burn has Candle as one of its backends, which I understand is also quite popular.

  • wasm-pack

    📦✨ your favorite rust -> wasm workflow tool!

  • Project mention: Rust + WASM + Typescript [+ React] | /r/rust | 2023-07-18

    For a much simpler but less flexible approach there's wasm-pack for creating JS packages from Rust, and wasm-bindgen for easy interop. Both have very good documentation.

  • boa

    Boa is an embeddable and experimental Javascript engine written in Rust. Currently, it has support for some of the language.

  • Project mention: A list of JavaScript engines, runtimes, interpreters | /r/learnjavascript | 2023-12-10

    boa

  • lunatic

    Lunatic is an Erlang-inspired runtime for WebAssembly

  • Project mention: Spinkube: Running WASM in Kubernetes | news.ycombinator.com | 2024-03-14

    This reminds me of Lunatic [1], an Erlang-inspired runtime for WebAssembly. Unfortunately it seems like development stalled some months ago.

    [1] https://lunatic.solutions/

  • winit

    Window handling library in pure Rust

  • Project mention: Linux version of Warp terminal is here | news.ycombinator.com | 2024-02-22

    Hi! I’m Aloke, an engineer at Warp.

    I’m really excited to share that Warp is now available on Linux! If you’re interested in trying it out, you can download Warp: https://warp.dev/

    Building Warp on Linux was quite an undertaking. Warp uses a custom Rust-based UI framework that we built in house and renders natively on the GPU. To get Warp running on Linux, we built a version of our UI framework that supports winit [1] as a windowing backend. We also built a version of our renderer that uses wgpu [2]. Reducing complexity by using these well-supported, cross platform, frameworks let us bootstrap a version of Linux quicker than expected and should make it easier to build Warp for other platforms (like Windows).

    Please let me know what you think! Happy to answer any questions, either about the product or about technical challenges.

    [1] https://github.com/rust-windowing/winit

  • extism

    The framework for building with WebAssembly (wasm). Easily load wasm modules, move data, call functions, and build extensible apps.

  • Project mention: Extism: Cross-language framework for building with WebAssembly | news.ycombinator.com | 2024-05-02
  • Seed

    A Rust framework for creating web apps

  • Project mention: Yew alternatives | /r/learnrust | 2023-06-13

    Practically every Rust web frontend I've seen takes a react-like approach, with "hooks" to store all of the state in. The now-abandoned Seed and Yew's struct components use a message-passing approach, where the state is stored as member variables on the struct representing the component that are updated based on messages dispatched by event handlers. There's also egui, which has a completely different paradigm that involves making the UI from scratch every frame based on the app's current state. It's not a web framework the same way as the others, but it can draw its UI to a web canvas just fine.

  • Ambient

    The multiplayer game engine

  • Project mention: FLaNK Stack Weekly 09 Oct 2023 | dev.to | 2023-10-10
  • krustlet

    Kubernetes Rust Kubelet

  • Project mention: WASM Instructions | news.ycombinator.com | 2024-02-18

    Oh it’s certainly looking like that IMO.

    You can run wasm in k8s: https://krustlet.dev/

    Docker itself can run wasm: https://wasmlabs.dev/articles/docker-without-containers/

    There are a few serverless runtimes based on wasm: https://wasmcloud.com/

    A lot of those are powered by wasmtime or WasmEdge.

    If you’re wanting to be able to just pull down a random app and run it as wasm, that’s inherently harder with wasm, because you have to recompile, and amazing compiling stuff is always harder than it should be. For example I compiled jq to wasm to other day, so you dont have to worry (as much) about the CVEs that was issued recently. https://github.com/rockwotj/jq-wasi

  • lldap

    Light LDAP implementation

  • Project mention: Keycloak SSO with Docker Compose and Nginx | news.ycombinator.com | 2024-02-11

    Good to hear, I think it'll make many users happy. For me, I've migrated back to Authelia. I moved to authentik because at the time Authelia had no user management. After all of authentik's sharp edges, I've found lldap[0], and was able to implement a pilot in a few hours. I haven't looked back, since everything was converted.

    [0]: https://github.com/lldap/lldap

  • Rhai

    Rhai - An embedded scripting language for Rust.

  • Project mention: RustPython | news.ycombinator.com | 2024-02-07
  • trunk

    Build, bundle & ship your Rust WASM application to the web.

  • Project mention: Secure Pattern for Deploying WASM on S3 | dev.to | 2024-05-11

    Going back to building the WASM package, I used a tool called Trunk to build and bundle the Rust code. When I run the command trunk build I'm presented with the following images. The first is what the build looks like from the console and the second is the contents of the dist directory that is created and populated.

  • black-hat-rust

    Applied offensive security with Rust - https://kerkour.com/black-hat-rust

  • Project mention: Cloudflare for Speed and Security | /r/CloudFlare | 2023-10-20

    Bonuses: If you purchase Cloudflare for Speed and Security before November 4, 2023, you'll get my bestseller, Black Hat Rust, for free! Yes, you read it right, two books for less than the price of one!

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020).

Rust WASM related posts

  • Google Gemini: Context Caching

    1 project | news.ycombinator.com | 16 May 2024
  • Implement a Simple Calculator Android App by Reusing Logics in Rust via JavaScript-WASM Interfacing

    3 projects | dev.to | 14 May 2024
  • Secure Pattern for Deploying WASM on S3

    2 projects | dev.to | 11 May 2024
  • Adding search to static websites

    1 project | dev.to | 4 May 2024
  • Macroquad egui DevTools: Rust Game Debugging UI

    3 projects | dev.to | 2 May 2024
  • Bytecode VMs in Surprising Places

    9 projects | news.ycombinator.com | 30 Apr 2024
  • 3 years of fulltime Rust game development, and why we're leaving Rust behind

    21 projects | news.ycombinator.com | 26 Apr 2024
  • A note from our sponsor - InfluxDB
    www.influxdata.com | 20 May 2024
    Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality. Learn more →

Index

What are some of the best open-source WASM projects in Rust? This list will help you:

Project Stars
1 egui 20,055
2 v86 19,239
3 dioxus 18,613
4 wasmer 17,944
5 RustPython 17,724
6 tree-sitter 16,690
7 slint 15,289
8 wasmtime 14,582
9 genact 9,055
10 wasm-bindgen 7,321
11 burn 7,223
12 wasm-pack 5,973
13 boa 4,730
14 lunatic 4,537
15 winit 4,450
16 extism 3,828
17 Seed 3,788
18 Ambient 3,736
19 krustlet 3,534
20 lldap 3,549
21 Rhai 3,523
22 trunk 3,205
23 black-hat-rust 3,048

Sponsored
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com