.NET SDK Guide
Use the roam-dotnet package when you want to integrate ROAM into .NET services, enterprise applications, and platform components with a typed client experience that fits naturally into the broader .NET ecosystem.
Why Choose The .NET SDK
- Integrate ROAM into ASP.NET, worker services, and internal platform components.
- Build strongly typed service-to-service integrations on a familiar .NET foundation.
- Adopt ROAM in production applications without dropping to lower-level protocol work unless you need it.
Installation
dotnet add package Roam.Dotnet
Or via NuGet:
Install-Package Roam.Dotnet
What You Get
The .NET SDK gives you:
- A typed .NET integration surface for embedding ROAM into application and platform code.
- Interop over the public runtime model so .NET services stay aligned with the supported ROAM contract.
- Utilities and examples that help teams wire ROAM into real service and enterprise deployment patterns.
Quick Start
using Roam;
var engine = new ReflectionEngine();
var server = new GrpcServer();
await server.RunAsync();
This is the fastest way to stand up a .NET integration, validate the client path, and start wiring ROAM into a service or application workflow.
Runtime Augmentation
ROAM runtime calls can carry runtime-augmentation selection metadata so your .NET application can attach stable business and request context before validation or execution.
Use the public runtime headers when you need ROAM behavior to reflect application identity, tool intent, tenant boundaries, or domain-specific routing context.
The key runtime headers are:
x-roam-runtime-augmentation-idto reference a specific augmentation identifierx-roam-runtime-augmentation-keyto reference a stable augmentation keyx-roam-tool-name,x-roam-tool-intent,x-roam-user-id,x-roam-organization-id,x-roam-domain-tags, andx-roam-table-namesto provide matching context
ROAM emits resolved augmentation identity into normal query events, while sensitive rendered content remains reserved for dedicated audit handling.
Suggested Starting Points
- Shipping a typed platform or product integration on .NET: start here.
- Embedding ROAM into an ASP.NET or worker-service architecture: start here.
- Passing application context into ROAM execution paths: start with the runtime-augmentation headers above.
Contributing
For Rust Core Changes
If you need to change the shared public runtime or core ROAM behavior:
- File an issue in roam-public
- Submit a PR to roam-public (see Contribution Workflow)
- Once merged and exported, the change flows to roam-dotnet automatically
For .NET Layer Improvements
To improve the .NET developer experience, add helpers, or expand documentation:
- Fork roam-dotnet
- Create a feature branch
- Make changes in
Roam/(.NET layer only) - Submit PR to roam-dotnet/main
- We’ll review and merge
Example:
// Add a utility class
// Roam/Config/ConfigLoader.cs
public static class ConfigLoader
{
public static RoamConfig LoadFromFile(string path)
{
// Load configuration
}
}
API Reference
See the full API docs for the .NET package surface, method signatures, and integration details.