For Engineers

Ship faster.
Own the stack.

Q-OS is a Rust-first edge runtime with a dead-simple WASM SDK, a live WebSocket telemetry stream, and a RESTful API you can hit with curl. No proprietary SDK lock-in. No vendor fees.

🦀 Rust⚡ WASM🌐 libp2p💾 Sled DB📡 Gossipsub🔑 Ed25519

01. Install in 60 seconds

root@qos-edge-01:~
$curl -sL https://q-os.io/install | bash
›[OK] Binary installed to /usr/local/bin/qos. Ed25519 keypair generated.
$qos start
›[MESH] mDNS Discovery Active. Found 2 Peers on local subnet.
$qos module deploy ./my_module.qos --name heartbeat-agent
›[WASM] Module signed & registered. Invoke at /api/v1/invoke/heartbeat-agent
$

02. REST API Reference

GET/api/v1/state/dump
POST/api/v1/state/edit🔒 Auth
POST/api/v1/invoke/:module🔒 Auth
POST/api/v1/broadcast🔒 Auth
GET/api/v1/stream
GET/api/v1/health

Auth: pass x-qos-api-key: <your-key> header on protected routes.

03. Write a WASM Module

Any language that compiles to WASM is supported. The host exposes a minimal ABI via host::state_get, host::state_set, and host::log. Rust, Go, Zig — your choice.

use qos_sdk::{state, gossip, input, output};

#[no_mangle]
pub extern "C" fn run() {
    let raw = input::read();
    let count: u64 = state::get("visits")
        .and_then(|b| String::from_utf8(b).ok())
        .and_then(|s| s.parse().ok())
        .unwrap_or(0) + 1;

    state::set("visits", count.to_string().as_bytes());
    gossip::publish("metrics", &count.to_le_bytes());

    output::write(
        serde_json::json!({ "ok": true, "visits": count })
            .to_string().as_bytes()
    );
}