From d4a6916b98495b2b704829e408791258dca5bdaa Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Wed, 26 Aug 2026 14:58:43 +0000 Subject: [PATCH] docs: Add an OpenFeature feature matrix to the README Co-Authored-By: rlamb@launchdarkly.com <4955475+kinyoklion@users.noreply.github.com> --- README.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/README.md b/README.md index 3011175..c68a044 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,29 @@ This version of the SDK is built for the following targets: * .NET Framework 4.7.1: runs on .NET Framework 4.7.1 and above. * .NET Standard 2.0: runs in any project that is targeted to .NET Standard 2.x rather than to a specific runtime platform. +## Feature matrix + +This matrix mirrors the [feature matrix of the OpenFeature SDK for .NET](https://github.com/open-feature/dotnet-sdk#-features) and describes what this provider supports. Rows which are not supported state whether the limitation comes from the OpenFeature .NET SDK or from the provider. + +| Status | Feature | Notes | +|--------|-------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| ✅ | Providers | Evaluates boolean, string, integer, double, and structure values through the LaunchDarkly .NET SDK. | +| ✅ | Targeting | The `EvaluationContext` is converted to a LaunchDarkly single or multi-context. See [OpenFeature Specific Considerations](#openfeature-specific-considerations). | +| ✅ | Hooks | Hooks are registered on the OpenFeature API and client; the provider requires no additional support and its results are visible to hooks, including [flag metadata](#flag-metadata). | +| ✅ | Tracking | `Track` sends a LaunchDarkly custom event for the evaluation context, with the tracking event value and remaining details attached. | +| ✅ | Logging | The provider logs through the logging configuration of the `Configuration` it is given. | +| ✅ | Domains | Domains bind clients to providers in the OpenFeature SDK; a separate provider instance may be registered per domain. | +| ✅ | Eventing | LaunchDarkly data source status changes are emitted as `PROVIDER_READY`, `PROVIDER_STALE`, and `PROVIDER_ERROR`. Flag changes are emitted as `PROVIDER_CONFIGURATION_CHANGED` with the changed flag key. | +| ✅ | Initialization | `InitializeAsync` waits for the LaunchDarkly client, using the configured `StartWaitTime` as the timeout when it is greater than zero. | +| ✅ | Shutdown | `ShutdownAsync` closes the LaunchDarkly client. A closed client cannot be restarted, so a new provider instance is required afterward. | +| ✅ | Transaction Context Propagation | Provided by the OpenFeature SDK, which merges the transaction context into the evaluation context before the provider is called; no provider support is required. | +| ✅ | Extending | The underlying LaunchDarkly client is available through `GetClient()` for functionality with no OpenFeature equivalent. | +| ✅ | Multi-Provider (experimental) | Provided by the OpenFeature SDK; no provider support is required. | +| ⚠️ | DependencyInjection (experimental) | Not yet supported by this provider: [#48](https://github.com/launchdarkly/openfeature-dotnet-server/issues/48), [#49](https://github.com/launchdarkly/openfeature-dotnet-server/pull/49). | +| ✅ | Flag metadata | LaunchDarkly evaluation reason details are returned as OpenFeature flag metadata. See [Flag Metadata](#flag-metadata). | + +Supported: ✅ | Partially supported: ⚠️ | Not supported: ❌ + ## Getting started ### Installation