Installation¶
OpStream is shipped as a set of focused NuGet packages. You only pull in the engines, transports, and storage you actually need.
Target frameworks¶
OpStream multi-targets .NET 8.0 and .NET 9.0. C# 13 features are used internally; consumers can stay on C# 10+ — only public surfaces matter.
Minimum install¶
Every project needs the server package and at least one transport:
dotnet add package OpStream.Server
dotnet add package OpStream.Server.Transports.SignalR # or WebSockets / gRPC
That alone gives you:
- The
TextOtEngineregistered for document type"text". - In-memory storage (not for production).
- The single-node
LocalBackplane(in-process fan-out only). - An
AllowAllAuthorizerthat grants full access (replace before going live).
Pick your storage¶
| Backend | Package |
|---|---|
| Entity Framework Core | OpStream.Server.Storage.EntityFrameworkCore |
| SQL Server | OpStream.Server.Storage.SqlServer |
| PostgreSQL | OpStream.Server.Storage.PostgreSQL |
| MySQL | OpStream.Server.Storage.MySQL |
| SQLite | OpStream.Server.Storage.SQLite |
| MongoDB | OpStream.Server.Storage.MongoDB |
| Redis | OpStream.Server.Storage.Redis |
Pick your transport¶
| Transport | Package | Best for |
|---|---|---|
| SignalR | OpStream.Server.Transports.SignalR |
Web / Blazor / .NET clients sharing a hub |
| WebSockets | OpStream.Server.Transports.WebSockets |
Lightweight raw-WS clients (mobile, native) |
| gRPC | OpStream.Server.Transports.gRPC |
Service-to-service, polyglot clients |
You can register more than one — each transport gets its own endpoint.
Going multi-node¶
Add the Redis backplane:
…and call UseRedisBackplane(...) in your DI setup. See
Backplane (scaling out).
Client packages¶
Reference one of the typed client transports from your .NET client app
(WPF, WinForms, MAUI, Blazor, console):
dotnet add package OpStream.Client.Transports.SignalR
# or
dotnet add package OpStream.Client.Transports.WebSockets
dotnet add package OpStream.Client.Transports.gRPC
For Blazor UIs we also ship optional helpers:
Aspire integration (optional)¶
If you're using .NET Aspire for your distributed dev / deployment topology:
This package provides AddOpStream() resources for your AppHost, including
the wired diagnostics endpoints.