Skip to content

Lisandro/v3 websockets in chsarp#5531

Draft
lisandroct wants to merge 133 commits into
masterfrom
lisandro/v3-websockets-in-chsarp
Draft

Lisandro/v3 websockets in chsarp#5531
lisandroct wants to merge 133 commits into
masterfrom
lisandro/v3-websockets-in-chsarp

Conversation

@lisandroct

@lisandroct lisandroct commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

Description of Changes

Re-implements #4763 on top of latest master and .NET 10 support.

There are 4 PRs related to v3 WebSocket API:

  1. v3 websocket transport protocol #4761: Introduced Rust/server v3 websocket transport.
  2. Update C# sdk to use v3 websocket api #4763: Attempted to update C# SDK to use v3, but never merged.
  3. Update typescript sdk to use v3 websocket api #4784: Updated TypeScript SDK to use v3.
  4. Batch websocket responses using the v3 protocol #5061: Refined server-side v3 batching behavior.

#4763 had changes in the Rust side that are already in master and relied on old batching behavior (that changed with #5061).

#4763's description should still be valid and apply.

API and ABI breaking changes

Same as #4763:

None. Existing servers that only support v2 continue to work because the SDK falls back during handshake.

Expected complexity level and risk

Same as #4763:

The main risks are:

  • preserving message ordering when multiple logical messages share one v3 frame
  • preserving fallback behavior for v2
  • keeping the capped batching behavior from starving other websocket work
  • keeping WebGL protocol negotiation and callback marshalling correct

The risk is limited by keeping the existing v2 logical message pipeline intact underneath the new transport layer.

Testing

Same as #4763:

Integration tests for v3 and v2 fallback

JasonAtClockwork and others added 30 commits April 21, 2026 16:34
1) Created exception to `check_global_json_policy` to allow for .NET 8 templates to be generated.
2) Removed .NET 10 DLLs from SDK to prevent Unity issue.
3) Updated NativeAOT smoketest test include `packageSourceMapping` in `NuGet.Config`.
- Add --dotnet-version flag to build/publish/init commands for explicit .NET version control
- Fix smoketests to use local SpacetimeDB.Runtime/BSATN.Runtime packages (not public NuGet)
- Fix CLI binary path detection for debug vs release builds
- Add NativeAOT-LLVM output paths (native/ subdirectory) to csharp.rs
- Force .NET 8 for C# templates in template tests to match template TFM
@lisandroct lisandroct marked this pull request as draft July 13, 2026 15:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants