MESH ONLINE│CODENAME: Kickstart My Heart
v0.39

SDKs and C ABI

Net has ergonomic SDKs for Rust, TypeScript, Python, and Go, plus a C ABI for embedding the runtime or building another language binding.

Choose the language used by your application:

SurfacePackage or entry pointRuntime modelStart here
Rustnet-mesh-sdk / net_sdknative async RustRust quickstart
TypeScript@net-mesh/sdkNode.js with explicit async shutdownTypeScript quickstart
Pythonnet-mesh-sdk / net_sdkPython async API over the native runtimePython quickstart
Gogithub.com/ai-2070/net/gocgo binding with polling for bus eventsGo quickstart
Browser@net-mesh/browsera tab, over a WebRTC DataChannel to an anchorBrowser SDK
C ABIgenerated headers over one libnetexplicit ownership, polling, and return codesC quickstart

The language selector keeps the task sequence in one language where that surface exists:

▸ text
quickstart → announce → discover → invoke → watch → artifacts → errors

The concepts are shared, but call shapes and feature coverage are not identical. Each language landing page states its runtime lifecycle and known gaps. The C ABI has a separate four-page annex because memory ownership, linking, and error handling need explicit treatment.

The browser is a separate runtime rather than a fifth language, so it is organised by what a page does with it instead of by the capability path: @net-mesh/browser is TypeScript over a WebAssembly leaf, and it reaches the mesh through a WebRTC DataChannel to a native anchor. Start at the Browser SDK.

Most applications should begin with a language SDK. Use the lower-level event bus when embedding the bus, writing an adapter, or controlling ingestion and consumption directly.

Alongside the public capability path, every language surface also carries organization capability auth — an audience-scoped, admission-proof path with its own four call shapes and a frozen org: error vocabulary. See Organizations and Protected streaming; each language landing page names that binding's verbs.