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
| Requirement | Version |
|---|---|
| Go | 1.25+ |
| Module | github.com/Zequent/zqnt-edge-sdk-go/v2 |
| Transport | gRPC (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.EdgeAdapterimplementation you provide — receives commands (TakeOff, GoTo, ReturnToHome, ...) and translates them to your hardware. - A gRPC server exposing
EdgeAdapterServicefor the platform to call into. - Client stubs for
LiveData,Connector, andMissionAutonomy(accessed viaclient.LiveData()/client.Connector()/client.MissionAutonomy()) — see Backend Services.
Available Documentation
| Document | Description |
|---|---|
| Quickstart | Get a new adapter running in minutes |
| Edge Adapter | The full EdgeAdapter command reference |
| Backend Services | Connector, 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.