SDK compatibility matrix
Explore the latest versions of Optimizely Feature Experimentation SDKs and their available features.
Optimizely Feature Experimentation adheres to the Semantic Versioning standard when upgrading and releasing the SDKs and clients. This means that most major version releases might include breaking changes. Optimizely is continuously launching major features, making minor improvements, fixing bugs, and addressing user feedback. Consequently, the minimum version support for some applications and SDK features may vary.
Version support policy
Optimizely encourages you to use the latest version of the SDKs, but Optimizely understands that you might not be able to upgrade immediately. So, Optimizely supports at least the most recent minor version and the immediately preceding major version. In certain situations, such as addressing security threats or vulnerabilities, a breaking change may be necessary if older versions cannot accommodate the required fixes. This could lead to a major version release, potentially without patching the preceding minor version.
- Current major and minor versions – Optimizely provides patch updates for bug fixes, security vulnerabilities, and other compatibility issues for the current minor version and major versions, when possible. If the patch introduces a breaking change and an alternate solution is feasible, a new major version is released with detailed documentation in the changelog on GitHub.
- Prior major and minor versions – Optimizely provides patch updates for bug fixes, security vulnerabilities, and other compatibility issues for the most recent minor release of the preceding major version.
- For example, if a bug is reported while the current version is 2.1.0, and the previous major version of the SDK is 1.8.0, Optimizely will release fixes as 2.1.1 and 1.8.1 (assuming the bug is also present in 1.8.0). This is assuming the fix does not fall under a major change classification (breaking change).
- Older versions – Not supported.
Important
When upgrading to the latest major version of an SDK, you must thoroughly review your code, including performance testing in your staging environment, before releasing to production.
Major version releases may include breaking changes that necessitate code updates.
Discontinuation of programming language version
When the support for a specific underlying programming language version is discontinued due to security vulnerabilities, feature limitations, or because it is no longer supported by its provider, a new major version of the Feature Experimentation SDK is released. This ensures that the Feature Experimentation SDK remains compatible with secure and supported language versions.
For example, if the Feature Experimentation Python SDK currently supports Python versions 2.7, 3.4, 3.5, 3.6, 3.7, and 3.8, and support for the underlying language versions 2.7 and 3.4 are being removed, the updated Feature Experimentation SDK version would be 4.0.0. The update is thoroughly documented in the changelog on GitHub, providing details about the change in compatibility.
Minimum version support
The following tables list cases where version support for features differs. For a complete version history of any given SDK, the changelogs on their GitHub repositories remain the source of truth.
Client-side SDKs
Feature * | Android | iOS (Swift) | Flutter | JavaScript (Browser) | React and React Native | Feature Release | Documentation |
---|---|---|---|---|---|---|---|
Advanced Audience Targeting (VUID creation disabled by default) | 5.0.0 | 5.0.0 | 3.0.0 | TBA | TBA | November 2024 | See Advanced Audience Targeting and Implement Advanced Audience Targeting for client-side SDKs. |
Advanced Audience Targeting (VUID creation enabled by default) | 4.0.0 | 4.0.0 | 2.0.0 | 5.0.0+ | 3.0.0+ | January 2024 | See Advanced Audience Targeting and Implement Advanced Audience Targeting for client-side SDKs. |
Forced Decision methods | 3.13+ | 3.10+ | 1.0.1 | 4.9+ | 2.8+ | January 2022 | See the Forced Decision method topic for your language. For example, Java. |
OptimizelyConfig V2 | 3.11+ | 3.9+ | 1.0.1 | 4.7+ | 2.7+ | September 2021 | See the topic for your language. For example, OptimizelyConfig. |
Decide , Create User Context, and Track Event` methods | 3.9+ | 3.7+ | 1.0.1 | 4.5+ | 2.5+ | February 2021 | See the Migrate from older versions topic for your language. For example, React. |
Numerical Audience >= and <= | 3.7+ | 3.5+ | 1.0.1 | 4.3+ | 2.4+ | October 2020 | Target audiences. |
Version Audience Targeting | 3.7+ | 3.5+ | 1.0.1 | 4.3+ | 2.4+ | October 2020 | Target audiences. |
Datafile Accessor | N/A | N/A | 1.0.1 | 3.7+ | 2.3+ | October 2020 | See the topic for your language, for example, OptimizelyConfig. |
JSON Feature Variables | 3.6+ | 3.4+ | 1.0.1 | 4.1+ | 2.1+ | July 2020 | Create flag variables. |
Targeted Rollouts (per-audience config) | 2.0+ | 3.3.2+ | 1.0.1 | 2.0+ | 1.0+ | June 2020 | See Migrate from older versions topic for your language, for example, Android. |
OptimizelyConfig API | 3.4+ | 3.2+ | 1.0.1 | 3.4+ | 1.1+ | February 2020 | See the OptimizelyConfig topic for your language. For example, OptimizelyConfig. |
Automatic Datafile Management | 1.0+ | 3.1+ | 1.0.1 | 3.2+ | 1.0+ | June 2019 | Manage config (datafile). |
Numerical Audience Targeting | 3.0+ | 3.1+ | 1.0.1 | 3.0+ | 1.0+ | February 2019 | Target audiences. |
Datafile Caching | 1.0+ | 3.1+ | 1.0.1 | N/A | 2.2+ (React Native) | July 2020 | See the Initialize SDK topic for your language. For example, Initialize SDK. |
Offline Event Persistence | 1.0+ | 3.1+ | 1.0.1 | N/A | 2.2+ (React Native) | July 2020 | See the Event Dispatcher topic for your language. For example, Configure event dispatcher. |
*This compatibility matrix captures only noteworthy features released in April 2018 and later. See the changelog for your SDK in GitHub for features released before April 2018 and minor feature releases.
Server-side SDKs
Feature * | Agent | C# | Go | Java | JavaScript (Node) | PHP | Python | Ruby | Feature Released | Documentation |
---|---|---|---|---|---|---|---|---|---|---|
Advanced Audience Targeting | 4.0.0 | 4.0.0 | 2.0.0 | 4.0.0 | 5.0.0+ | N/A | 5.0.0 | 5.0.0 | January 2024 | See Advanced Audience Targeting and Implement Advanced Audience Targeting for server-side SDKs. |
Forced Decision methods | 2.6+ | 3.11+ | 1.8+ | 3.10+ | 4.9+ | 3.9+ | 4.0+ | 3.10+ | January 2022 | See the Forced Decision method topic for your language. For example, Java. |
OptimizelyConfigV2 | 2.5+ | 3.10+ | 1.7+ | 3.9+ | 4.7+ | 3.8+ | 3.10+ | 3.9+ | September 2021 | See the topic for your language. For example, OptimizelyConfig. |
Decide , Create User Context , and Track Event methods | 2.4+ | 3.8+ | 1.6+ | 3.8+ | 4.5+ | 3.7+ | 3.8+ | 3.8+ | February 2021 | See the Migrate from older versions topic for your language. For example, Python. |
Numerical Audience >= and <= | 2.1+ | 3.6+ | 1.4+ | 3.6+ | 4.3+ | 3.5+ | 3.6+ | 3.6+ | October 2020 | Target audiences. |
Version Audience Targeting | 2.1+ | 3.6+ | 1.4+ | 3.6+ | 4.3+ | 3.5+ | 3.6+ | 3.6+ | October 2020 | Target audiences. |
Datafile Accessor | N/A | 3.6+ | 1.4+ | 3.6+ | 4.3+ | 3.5+ | 3.6+ | 3.6+ | October 2020 | See the OptimizelyConfig topic for your language. For example, OptimizelyConfig. |
JSON Feature Variables | 1.3+ | 3.5+ | 1.3+ | 3.5+ | 4.1+ | 3.4+ | 3.5+ | 3.5+ | July 2020 | Create flag variables |
Targeted Rollouts (per-audience config) | 1.1+ | 2.0+ | 1.2+ | 2.0+ | 2.0+ | 2.0+ | 2.0+ | 2.0+ | June 2020 | Run flag deliveries. |
OptimizelyConfig API | 1.0+ | 3.4+ | 1.0+ | 3.4+ | 3.4+ | 3.3+ | 3.4+ | 3.4+ | February 2020 | See the OptimizelyConfig topic for your language. For example, OptimizelyConfig. |
Automatic Datafile Management | 1.0+ | 3.2+ | 1.0+ | 3.2+ | 3.2+ | 3.2+ | 3.2+ | 3.2+ | June 2019 | See the Initialize SDK topic for your language. For example, Initialize SDK. |
Numerical Audience Targeting | 1.0+ | 3.0+ | 1.0+ | 3.0+ | 3.0+ | 3.0+ | 3.0+ | 3.0+ | February 2019 | Target audiences. |
*This compatibility matrix captures only noteworthy features released in April 2018 and later. See the changelog for your SDK in GitHub for features released before April 2018 and minor feature releases.
Current SDK versions
The current, stable SDK release is labeled Latest in GitHub, which is the source of truth and takes precedence over this document.
SDK | Current release | Released |
---|---|---|
Agent | 4.1.0 | August 2024 |
Android | 5.0.0 | November 2024 |
C# | 4.1.0 | November 2024 |
Flutter | 3.0.0 | November 2024 |
Go | 2.0.0 | January 2024 |
Java | 4.2.0 | November 2024 |
Javascript (Browser), Javascript (Node) | 5.3.4 | June 2024 |
PHP | 4.0.1 | December 2023 |
Python | 5.0.1 | June 2024 |
React, React Native | 3.2.2 | August 2024 |
Ruby | 5.0.1 | February 2024 |
Swift | 5.0.0 | November 2024 |
Updated 18 days ago