OpStream¶
A real-time collaborative editing toolkit for .NET applications.
Bring Google-Docs-style co-editing to any document type your app already owns — without rewriting your authentication, your storage, or your editor.
Get started in 5 minutes Browse the engines
What OpStream gives you¶
- Eight production-ready engines for the document shapes you actually ship — plain text, rich text, JSON, hierarchical trees, tables, forms, presence, and per-peer undo / redo.
- Three transports (SignalR, WebSockets, gRPC) — pick the one that already fits your stack.
- Eight storage backends (EF Core, SQL Server, PostgreSQL, MySQL,
SQLite, MongoDB, Redis, in-memory) behind one
IDocumentStorecontract. - Multi-node scaling via the Redis backplane — flip a single
UseRedisBackplane()call and your single-node setup becomes a cluster. - OpenTelemetry traces and metrics out of the box — every op is a span, every store call is timed, every backplane publish is counted.
- A DI-first builder API that follows the standard ASP.NET Core
conventions:
Use*()replaces,Add*()accumulates.
Mental model in one diagram¶
flowchart LR
Client[Editor / UI] -- transport --> Hub[Transport layer]
Hub --> Router[DocumentRouter]
Router --> Session[DocumentSession]
Session --> Engine[IOpEngine<TDoc, TOp>]
Session --> Store[(IDocumentStore)]
Router -. backplane .- Router2[Other node]
Router --> Awareness[AwarenessSession]
You write the engine (or pick a built-in one), wire the transport that fits your client, point at a storage backend, and let OpStream do the rest. Replace any layer when production demands it.
When to use OpStream¶
| You want… | OpStream is a good fit |
|---|---|
| Multiple users editing the same document at the same time | |
| Live cursors, selections, "user is typing" presence | |
| Per-peer undo / redo that respects other peers' work | |
| Offline / re-sync support driven by an op log | |
| Working with your existing ASP.NET Core auth and storage | |
| Going multi-node without rewriting your app | |
| A standalone WYSIWYG editor — no collaboration | use Quill / TipTap directly |
| A pub/sub messaging backbone | use NATS / Kafka / Redis directly |
Next steps¶
-
Install the packages Pick the engine, transport, and storage packages you need.
-
5-minute quickstart Hello-world collaborative text editor.
-
Core concepts Documents, ops, revisions, peers, and the engine lifecycle.
-
Browse the engines Choose the right algorithm for your document shape.