OpenFeature.Providers.Ofrep
0.1.3
Prefix Reserved
dotnet add package OpenFeature.Providers.Ofrep --version 0.1.3
NuGet\Install-Package OpenFeature.Providers.Ofrep -Version 0.1.3
<PackageReference Include="OpenFeature.Providers.Ofrep" Version="0.1.3" />
<PackageVersion Include="OpenFeature.Providers.Ofrep" Version="0.1.3" />
<PackageReference Include="OpenFeature.Providers.Ofrep" />
paket add OpenFeature.Providers.Ofrep --version 0.1.3
#r "nuget: OpenFeature.Providers.Ofrep, 0.1.3"
#:package OpenFeature.Providers.Ofrep@0.1.3
#addin nuget:?package=OpenFeature.Providers.Ofrep&version=0.1.3
#tool nuget:?package=OpenFeature.Providers.Ofrep&version=0.1.3
OpenFeature.Providers.Ofrep
An OpenFeature provider implementation for the OpenFeature REST Evaluation Protocol (OFREP). This provider allows you to evaluate feature flags through a REST API that follows the OFREP specification.
Features
- Full implementation of the OpenFeature REST Evaluation Protocol
- Support for all standard flag types (boolean, string, integer, double, object)
Installation
Add the package to your project:
.NET Cli
dotnet add package OpenFeature.Providers.Ofrep
Basic Usage
using OpenFeature;
using OpenFeature.Providers.Ofrep;
using OpenFeature.Providers.Ofrep.Configuration;
// Configure the provider
var config = new OfrepOptions("https://zconfig.company.com/");
// Create and register the provider
var provider = new OfrepProvider(config);
await Api.Instance.SetProviderAsync(provider);
// Use feature flags
var client = Api.Instance.GetClient();
// Boolean flag
var boolFlag = await client.GetBooleanValueAsync("my-flag", false);
// String flag
var stringFlag = await client.GetStringValueAsync("greeting", "Hello");
// Integer flag
var intFlag = await client.GetIntegerValueAsync("max-retries", 3);
// Double flag
var doubleFlag = await client.GetDoubleValueAsync("sample-rate", 0.1);
Advanced Configuration
// Advanced configuration
var config = new OfrepOptions("https://feature-flags.example.com")
{
Timeout = TimeSpan.FromSeconds(10),
Headers = new Dictionary<string, string>
{
["Custom-Header"] = "value",
["Api-Version"] = "v1"
}
};
// Create and register the provider
var provider = new OfrepProvider(config);
await Api.Instance.SetProviderAsync(provider);
TimeProvider Support
For testing and scenarios where you need to control time-related behavior (such as rate limiting), you can provide a custom TimeProvider:
// Using a custom TimeProvider for testing
var customTimeProvider = new FakeTimeProvider(); // From Microsoft.Extensions.TimeProvider.Testing
var provider = new OfrepProvider(config, customTimeProvider);
When using dependency injection, the provider will automatically use any registered TimeProvider from the service container.
Configuration Options
The OfrepOptions class supports the following options:
BaseUrl(required): The base URL for the OFREP API endpointTimeout(optional): HTTP client timeout. The default value is 10 seconds.Headers(optional): Additional HTTP headers to include in requests
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License - see the LICENSE file 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 is compatible. 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 is compatible. 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 is compatible. 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. |
-
.NETFramework 4.6.2
- Microsoft.Bcl.TimeProvider (>= 8.0.0)
- Microsoft.Extensions.Http (>= 8.0.0)
- Microsoft.Extensions.Logging (>= 8.0.0)
- OpenFeature.Hosting (>= 2.9.0 && <= 2.99999.0)
- System.Net.Http (>= 4.3.4)
- System.Net.Http.Json (>= 8.0.1)
- System.Text.Json (>= 8.0.5)
-
.NETStandard 2.0
- Microsoft.Bcl.TimeProvider (>= 8.0.0)
- Microsoft.Extensions.Http (>= 8.0.0)
- Microsoft.Extensions.Logging (>= 8.0.0)
- OpenFeature.Hosting (>= 2.9.0 && <= 2.99999.0)
- System.Net.Http (>= 4.3.4)
- System.Net.Http.Json (>= 8.0.1)
- System.Text.Json (>= 8.0.5)
-
net8.0
- Microsoft.Extensions.Http (>= 8.0.0)
- Microsoft.Extensions.Logging (>= 8.0.0)
- OpenFeature.Hosting (>= 2.9.0 && <= 2.99999.0)
-
net9.0
- Microsoft.Extensions.Http (>= 8.0.0)
- Microsoft.Extensions.Logging (>= 8.0.0)
- OpenFeature.Hosting (>= 2.9.0 && <= 2.99999.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on OpenFeature.Providers.Ofrep:
| Package | Downloads |
|---|---|
|
OpenFeature.Providers.GOFeatureFlag
GO Feature Flag provider for .NET |
GitHub repositories
This package is not used by any popular GitHub repositories.