General Run Capabilities for SDKs

This overview seeks to indicate the capabilities of the SDKs and explain what they are and what the do. If you are considering helping us by writing a new SDK for your favourite language, or expand on an existing library, this table of capability indicates what each different language can support and where extra work is helpful.

Java Javascript1 Go Dart2 C# Python Ruby

Event Streaming

Y

Y

Y

Y

Y

Y

Y

Rollout Strategies - Server Evaluated2

Y

Y

N

Y

Y

Y

Y

Rollout Strategies - Client Evaluated2

Y

Y

Y

N

Y

Y

Y

Background Start

Y

Y

Y

Y

Y

Y

Y

Block until Start

N

N

Y

N

N

N

N

Readyness Listeners

Y

Y

Y

Y

Y

N

N

Feature Listeners

Y

Y

Y

Y

Y

N

N

Feature Listener Removal

N

Y

Y

Y

Y

N

N

Analytics Support

Y

Y

Y

Y

Y

N

N

Google Analytics

Y

Y

Y

Y

Y

N

N

Feature Overrides

N

Y

N

N

N

Y

N

Fastly Polling Support3

Y

Y

N

Y

N

Y

Y

Fastly SSE Support

Y

Y

Y

Y

Y

Y

Y

  1. Javascript also includes Typescript

  2. To apply rollout strategies (targeting and percentage rules) user context is required to be passed to the SDKs and can be evaluated either on the client or server. Percentage rollout requires use of the session or userKey attributes by default, however using the Admin SDK you can configure alternative keys.

  3. Fastly CDN is supported for all SDKs for streaming (which all SDKs support), and for all SDKs that support Polling. Generally Polling is a technique used by client side APIs (such as Dart), so SDKs that only support Streaming (C#, Go) do not support Fastly polling.

Web + Mobile focused capabilities for SDKs

Web + Mobile Support Java Javascript1 Go Dart2 C#

Catch & Release

N

Y

N

Y

N

Development and Test capabilities for SDKs

Dev/Test Capability Java Javascript1 Go Dart2 C# Python

Test Client

Y

Y

N

Y

Y

N

Feature Interceptors

Y

Y

N

Y

N

Y

  • (1) Javascript and Typescript are supported via a Typescript library. This is available at the npm repository.

  • (2) Dart and Flutter are supported by Dart libraries available at pub.dev.

  • (3) Java is supported by libraries from Apache Maven Central. You will need to chose an OKHttp or Jersey client.

  • (4) C# and .NET is supported by libraries from nuget. Nuget.org