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: Egui 0.27 – easy-to-use immediate mode GUI for Rust | news.ycombinator.com | 2024-03-27

    Thanks for the feedback!

    It is definitely fixable. Take a look at https://github.com/emilk/egui/issues/996 for some examples of how others have styled egui, or try out https://app.rerun.io/

    Styling is done with `ctx.set_style`, but creating a nice style isn't very easy at the moment (basically you'll have to tweak constants in code, and then recompile). I'm working on making it easier as we speak though!

  • 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

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS 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

  • Project mention: I'm not in a hurry, let's make it fun | /r/linuxmemes | 2023-05-05
  • wasm-bindgen

    Facilitating high-level interactions between Wasm modules and JavaScript

  • Project mention: If the native speed DOM/Web API for Rust becomes a reality, would you be willing to build your web apps with Rust and HTML/CSS? | /r/rust | 2023-12-05

    Another strange issue could be seen in the strict class heritage organized definition of the DOM, which can not be handled very well by rust because of a still unsolved bindgen issue (#210).

  • 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: Burn: Deep Learning Framework built using Rust | news.ycombinator.com | 2024-04-24
  • 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

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

  • extism

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

  • Project mention: Extism – make all software programmable. Extend from within | news.ycombinator.com | 2024-04-08
  • 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: Migrating a JavaScript frontend to Leptos, a Rust framework | dev.to | 2024-03-26

    Note that Leptos uses Trunk to serve the client side application. Trunk is a zero-config Wasm web application bundler for Rust.

  • 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

Index

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

Project Stars
1 egui 19,596
2 v86 19,092
3 dioxus 18,291
4 wasmer 17,735
5 RustPython 17,539
6 tree-sitter 16,450
7 slint 15,020
8 wasmtime 14,407
9 genact 8,800
10 wasm-bindgen 7,270
11 burn 7,020
12 wasm-pack 5,923
13 boa 4,679
14 lunatic 4,530
15 winit 4,390
16 Seed 3,786
17 extism 3,728
18 Ambient 3,724
19 krustlet 3,532
20 lldap 3,473
21 Rhai 3,460
22 trunk 3,161
23 black-hat-rust 3,044

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