Zwedze.Aetherweave.Grpc
0.2.5
dotnet add package Zwedze.Aetherweave.Grpc --version 0.2.5
NuGet\Install-Package Zwedze.Aetherweave.Grpc -Version 0.2.5
<PackageReference Include="Zwedze.Aetherweave.Grpc" Version="0.2.5" />
<PackageVersion Include="Zwedze.Aetherweave.Grpc" Version="0.2.5" />
<PackageReference Include="Zwedze.Aetherweave.Grpc" />
paket add Zwedze.Aetherweave.Grpc --version 0.2.5
#r "nuget: Zwedze.Aetherweave.Grpc, 0.2.5"
#:package Zwedze.Aetherweave.Grpc@0.2.5
#addin nuget:?package=Zwedze.Aetherweave.Grpc&version=0.2.5
#tool nuget:?package=Zwedze.Aetherweave.Grpc&version=0.2.5
Aetherweave.Grpc
Configuration-driven gRPC client registration for Aetherweave, built on Grpc.Net.ClientFactory.
This package is purely generic gRPC-client plumbing — it has no knowledge of any authentication
flow, exactly like Zwedze.Aetherweave.Http is for HTTP clients.
Installation
dotnet add package Zwedze.Aetherweave.Grpc
Quick Start
1. Reference your generated gRPC client
// Generated from your .proto file, e.g. Greeter.GreeterClient
2. Configure in appsettings.json
{
"Aetherweave": {
"GrpcClients": {
"GreeterService": {
"Address": "https://greeter.example.com",
"Timeout": "00:00:30"
}
}
}
}
3. Register in Program.cs
services.AddAetherweaveGrpcClient<Greeter.GreeterClient>(configuration, "GreeterService");
4. Use in your application
public sealed class GreeterService(Greeter.GreeterClient client)
{
public async Task<string> GreetAsync(string name, CancellationToken ct)
{
var reply = await client.SayHelloAsync(new HelloRequest { Name = name }, cancellationToken: ct);
return reply.Message;
}
}
Configuration Options
GrpcClientOptions
| Property | Type | Default | Required | Description |
|---|---|---|---|---|
Address |
string |
- | ✅ | gRPC channel address (must be absolute URI) |
Timeout |
TimeSpan |
00:00:30 |
❌ | Request timeout (must be > 0) |
Authentication
This package carries no auth code. Because AddAetherweaveGrpcClient<TClient> returns a plain
IHttpClientBuilder — the same type Grpc.Net.ClientFactory's AddGrpcClient<TClient> returns —
the existing Aetherweave Security packages compose onto it directly:
services.AddAetherweaveClientCredentialsAuthentication(configuration);
services.AddAetherweaveGrpcClient<Greeter.GreeterClient>(configuration, "GreeterService")
.WithClientCredentialsAuthentication("greeter-api");
See Zwedze.Aetherweave.Security.ClientCredentials for backend-to-backend (OAuth2 client
credentials) authentication — the only auth case currently supported for gRPC clients.
Error Handling
ConfigurationNotFoundException
Thrown when the configuration section is not found:
try
{
services.AddAetherweaveGrpcClient<Greeter.GreeterClient>(
configuration,
"NonExistentClient");
}
catch (ConfigurationNotFoundException ex)
{
// Configuration section 'Aetherweave:GrpcClients:NonExistentClient' not found.
// Ensure your appsettings.json contains the required configuration.
}
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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
- Grpc.Net.ClientFactory (>= 2.80.0)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.10)
- Microsoft.Extensions.Options.DataAnnotations (>= 10.0.10)
- Zwedze.Aetherweave.Core (>= 0.2.5)
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 |
|---|---|---|
| 0.2.5 | 101 | 9/3/2026 |
| 0.2.5-pre.2 | 61 | 9/3/2026 |
| 0.2.5-pre.1 | 70 | 8/13/2026 |
| 0.2.5-extend-db-registratio... | 61 | 8/31/2026 |
| 0.2.4 | 116 | 8/13/2026 |
| 0.2.4-pre.1 | 68 | 8/13/2026 |
| 0.2.3 | 94 | 8/6/2026 |
| 0.2.3-pre.1 | 69 | 8/6/2026 |
| 0.2.2 | 108 | 8/5/2026 |
| 0.2.2-pre.1 | 76 | 7/30/2026 |