Flare.OpenFeature.Provider
10.1.1
dotnet add package Flare.OpenFeature.Provider --version 10.1.1
NuGet\Install-Package Flare.OpenFeature.Provider -Version 10.1.1
<PackageReference Include="Flare.OpenFeature.Provider" Version="10.1.1" />
<PackageVersion Include="Flare.OpenFeature.Provider" Version="10.1.1" />
<PackageReference Include="Flare.OpenFeature.Provider" />
paket add Flare.OpenFeature.Provider --version 10.1.1
#r "nuget: Flare.OpenFeature.Provider, 10.1.1"
#:package Flare.OpenFeature.Provider@10.1.1
#addin nuget:?package=Flare.OpenFeature.Provider&version=10.1.1
#tool nuget:?package=Flare.OpenFeature.Provider&version=10.1.1
Flare.OpenFeature.Provider
OpenFeature provider for Flare feature flag management system. Supports in-memory caching with background polling, provider lifecycle events, and automatic context conversion.
Installation
dotnet add package Flare.OpenFeature.Provider
Quick Start
services.AddOpenFeature(builder =>
{
builder.AddFlareProvider(new FlareApiClientOptions
{
BaseUrl = "https://flare.example.com",
ApiKey = "your-api-key",
Scope = "production"
});
});
With IConfiguration binding
{
"Flare": {
"BaseUrl": "https://flare.example.com",
"ApiKey": "your-api-key",
"Scope": "production"
}
}
services.AddOpenFeature(builder =>
{
builder.AddFlareProvider(configuration);
});
With custom caching options
services.AddOpenFeature(builder =>
{
builder.AddFlareProvider(
new FlareApiClientOptions
{
BaseUrl = "https://flare.example.com",
ApiKey = "your-api-key",
Scope = "production"
},
new FlareProviderOptions
{
PollingInterval = TimeSpan.FromSeconds(15),
StaleThreshold = 5,
CachingEnabled = true
});
});
Evaluating Flags
public class MyService
{
private readonly IFeatureClient _client;
public MyService(IFeatureClient client) => _client = client;
public async Task DoWork()
{
var isEnabled = await _client.GetBooleanValueAsync("my-flag", false);
}
}
Features
Caching and Background Polling
When caching is enabled (default), the provider:
- Fetches all flags on initialization and populates an in-memory cache
- Resolves flags from cache for near-instant evaluations
- Polls the Flare API in the background to keep the cache fresh
- Emits OpenFeature events on flag changes, errors, and staleness
Cache reads are lock-free using volatile reference swap for minimal overhead on the hot path.
Provider Events
The provider emits standard OpenFeature events:
| Event | When |
|---|---|
ProviderConfigurationChanged |
Background poll detects flag value or variant changes |
ProviderError |
A poll attempt fails |
ProviderStale |
Consecutive poll failures exceed the stale threshold |
Direct Evaluation Fallback
When caching is disabled, flags are evaluated directly against the Flare API per request. Errors are surfaced as OpenFeature FeatureProviderException subtypes (GeneralException, ProviderNotReadyException, ParseErrorException, etc.), which the SDK handles automatically.
Configuration Options
FlareApiClientOptions
| Option | Type | Default | Description |
|---|---|---|---|
BaseUrl |
string |
Required | Flare API base URL |
ApiKey |
string |
Required | API key for authentication |
Scope |
string |
Required | Scope/environment (e.g., "production") |
FlareProviderOptions
| Option | Type | Default | Description |
|---|---|---|---|
PollingInterval |
TimeSpan |
30s |
Background poll interval |
StaleThreshold |
int |
3 |
Consecutive failures before emitting ProviderStale |
CachingEnabled |
bool |
true |
Enable in-memory caching with background polling |
Supported Value Types
Currently only boolean flag evaluation is supported. Calling GetStringValueAsync, GetIntegerValueAsync, GetDoubleValueAsync, or GetStructureValueAsync will throw a TypeMismatchException.
License
MIT License - see LICENSE for details.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Flare.HttpClient (>= 10.0.0)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.2)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.2)
- Microsoft.Extensions.Http (>= 10.0.2)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.2)
- Microsoft.Extensions.Options (>= 10.0.2)
- OpenFeature (>= 2.11.1)
- OpenFeature.Hosting (>= 2.11.1)
- System.Net.Http (>= 4.3.4)
- System.Text.Json (>= 10.0.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 10.1.1 | 61 | 3/26/2026 |
| 10.1.0 | 31 | 3/25/2026 |
| 10.0.0-alpha | 110 | 1/28/2026 |