Wasi

Open-source projects categorized as Wasi

Top 23 Wasi Open-Source Projects

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

  • TinyGo

    Go compiler for small places. Microcontrollers, WebAssembly (WASM/WASI), and command-line tools. Based on LLVM.

    Project mention: Gokrazy – Go Appliances | news.ycombinator.com | 2023-12-18
  • 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.

  • wasmtime

    A fast and secure runtime for WebAssembly

    Project mention: Unlocking the Power of WebAssembly | dev.to | 2024-03-10

    WebAssembly is extremely portable. WebAssembly runs on: all major web browsers, V8 runtimes like Node.js, and independent Wasm runtimes like Wasmtime, Lucet, and Wasmer.

  • wazero

    wazero: the zero dependency WebAssembly runtime for Go developers

    Project mention: Wazero: The zero dependency WebAssembly runtime | news.ycombinator.com | 2024-03-16

    https://github.com/tetratelabs/wazero/releases/tag/v1.7.0

    This includes the final release of the new optimizing compiler, which is a big improvement over the previous one.

    The new version also adds experimental support for threads and snapshot/restore (setjmp/longjmp).

    This is already being used by go-pgquery, all will mean that sqlc won't need to ship to almost copies of wazero (these features had been implemented on a friendly fork, and have now been up-streamed).

  • 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

  • Tokamak

    SwiftUI-compatible framework for building browser apps with WebAssembly and native apps for other platforms

    Project mention: Writing Gnome Apps with Swift | news.ycombinator.com | 2024-03-27

    https://github.com/TokamakUI/Tokamak

    I’m also working (slowly) on native Flutter channels:

    https://github.com/PADL/FlutterSwift

    But this is really targeted at embedded use cases.

  • swift

    WebAssembly support for the Swift programming language (by swiftwasm)

    Project mention: Thoughts on Swift and Objective-C | news.ycombinator.com | 2023-05-13

    The experience has really improved the last few months thanks to the Swift Server Work Group [3].

    - Apple platforms have their own Foundation implementation and the open-source one is incomplete.

    [1]: https://www.swift.org/source-code/

    [2]: https://swiftwasm.org/

    [3]: https://www.swift.org/blog/vscode-extension/

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

  • libxev

    libxev is a cross-platform, high-performance event loop that provides abstractions for non-blocking IO, timers, events, and more and works on Linux (io_uring or epoll), macOS (kqueue), and Wasm + WASI. Available as both a Zig and C API.

    Project mention: Show HN: Async tasks in 350 lines of C | news.ycombinator.com | 2024-03-11
  • runwasi

    Facilitates running Wasm / WASI workloads managed by containerd

    Project mention: Howto: WASM runtimes in Docker / Colima | dev.to | 2024-01-12

    cpu: 4 disk: 60 memory: 12 arch: host hostname: colima autoActivate: true forwardAgent: false # I only tested this with 'docker', not 'containerd': runtime: docker kubernetes: enabled: false version: v1.24.3+k3s1 k3sArgs: [] network: address: true dns: [] dnsHosts: host.docker.internal: host.lima.internal # Added: # - containerd-snapshotter: true (meaning containerd will be used for pulling images) docker: features: buildkit: true containerd-snapshotter: true vmType: vz rosetta: true mountType: virtiofs mountInotify: false cpuType: host # This provisioning script installs build dependencies, WasmEdge and builds the WASM runtime shims for containerd. # NOTE: this takes a LOOONG time! provision: - mode: system script: | [ -f /etc/docker/daemon.json ] && echo "Already provisioned!" && exit 0 echo "Installing system updates:" apt-get update -y apt-get upgrade -y echo "Installing WasmEdge and runwasi build dependencies:" # NOTE: packages curl, git and python3 already installed: apt-get install -y make gcc build-essential pkgconf libtool libsystemd-dev libprotobuf-c-dev libcap-dev libseccomp-dev libyajl-dev libgcrypt20-dev go-md2man autoconf automake criu pkg-config libdbus-glib-1-dev libelf-dev libclang-dev libzstd-dev protobuf-compiler apt-get clean -y - mode: user script: | [ -f /etc/docker/daemon.json ] && echo "Already provisioned!" && exit 0 # # Setting vars for this script: # # Which WASM runtimes to install (wasmedge, wasmtime and wasmer are supported): WASM_RUNTIMES="wasmedge wasmtime wasmer" # # Location of the containerd config file: CONTAINERD_CONFIG="/etc/containerd/config.toml" # # Target location for the WASM runtimes and containerd shims ($TARGET/bin and $TARGET/lib): TARGET="/usr/local" # # Install rustup: # echo "Installing rustup for building runwasi:" curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain none -y source "$HOME/.cargo/env" # # Install selected WASM runtimes and containerd shims: # [[ -z "${WASM_RUNTIMES// /}" ]] && echo "No WASM runtimes selected - exiting!" && exit 0 git clone https://github.com/containerd/runwasi echo "Installing WASM runtimes and building containerd shims: ${WASM_RUNTIMES}:" sudo mkdir -p /etc/containerd/ containerd config default | sudo tee $CONTAINERD_CONFIG >/dev/null for runtimeName in $WASM_RUNTIMES; do case $runtimeName in wasmedge) echo "Installing WasmEdge:" curl -sSfL https://raw.githubusercontent.com/WasmEdge/WasmEdge/master/utils/install.sh | sudo bash -s -- -p $TARGET echo echo "`wasmedge -v` installed!" ;; wasmtime) echo "Installing wasmtime:" curl -sSfL https://wasmtime.dev/install.sh | bash sudo cp .wasmtime/bin/* ${TARGET}/bin/ rm -rf .wasmtime echo "`wasmtime -V` installed!" ;; wasmer) echo "Installing wasmer:" curl -sSfL https://get.wasmer.io | sh sudo cp .wasmer/bin/* ${TARGET}/bin/ sudo cp .wasmer/lib/* ${TARGET}/lib/ rm -rf .wasmer echo "`wasmer -V` installed!" ;; *) echo "ERROR: WASM runtime $runtimeName is not supported!" exit 1 ;; esac cd runwasi echo "Building containerd-shim-${runtimeName}:" cargo build -p containerd-shim-${runtimeName} --release echo "Installing containerd-shim-${runtimeName}-v1:" sudo install ./target/release/containerd-shim-${runtimeName}-v1 ${TARGET}/bin sudo ln -sf ${TARGET}/bin/containerd-shim-${runtimeName}-v1 ${TARGET}/bin/containerd-shim-${runtimeName}d-v1 sudo ln -sf ${TARGET}/bin/containerd-shim-${runtimeName}-v1 ${TARGET}/bin/containerd-${runtimeName}d echo "containerd-shim-${runtimeName} installed." cd .. echo "[plugins.\"io.containerd.grpc.v1.cri\".containerd.runtimes.${runtimeName}]" | sudo tee -a $CONTAINERD_CONFIG >/dev/null echo " runtime_type = \"io.containerd.${runtimeName}.v1\"" | sudo tee -a $CONTAINERD_CONFIG >/dev/null done echo "containerd WASM runtimes and shims installed." # # Restart the systemctl services to pick up the installed shims. # NOTE: We need to 'stop' docker because at this point the actual daemon.json config is not yet provisioned: # echo "Restarting/reloading docker/containerd services:" sudo systemctl daemon-reload sudo systemctl restart containerd sudo systemctl stop docker sshConfig: true mounts: [] env: {}

  • wagi

    Write HTTP handlers in WebAssembly with a minimal amount of work

    Project mention: Reminiscing CGI Scripts | news.ycombinator.com | 2023-12-27

    WAGI and WCGI are the WASM based spiritual successors.

    https://github.com/deislabs/wagi

    https://wasmer.io/posts/announcing-wcgi

  • wasmer-js

    Monorepo for Javascript WebAssembly packages by Wasmer

    Project mention: The New Wasmer JavaScript SDK | news.ycombinator.com | 2023-12-21

    });

    I was then able to just use this code example with one caveat (https://github.com/wasmerio/wasmer-js?tab=readme-ov-file#use...)

    I had to update the SDK import with crossorigin="anonymous"

  • wit-bindgen

    A language binding generator for WebAssembly interface types

    Project mention: Wit-Bindgen | news.ycombinator.com | 2024-01-25
  • faasm

    High-performance stateful serverless runtime based on WebAssembly

    Project mention: XFaaS: Hyperscale and Low Cost Serverless Functions at Meta | news.ycombinator.com | 2024-01-31
  • wasmtime-go

    Go WebAssembly runtime powered by Wasmtime

    Project mention: Wazero: Zero dependency WebAssembly runtime written in Go | news.ycombinator.com | 2023-07-01

    [2] https://github.com/bytecodealliance/wasmtime-go

  • wa

    The Wa Programming Language: Simple, maintainable, compiled language for developing WebAssembly software

  • w2c2

    Translates WebAssembly modules to portable C

    Project mention: Build your own WebAssembly Compiler | news.ycombinator.com | 2023-12-03

    For AOT, the simplest approach, that actually produces the fastest native code, is to naively translate WASM opcodes to C.

    This is for example what W2C2 does: https://github.com/turbolent/w2c2

  • ruby.wasm

    ruby.wasm is a collection of WebAssembly ports of the CRuby.

    Project mention: Formation dev front-end, quel language ? | /r/developpeurs | 2023-05-15
  • runno

    Browser-based runtime for programming languages and WASI binaries.

  • awesome-wasm-tools

    😎 A curated list of awesome, language-agnostic WebAssembly tools

  • kowasm

    Server-side and full stack development with Kotlin and WebAssembly leveraging WASI and Component Model

  • spiderlightning

    A set of WIT definitions and associated implementations to enable app developers to work at a faster pace and require less knowledge of the environment in which they are executing.

  • capsule

    A Capsule application is a runner (or launcher) of wasm functions. Capsule HTTP can serve the functions through HTTP (it’s possible to use Capsule as a simple CLI with Capsule CLI). And soon: NATS and MQTT (by bots-garden)

  • containerd-wasm-shims

    containerd shims for running WebAssembly workloads in Kubernetes

    Project mention: Spin 1.0 — The Developer Tool for Serverless WebAssembly | dev.to | 2023-03-28

    Besides deploying the application locally and deploying to Fermyon Cloud, you can also deploy your Spin application to Kubernetes using the new Containerd integration for Spin.

  • SaaSHub

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

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). The latest post mention was on 2024-03-27.

Wasi related posts

Index

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

Project Stars
1 wasmer 17,609
2 TinyGo 14,335
3 wasmtime 14,224
4 wazero 4,465
5 krustlet 3,521
6 Tokamak 2,412
7 swift 1,235
8 libxev 957
9 runwasi 953
10 wagi 867
11 wasmer-js 860
12 wit-bindgen 851
13 faasm 831
14 wasmtime-go 730
15 wa 710
16 w2c2 660
17 ruby.wasm 601
18 runno 581
19 awesome-wasm-tools 427
20 kowasm 334
21 spiderlightning 300
22 capsule 285
23 containerd-wasm-shims 283
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com