Complete guide to developing WebAssembly applications for AkiraOS.

Toolchain Setup

cd ~
wget https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-21/wasi-sdk-21.0-linux.tar.gz
tar xvf wasi-sdk-21.0-linux.tar.gz
export WASI_SDK_PATH=~/wasi-sdk-21.0

Build Process

Simple App

// app.c
#include <stdint.h>

__attribute__((import_module("akira")))
__attribute__((import_name("log")))
extern void akira_log(const char *msg, uint32_t len);

__attribute__((export_name("_start")))
void app_main() {
    akira_log("Hello from WASM!", 17);
}

Compile:

$WASI_SDK_PATH/bin/clang \
  --target=wasm32-wasi \
  --sysroot=$WASI_SDK_PATH/share/wasi-sysroot \
  -O3 \
  -Wl,--no-entry \
  -Wl,--export=_start \
  -Wl,--allow-undefined \
  -o app.wasm \
  app.c

Optimization

Size Optimization

# Use wasm-opt
wasm-opt -Oz app.wasm -o app_optimized.wasm

# Strip debug info
wasm-strip app.wasm

Deployment

Upload via HTTP

curl -X POST -F "file=@app.wasm" http://192.168.1.100/upload

Copyright © 2025-2026 AkiraOS Project. Distributed under the Apache 2.0 License.