Pinguteca.Sdk.Core
0.3.1
See the version list below for details.
dotnet add package Pinguteca.Sdk.Core --version 0.3.1
NuGet\Install-Package Pinguteca.Sdk.Core -Version 0.3.1
<PackageReference Include="Pinguteca.Sdk.Core" Version="0.3.1" />
<PackageVersion Include="Pinguteca.Sdk.Core" Version="0.3.1" />
<PackageReference Include="Pinguteca.Sdk.Core" />
paket add Pinguteca.Sdk.Core --version 0.3.1
#r "nuget: Pinguteca.Sdk.Core, 0.3.1"
#:package Pinguteca.Sdk.Core@0.3.1
#addin nuget:?package=Pinguteca.Sdk.Core&version=0.3.1
#tool nuget:?package=Pinguteca.Sdk.Core&version=0.3.1
Pinguteca.Sdk.Core
Layer 2 gRPC client interceptors for Pinguteca SDKs in .NET. Speaks gRPC over HTTP/2 against the Connect-Go server other SDKs reach via the Connect protocol.
Install
dotnet add package Pinguteca.Sdk.Core
What ships
RetryInterceptorwith full or decorrelated jitter, server-suppliedretry-afterhonouring, and a sensible retryable-status set.TimeoutInterceptorthat stamps a default deadline on unary calls unless the caller already set one.AuthInterceptorwithStaticBearerTokenSourceandClientCredentialsTokenSource(OAuth 2.0 client_credentials, in- memory cache, proactive refresh).SdkErrorandSdkErrorCodeas the typed boundary overGrpc.Core.RpcException.
Quickstart
using Grpc.Core.Interceptors;
using Grpc.Net.Client;
using Pinguteca.Sdk.Core.Auth;
using Pinguteca.Sdk.Core.Retry;
using Pinguteca.Sdk.Core.Timeouts;
var channel = GrpcChannel.ForAddress("https://api.example.com");
var invoker = channel
.Intercept(new TimeoutInterceptor(new() { Default = TimeSpan.FromSeconds(5) }))
.Intercept(new RetryInterceptor())
.Intercept(new AuthInterceptor(new()
{
Source = new ClientCredentialsTokenSource(new()
{
TokenUrl = new Uri("https://idp.example.com/oauth2/token"),
ClientId = "your-client-id",
ClientSecret = Environment.GetEnvironmentVariable("CLIENT_SECRET")!,
}),
}));
var client = new YourService.YourServiceClient(invoker);
Docs
Full documentation, ADRs, and roadmap live in the repository: https://github.com/Pinguteca/sdk-core-dotnet.
| 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
- Google.Protobuf (>= 3.34.1)
- Grpc.Core.Api (>= 2.80.0)
- Grpc.Net.Client (>= 2.80.0)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.8)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Pinguteca.Sdk.Core:
| Package | Downloads |
|---|---|
|
Pinguteca.Sdk.Core.OAuth
OAuth 2.0 grant-flow companion for Pinguteca SDK gRPC clients. Layer 3 add-on to Pinguteca.Sdk.Core implementing the contract in cross-SDK RFC 0017: client_credentials, authorization_code with PKCE S256, OIDC discovery, and mTLS token-endpoint binding. |
GitHub repositories
This package is not used by any popular GitHub repositories.