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.
Supported versions
Fromgo.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
Fromdocs/quickstart.md. Until the module path is public, use a replace:
go get github.com/FireWeave-HQ/fireweave-sdk/sdks/go@latest as if a released tag exists.
Initialize
Every blocking call takescontext.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:
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 onmaster. 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
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
Packageopenfeature, 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
Not in this SDK
RegisterTarget/register_targetcontrolPoints/control_pointsnamespace- Typed getters (
GetBooleanValue, …) onFlags - Local/dev adapter
- Working guardrails
- OpenFeature Tracking
Next
Quickstart
Offline evaluate in every language.
Compatibility
Type split, adapters, and conformance.