A debuglet is a WASI WebAssembly program that an executor runs for one measurement. Start with the Go examples: they are built and exercised by this repository. The Rust and C directories are experimental and are not part of the supported workflow: their bindings cover part of the host interface, and the repository runs one retained guest per language against the executor's engine. Python and JavaScript are not currently supported; see Guest languages.
| Language | Status | Start here |
|---|---|---|
| Go | Supported | go/hello-local for output; go/latency for TCP; go/throughput for a local TCP sender. |
| Rust | Experimental: TCP, TLS, listener and ICMPv4 bindings | rust/README.md |
| C | Experimental: TCP, TLS, listener and ICMPv4 declarations | c/README.md |
From the repository root:
make wasm SAMPLE_DIR=examples/debuglets/go/hello-local
dbl run --wasm examples/debuglets/go/hello-local/debuglet.wasm --waitFor network measurements, add the target to --allow and pass any program arguments after --. Only measure systems you are authorized to measure.
dbl run --wasm examples/debuglets/go/latency/debuglet.wasm \
--allow 127.0.0.1 --wait -- -addr 127.0.0.1:8080 -count 3See Write a debuglet for the execution model and SDK. Use dbl demo for a complete self-contained local walkthrough.