Skip to main content
The Go module is github.com/FireWeave-HQ/fireweave-sdk/sdks/go. It evaluates flags through client.Flags().Evaluate, drives a release lifecycle, and records exposures and signals. OpenFeature and the wire protocol use flagKey.
This module is not published as a tagged module on the Go proxy (verified 2026-08-17: proxy.golang.org returned 404). There is no working go get of a released version. Install with a replace directive from a checkout.
RegisterTarget is not in this SDK. There is no RegisterTarget / register_target symbol under sdks/go on master. Pass properties on each evaluate call. See Targeting and targets.

Supported versions

From go.mod and the compatibility matrix: CI runs 1.25.x and stable. Document the go.mod floor (1.25.12); do not treat the floating stable cell as a support guarantee.
The quickstart uses v0.0.0 + replace. The matrix says package version 0.1.0. No public module tag was verified. NEEDS VERIFICATION of any existing git tags.

Install

From docs/quickstart.md. Until the module path is public, use a replace:
Do not run go get github.com/FireWeave-HQ/fireweave-sdk/sdks/go@latest as if a released tag exists.

Initialize

Every blocking call takes context.Context.
runtime.Initialize(ctx) / Flush(ctx) / Shutdown(ctx). Provider: Init / InitWithContext, Shutdown / ShutdownWithContext.

Configuration and authentication

fireweave.Config on the runtime: Limits, RequireTargetingKey, GlobalContext. No API URL or key on the runtime. adapters/remote.Config:
Auth: Authorization: Bearer <key>. Paths: /v1/flags/evaluate, /v1/capture only — no /v1/targets/register. FW_POSTHOG_HOST and FW_SECRET_KEY appear in examples/go/main.go only. They are not read by the remote adapter. See Configuration and auth.

Targets

Not in this SDK. There is no registration API on master. The compatibility matrix marks it planned. Pass targetingKey and attributes on each Evaluate / OpenFeature call. See Targeting and targets.

Flags (no controlPoints namespace)

Go has Flags() only. There is no controlPoints / control_points facade and no GetBooleanValue-style helpers on Flags. FlagType: "boolean", "string", "integer", "float", "object".
EvaluateOptions: IncludePayload, SendExposure *bool (nil / unset means default false). Evaluation never returns an error: failures are Decision{Reason: ERROR}. Payload via fireweave.WithIncludePayload(ctx) (Go context; OpenFeature has no per-call provider options). See Control points.

Releases

SetContext / Start / Complete / Fail return error, not a result struct. Start/Complete/Fail take the rolloutID string.
rolloutId 1–128 characters; stampIds 1–64 unique stmp_ + 26 Crockford characters; optional chg_ change ID. See Releases.

Exposures

SendExposure on evaluate defaults to false. See Exposures.

Signals

See Signals and outcomes.

Capabilities

Guardrails().Check is a stub. See Capabilities.

Adapters

There is no local/dev adapter (FireweaveLocalAdapter) on Go. adapters/posthog.Config includes ProjectAPIKey, SecretKey, Endpoint, AllowedHosts, LocalEvaluationOnly, FlagRequestTimeout, FlagRequestRetries (default 0), SendExposureEvents (default false), CloseTimeout, Transport. Default PostHog allowlist: five PostHog hosts + loopback. See Adapters.

OpenFeature

Package openfeature, constructor NewProvider(*fireweave.Client). Metadata name "fireweave". Resolvers: BooleanEvaluation, StringEvaluation, FloatEvaluation, IntEvaluation (int64), ObjectEvaluation. FireWeave ships one provider hook: reserved-key guard. No controlPoints naming. Tracking is not implemented. See OpenFeature.

Errors

fireweave.Error with ErrorKind constants — the same 15 kinds. Implements error. Evaluation still returns a Decision; extension methods return error. See Errors.

Testing

adapters/inmemory with WithFlags. Harness env: FIREWEAVE_TEST_SERVER_URL or FW_TEST_SERVER_URL. The test-server stub does not implement target registration. See Testing.

Shutdown

See Initialize, ready, shutdown.

Not in this SDK

  • RegisterTarget / register_target
  • controlPoints / control_points namespace
  • Typed getters (GetBooleanValue, …) on Flags
  • Local/dev adapter
  • Working guardrails
  • OpenFeature Tracking

Next

Quickstart

Offline evaluate in every language.

Compatibility

Type split, adapters, and conformance.
Last modified on August 18, 2026