Skip to content
sstreamzet/docs
Linux SDK previewOpen console
Developer docs / Linux SDK
API and integration guide · Updated 2026-09-23

Linux quickstart

Test the Go API or C ABI in a Linux host app. Ubuntu 24.04 ARM64/AMD64 binaries and source are provided.

Downloads and public test settings

Download the files below directly. The downloads guide provides the public test key and configuration; pair the device code in your own account for testing.

Linux SDK · AMD64

preview / linux 0.3.3

C library and header, runnable C/Go examples, source and test configuration for Intel/AMD 64-bit.

Ubuntu 24.04 / x86_64 · 18.3 MiB · ZIP

Download

streamzet-linux-sdk-preview-20260923-key-amd64.zip

Verify SHA-256
sha256
e22b4792bbdc58878c67c5104d182422f8accfea9da10379252e0a5296d3e57a
Download checksum file

Linux SDK · ARM64

preview / linux 0.3.3

C library and header, runnable C/Go examples, source and test configuration for ARM 64-bit. Not for xSpan ARMv5.

Ubuntu 24.04 / aarch64 · 16.7 MiB · ZIP

Download

streamzet-linux-sdk-preview-20260923-key-arm64.zip

Verify SHA-256
sha256
58d120c0f123169726077a8845ac2619692cb14b45058e72a5aaa80700d6e5d0
Download checksum file

Prerequisites and scope

Run as a normal user, not root. Terminal requires /bin/bash and a PTY. For desktop mode, deploy the matching capture helper and desktop dependencies; headless systems remain terminal-only. Fleet is disabled unless explicitly enabled. This library is not compatible with legacy ARMv5 xSpan.

Backend HTTPS and signaling WSS origins, DNS, correct time and outbound ICE/TURN connectivity are required. relay_only=true requires usable TURN credentials/connectivity. There is no inbound public listener installed by the SDK.

Run the C test application

json
{
  "config": {
    "api_key": "sz_test_public",
    "device_name": "Store Linux",
    "mode": "terminal"
  },
  "state_dir": "/home/operator/.local/state/streamzet-sdk-test",
  "fleet": false
}
sh
chmod 600 config.json
./embedded-example config.json

The C example prints initial status and changes detected every 500 ms, then stops on Enter or stdin closure. running=true does not mean enrolled or connected. Pair in the dashboard after device_code appears.

Embed in Go

go
support, err := sdk.Start(ctx, sdk.Options{
    Config: sdk.Config{
        APIKey: "sz_test_public",
        DeviceName: "Store Linux", Mode: "terminal",
    },
    StateDir: "/home/operator/.local/state/streamzet-sdk",
    Fleet: false,
})
if err != nil { return err }
// The host decides when support is enabled and when to stop.
// Poll support.Identity() for public registration information.
// Later, from a worker during host shutdown:
support.Stop()
return support.Wait()

Import github.com/plitsoft/streamzet/linux-agent/sdk. Use a local module replace to the delivered source until a tagged module release exists. Start enables support availability; it does not show a local consent dialog. The product must expose its own support policy and controls.

Build and lifetime

sh
make sdk
# Outputs: dist/sdk/native/libstreamzet.so, libstreamzet.h, embedded-example

Build on the target Linux ABI with Go 1.26 and a C compiler. Use the generated header; keep libstreamzet.so beside the example. Do not dlclose the Go library during the host lifetime. Start once per process; stop and wait before host shutdown. Preserve state across updates and never share it with the standalone agent. Embedded mode does not run the standalone updater or replace the host executable.