SDK overview
To connect your application to Unleash you need a client SDK for your programming language and an API token. The SDK handles connecting to the Unleash server instance and retrieving feature flags based on your configuration. All versions of Unleash (OSS, Pro, and Enterprise) use the same client SDKs.
Unleash provides official client SDKs for a number of programming languages. Additionally, our community has developed and contributed SDKs for other languages. So if you can't find your favorite language in the list of official SDKs, check out the list of clients written by our fantastic community.
Official SDKs
Server-side SDKs:
Server-side clients run on your server and communicate directly with your Unleash instance to evaluate your feature flags in their respective language. We provide these official clients:
Client-side SDKs
Client-side SDKs can connect to Unleash Edge or to the Unleash front-end API, but not to the regular Unleash client API.
- Android SDK
- Flutter Proxy SDK
- iOS Proxy SDK
- JavaScript SDK
- Next.js
- React Proxy SDK
- Svelte Proxy SDK
- Vue Proxy SDK
Server-side SDK compatibility table
The below table shows what features the various server-side SDKs support. Note that certain features make sense only for some clients due to how the programming language works or due to how the client works.
Legend:
- ✅: Implemented
- ⭕: Not yet implemented, but we're looking into it
- ❌: Not implemented, not planned
- N/A: Not applicable to this SDK
If you see an item marked with a ❌ that you would find useful, feel free to reach out to us (on Slack, for instance) with your use case. It may not be something we can prioritize right now, but if you'd like to contribute it back to the community, we'd love to help you build it.
Capability | Java | Node.js | Go | Python | Ruby | .NET | PHP | Rust |
---|---|---|---|---|---|---|---|---|
Category: Initialization | ||||||||
Async initialization | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ |
Can block until synchronized | ✅ | ✅ | ✅ | ⭕ | ⭕ | ✅ | ✅ | ⭕ |
Default refresh interval | 10s | 15s | 15s | 15s | 15s | 30s | 30s | 15s |
Default metrics interval | 60s | 60s | 60s | 60s | 60s | 60s | 30s | 15s |
Context provider | ✅ | N/A | N/A | N/A | N/A | ✅ | ✅ | N/A |
Global fallback function | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
Flag Query: namePrefix | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ |
Flag Query: tags | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ |
Flag Query: project_name | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | N/A | ⭕ |
Category: Custom Headers | ||||||||
static | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⭕ |
function | ✅ | ✅ | ⭕ | ✅ | ✅ (4.3) | ✅ | ✅ | ⭕ |
Category: Built-in strategies | ||||||||
Standard | ✅ | ✅ | ✅ |