Quilt4Net.Toolkit
0.6.0
dotnet add package Quilt4Net.Toolkit --version 0.6.0
NuGet\Install-Package Quilt4Net.Toolkit -Version 0.6.0
<PackageReference Include="Quilt4Net.Toolkit" Version="0.6.0" />
<PackageVersion Include="Quilt4Net.Toolkit" Version="0.6.0" />
<PackageReference Include="Quilt4Net.Toolkit" />
paket add Quilt4Net.Toolkit --version 0.6.0
#r "nuget: Quilt4Net.Toolkit, 0.6.0"
#:package Quilt4Net.Toolkit@0.6.0
#addin nuget:?package=Quilt4Net.Toolkit&version=0.6.0
#tool nuget:?package=Quilt4Net.Toolkit&version=0.6.0
Quilt4Net.Toolkit
Core library providing health checks, metrics, remote configuration, feature toggles, content management, and Application Insights integration for .NET applications.
Features can be configured and monitored using Quilt4Net Web.
Feature toggles and remote configuration
Manage configuration and feature flags remotely via Quilt4Net Web or with a Blazor component from Quilt4Net.Toolkit.Blazor.
Feature toggles are boolean values of remote configuration.
Get started
Install the NuGet package Quilt4Net.Toolkit and register the service.
builder.AddQuilt4NetRemoteConfiguration();
Add your API key from Quilt4Net Web in appsettings.json.
{
"Quilt4Net": {
"ApiKey": "YOUR_API_KEY_HERE"
}
}
Feature toggles
Inject IFeatureToggleService to check boolean feature flags.
public class MyService
{
private readonly IFeatureToggleService _featureToggle;
public MyService(IFeatureToggleService featureToggle)
{
_featureToggle = featureToggle;
}
public async Task DoWorkAsync()
{
if (await _featureToggle.GetToggleAsync("new-feature", fallback: false))
{
// new feature logic
}
}
}
Remote configuration
Inject IRemoteConfigurationService for typed configuration values.
var maxRetries = await _configService.GetValueAsync("MaxRetries", fallback: 3);
RemoteConfigurationOptions
| Property | Default | Description |
|---|---|---|
ApiKey |
null |
API key from Quilt4Net Web. |
Quilt4NetAddress |
"https://quilt4net.com/" |
Quilt4Net server address. |
Ttl |
null |
Time-to-live for cached values. |
Configuration path: Quilt4Net:RemoteConfiguration
Content management
Manage multilingual content from Quilt4Net Web.
builder.AddQuilt4NetContent();
Inject IContentService to retrieve and manage content.
var (value, success) = await _contentService.GetContentAsync("welcome-message", "Hello!", languageKey, ContentFormat.String);
ContentOptions
| Property | Default | Description |
|---|---|---|
Application |
Assembly name | Application name. |
Quilt4NetAddress |
"https://quilt4net.com/" |
Quilt4Net server address. |
ApiKey |
null |
API key from Quilt4Net Web. |
Configuration path: Quilt4Net:Content
Health check client
Client for consuming health endpoints from a remote service that uses Quilt4Net Health API.
builder.AddQuilt4NetHealthClient(o =>
{
o.HealthAddress = "https://my-service.example.com/api/Health/";
});
Inject IHealthClient to call remote health endpoints.
var health = await _healthClient.GetHealthAsync(cancellationToken);
var metrics = await _healthClient.GetMetricsAsync(cancellationToken);
var version = await _healthClient.GetVersionAsync(cancellationToken);
HealthClientOptions
| Property | Default | Description |
|---|---|---|
HealthAddress |
null |
Address to the remote health API. |
Configuration path: Quilt4Net:HealthClient
Application Insights client
Client for querying Application Insights data (logs, metrics, exceptions).
builder.AddQuilt4NetApplicationInsightsClient();
ApplicationInsightsOptions
| Property | Default | Description |
|---|---|---|
TenantId |
null |
Azure AD tenant ID (found under "Tenant properties" in Azure portal). |
WorkspaceId |
null |
Application Insights workspace ID. |
ClientId |
null |
App registration client ID with Data.Read permission on Application Insights API. |
ClientSecret |
null |
Client secret for the app registration. |
Configuration path: Quilt4Net:ApplicationInsights
Measure extensions
Extension methods on ILogger to measure and log execution time.
// Measure synchronous work
_logger.Measure("ProcessOrder", () =>
{
// work to measure
});
// Measure async work with result
var result = await _logger.MeasureAsync("FetchData", async () =>
{
return await _repository.GetDataAsync();
});
// Log a count
_logger.Count("ItemsProcessed", items.Length);
Logging attributes
Control HTTP request/response logging on endpoints.
[Logging(RequestBody = true, ResponseBody = false)]
public async Task<IActionResult> StreamData() { ... }
[LoggingStream] // Shorthand for ResponseBody = false
public async Task<IActionResult> StreamEvents() { ... }
Configuration
All options can be set via code or appsettings.json. Code takes priority.
{
"Quilt4Net": {
"ApiKey": "YOUR_API_KEY_HERE",
"HealthClient": {
"HealthAddress": "https://my-service.example.com/api/Health/"
},
"ApplicationInsights": {
"TenantId": "your-tenant-id",
"WorkspaceId": "your-workspace-id",
"ClientId": "your-client-id",
"ClientSecret": "your-client-secret"
},
"RemoteConfiguration": {
"Ttl": "00:10:00"
},
"Content": {
"Application": "MyApp"
}
}
}
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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 is compatible. 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. |
-
net10.0
- Azure.Identity (>= 1.17.1)
- Azure.Monitor.Query (>= 1.7.1)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.3)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.3)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.3)
- Microsoft.Extensions.Logging (>= 10.0.3)
- System.Linq.Async (>= 7.0.0)
- System.Management (>= 10.0.3)
- Tharga.Cache (>= 0.3.5)
-
net8.0
- Azure.Identity (>= 1.17.1)
- Azure.Monitor.Query (>= 1.7.1)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.3)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.3)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.3)
- Microsoft.Extensions.Logging (>= 10.0.3)
- System.Linq.Async (>= 7.0.0)
- System.Management (>= 10.0.3)
- Tharga.Cache (>= 0.3.5)
-
net9.0
- Azure.Identity (>= 1.17.1)
- Azure.Monitor.Query (>= 1.7.1)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.3)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.3)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.3)
- Microsoft.Extensions.Logging (>= 10.0.3)
- System.Linq.Async (>= 7.0.0)
- System.Management (>= 10.0.3)
- Tharga.Cache (>= 0.3.5)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Quilt4Net.Toolkit:
| Package | Downloads |
|---|---|
|
Quilt4Net.Toolkit.Api
Support for API health, liveness, readiness, startup, metrics, version and dependencies. |
|
|
Quilt4Net.Toolkit.Blazor
Package Description |
|
|
Quilt4Net.Toolkit.Health
Features for health, liveness, readiness, startup, metrics, version and dependencies. Adds a health API. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.6.0 | 46 | 2/18/2026 |
| 0.5.4 | 238 | 2/7/2026 |
| 0.5.2 | 174 | 1/31/2026 |
| 0.4.7 | 189 | 1/8/2026 |
| 0.4.4 | 135 | 1/6/2026 |
| 0.4.2 | 148 | 1/6/2026 |
| 0.3.9 | 483 | 12/8/2025 |
| 0.3.7 | 537 | 12/1/2025 |
| 0.3.5 | 385 | 11/30/2025 |
| 0.3.2 | 742 | 11/19/2025 |
| 0.2.8 | 376 | 11/12/2025 |
| 0.2.6 | 314 | 11/11/2025 |
| 0.1.34 | 251 | 11/3/2025 |
| 0.1.32 | 269 | 10/27/2025 |
| 0.1.30 | 304 | 9/14/2025 |
| 0.1.28 | 256 | 8/20/2025 |
| 0.1.26 | 250 | 8/18/2025 |
| 0.1.24 | 237 | 8/18/2025 |
| 0.1.22 | 204 | 8/16/2025 |
| 0.1.14 | 316 | 8/5/2025 |