Skip to main content

Overview

Release notes for the Go SDK, newest first. Go releases are tagged sdks/go/vX.Y.Z and are independent of npm packages.
Go SDK
Unreleased

Added

First release of the Go server SDK (Go 1.23+, no dependencies).
  • One module, github.com/alasti-company/useshipd.com/sdks/go, with a config subpackage (config.ShipdConfig) for defining flags in shipd.config.go.
  • shipd.New with local evaluation from a polled snapshot. IsEnabled, GetVariant, GetNumber, GetJSON, and Evaluate (value, reason, rule ID, snapshot version).
  • Same targeting and rollout buckets as the TypeScript SDK, checked against a shared fixture.
  • Ready(ctx) returns nil once a snapshot loads, or the initial fetch error as soon as that attempt fails.
  • Bootstrap serves a snapshot until a newer one is fetched, so tests can exercise targeting rules without a fake edge.
  • Identify queues identify events for audience insights without changing evaluation context.
  • Events flush every FlushInterval (5 seconds) and as soon as FlushAt (50) events are buffered. DroppedEvents counts events lost to buffer overflow.
  • SnapshotVersion reports the loaded version without recording an event.
  • Shutdown(ctx) attempts to deliver pending events, then closes the client even if delivery fails. Close stops immediately and implements io.Closer.
  • Refresh, Flush, and LastError for manual control.
  • Exported errors for errors.Is: ErrClosed, ErrMalformedSnapshot, and ErrUnsupportedSchema.
  • The client always connects to https://edge.useshipd.com. Overrides.UnsafeEndpoint replaces it for shipd development and tests only, matching the TypeScript SDK’s overrides.unsafeEndpoint.
See the Go SDK reference.