#![no_std] with WASI is more complicated than I thought it would be

This page summarizes the projects mentioned and recommended in the original post on dev.to

CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
coderabbit.ai
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  1. cargo-wasi

    A lightweight Cargo subcommand to build Rust code for the `wasm32-wasi` target

    I use cargo-wasi to build it:

  2. CodeRabbit

    CodeRabbit: AI Code Reviews for Developers. Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.

    CodeRabbit logo
  3. wasi-libc

    WASI libc implementation for WebAssembly

    So what happened is that _start is already defined by this mysterious crt1-command.o. I didn't learn until much after that this is from wasi-libc:

  4. WASI

    WebAssembly System Interface

    Uh... ok then. At this point I decide that I should probably use WASI to define this exit function, instead of just endlessly looping. So I link in proc_exit. According to the WASI docs, proc_exit takes in an exitcode (a u32) and returns nothing. Perfect!

  5. wasi-rs

    Experimental WASI API bindings for Rust

    At this point, I look into Bytecode Alliance's WASI rust bindings, used by Rust's std.

  6. wasmtime

    A lightweight WebAssembly runtime that is fast, secure, and standards-compliant

    I use fd_write, and since I don't want to look into how interface types work, I just look at the wasi crate again, with some help from the wasmtime WASI WAT tutorial.

  7. wee_alloc

    The Wasm-Enabled, Elfin Allocator

    Ok. Now I need to add in a global allocator. I use wee_alloc since I know it works pretty well with WASM: Cargo.toml

  8. compiler-builtins

    Porting `compiler-rt` intrinsics to Rust

    Um. Ok, I remember this kind of thing. I do some searching and then rediscover compiler_builtins.

  9. SaaSHub

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

    SaaSHub logo
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

  • Unlocking the Power of WebAssembly

    3 projects | dev.to | 10 Mar 2024
  • ROS2: Yocto vs. Docker

    2 projects | /r/embedded | 27 Apr 2023
  • Loading and unloading rust libs

    2 projects | /r/rust | 25 Nov 2022
  • WebAssembly on Kubernetes

    13 projects | dev.to | 6 Mar 2025
  • Get in loser. We're rewinding the stack

    2 projects | news.ycombinator.com | 11 Feb 2025