YSharp.Server 0.1.0-preview.4

This is a prerelease version of YSharp.Server.
dotnet add package YSharp.Server --version 0.1.0-preview.4
                    
NuGet\Install-Package YSharp.Server -Version 0.1.0-preview.4
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="YSharp.Server" Version="0.1.0-preview.4" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="YSharp.Server" Version="0.1.0-preview.4" />
                    
Directory.Packages.props
<PackageReference Include="YSharp.Server" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add YSharp.Server --version 0.1.0-preview.4
                    
#r "nuget: YSharp.Server, 0.1.0-preview.4"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package YSharp.Server@0.1.0-preview.4
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=YSharp.Server&version=0.1.0-preview.4&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=YSharp.Server&version=0.1.0-preview.4&prerelease
                    
Install as a Cake Tool

YSharp.Server

Serves YSharp documents to y-websocket-compatible Yjs clients. The host owns the sockets and authentication; the server takes and emits whole y-websocket messages (sync, awareness, auth).

using YSharp.Server;

await using var server = new YServer(new YServerOptions { Store = new MyDurableStore() });

// For each authenticated socket:
YConnection connection = await server.ConnectAsync(documentId);
// copy each incoming frame into connection.ReceiveAsync, and connection.Outgoing to the socket
  • One mailbox per document: its work runs in order, and documents run in parallel. A slow peer is closed rather than holding the document up.

  • Relay first: a document is served from its merged update, byte for byte as Yjs would serve it. A full Doc is built only for validation hooks and server-side edits, reads and subscribers.

  • Every update is checked, persisted, then broadcast, so the log never holds a refused update and nothing is sent before it is durable.

  • Storage is an IUpdateStore: an append-only V2 log per document with compaction. The in-memory default is not durable; check your own backend with the YSharp.Server.Testing package.

  • Hosting the server

  • How y-sharp works

MIT licensed.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net10.0

NuGet packages (1)

Showing the top 1 NuGet packages that depend on YSharp.Server:

Package Downloads
YSharp.Server.Testing

The storage conformance suite for YSharp.Server: checks that an IUpdateStore backend keeps the log contract (ordering, compaction, deletion, crash and torn-write behaviour, concurrency). No test framework dependency.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.0-preview.4 69 10/27/2026
0.1.0-preview.3 61 10/27/2026
0.1.0-preview.2 64 10/27/2026
0.1.0-preview.1 68 10/27/2026