Packages Overview¶
ContextR is a multi-package ecosystem. Use this section as a package selection compass.
Ecosystem Model¶
- Core: ambient context, snapshots, domains, and registration primitives.
- Strategies: payload and propagation behavior (
Mapping,Inline JSON,Chunking,Token). - Transports: ingress/egress integrations for ASP.NET Core,
HttpClient, and gRPC. - Utilities and extensions: package-specific adapters and policy hooks.
Which Packages Do I Need?¶
Start with this decision flow:
- Need ambient context and snapshots only? Install Core.
- Need ingress resolution (gateway/edge first-hop derivation)? Add Resolution.
- Need cross-service propagation? Add Propagation Base + Propagation Mapping.
- Need complex property payloads? Add Propagation Inline JSON.
- Need oversize chunk split/reassembly? Add Propagation Chunking.
- Need out-of-band token contracts for large payload references? Add Propagation Token.
- Need ASP.NET Core ingress extraction? Add Hosting ASP.NET Core.
- Need outbound HTTP propagation? Add Transport HTTP.
- Need outbound/inbound gRPC metadata propagation? Add Transport gRPC.
Package Catalog¶
| Package | Purpose | When to use | Install | Depends on |
|---|---|---|---|---|
ContextR |
Core ambient context and snapshot model | Always; foundation for all scenarios | dotnet add package ContextR |
- |
ContextR.Resolution |
First-hop context resolution and precedence policy | Gateway/edge ingress where resolved and propagated values must be merged | dotnet add package ContextR.Resolution |
ContextR |
ContextR.Propagation |
Transport-agnostic propagation contracts and policies | Any scenario that propagates context over carriers | dotnet add package ContextR.Propagation |
ContextR |
ContextR.Propagation.Mapping |
Property-to-key mapping DSL and default propagator | Most HTTP/gRPC header metadata mapping scenarios | dotnet add package ContextR.Propagation.Mapping |
ContextR, ContextR.Propagation |
ContextR.Propagation.InlineJson |
JSON payload strategy for complex mapped properties | Lists/arrays/custom class properties in transport metadata | dotnet add package ContextR.Propagation.InlineJson |
ContextR, ContextR.Propagation |
ContextR.Propagation.Chunking |
Chunk split/reassembly for oversize payloads | Metadata size constraints with ChunkProperty behavior |
dotnet add package ContextR.Propagation.Chunking |
ContextR.Propagation |
ContextR.Propagation.Token |
Token/reference contracts for out-of-band payload storage | Large payload reference contracts and token codecs | dotnet add package ContextR.Propagation.Token |
ContextR.Propagation |
ContextR.Hosting.AspNetCore |
ASP.NET Core ingress extraction middleware | Service ingress from HTTP where context arrives in headers | dotnet add package ContextR.Hosting.AspNetCore |
ContextR, ContextR.Propagation, ContextR.Transport.Http |
ContextR.Transport.Http |
HttpClient propagation handler and registration APIs |
Outbound HTTP propagation through IHttpClientFactory |
dotnet add package ContextR.Transport.Http |
ContextR, ContextR.Propagation |
ContextR.Transport.Grpc |
gRPC interceptors and metadata adapters | Outbound/inbound gRPC context propagation | dotnet add package ContextR.Transport.Grpc |
ContextR, ContextR.Propagation |