Zequent Edge SDK (Go)

The Go Edge SDK connects a physical asset (drone, dock, vehicle) to Zequent by running a small gRPC server your process hosts — the platform dials in and calls your EdgeAdapter implementation, the same inversion-of-control shape as the Java/Python Edge SDKs' EdgeAdapterService.

Status: a narrower API surface than Java/Python — read this before you start

This SDK has a narrower surface than its Java and Python counterparts. Its connector client covers asset lookup/registration and organizations only — no pairing-code methods, no Skill Registry and no schedulers. Its missionautonomy client exposes scheduler lookup only. Commands, capabilities (including input/output schemas) and command execution events are fully supported, so a Go adapter takes part in Skill executions like any other — see Edge Adapter.

It is tagged, published and CI'd. The platform's own simulator is built on it.

Tech Specs

RequirementVersion
Go1.25+
Modulegithub.com/Zequent/zqnt-edge-sdk-go/v2
TransportgRPC (server you host; client stubs to the backend)

Overview

Your application acts as a gRPC server the Zequent backend connects to:

Zequent Backend  ──gRPC──>  Your App (EdgeAdapter)  ──>  Hardware

edgesdk.NewEdgeClient wires together three things in one call:

  • An adapter.EdgeAdapter implementation you provide — receives commands (TakeOff, GoTo, ReturnToHome, ...) and translates them to your hardware.
  • A gRPC server exposing EdgeAdapterService for the platform to call into.
  • Client stubs for LiveData, Connector, and MissionAutonomy (accessed via client.LiveData() / client.Connector() / client.MissionAutonomy()) — see Backend Services.

Available Documentation

DocumentDescription
QuickstartGet a new adapter running in minutes
Edge AdapterThe full EdgeAdapter command reference
Backend ServicesConnector, Live Data, Mission Autonomy client packages

Quick Start

go env -w GONOSUMDB="github.com/Zequent/*"
go env -w GONOPROXY="github.com/Zequent/*"
go get github.com/Zequent/zqnt-edge-sdk-go/v2@v2.0.0

The module path ends in /v2, and so does every import path — without it, Go installs the end-of-life 1.3 line.

type MyDroneAdapter struct {
    adapter.UnimplementedEdgeAdapter   // only override what your hardware supports
}

func (a *MyDroneAdapter) TakeOff(ctx context.Context, req *domains.TakeOffRequest) (*domains.CommandResult, error) {
    return domains.SuccessWithTID("ok", req.TID, req.SN), nil
}

// ZQNT_EDGE_TOKEN and ZQNT_PLATFORM_PUBLIC_KEY are read from the environment
client, _ := edgesdk.NewEdgeClient("live-data-service:8003", "YOUR-DEVICE-SN", &MyDroneAdapter{},
    edgesdk.WithConnectorAddr("connector-service:8010"),
    edgesdk.WithMissionAutonomyAddr("mission-autonomy-service:8004"))
lis, _ := net.Listen("tcp", ":9090")
client.StartServing(context.Background(), lis)

For a complete walkthrough, see the Quickstart Guide.

Was this page helpful?

© Copyright 2026 Zequent. All rights reserved.