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 |
-
Javascript also includes Typescript
-
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
oruserKey
attributes by default, however using the Admin SDK you can configure alternative keys. -
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