Repository navigation
Releases: dXnSix/dXn.SignalR
Releases · dXnSix/dXn.SignalR
Release list
v1.1.1
Build and CI
- (toolchain) require Rust 1.97
- (docs) run the Pages workflow on Node 24 actions
Documentation
- list proxy failures under is_transient and the missing E2E scenarios
- (website) add the documentation site and GitHub Pages workflow
- (website) render Mermaid diagrams
- (website) list dXn.VectorAnimation in the project switcher
- (website) set the site in Inter and replace the hero's grid with a soft gradient
- (website) use the dXn D mark as the logo and favicon, inverted in dark mode
- (website) use an aurora background in the landing hero
- (performance) report the 2026-11-04 comparison with the .NET client
Performance
- (stream) keep a server stream's queue and waker under one lock and wake after unlocking
- (send) share one writer handle across sends instead of cloning it per send
- (invoke) write awaited calls directly when the writer task is idle
- (calls) set up no client stream machinery for calls without streams
- (send) read the clock only when a send has to wait for a lost transport
- (json) encode invocation arguments into one buffer and write the record around it
- (messagepack) encode invocation arguments into one buffer
- (stream) let a server stream's consumer take its queued items in one batch
- (receive) read the liveness clock once per wait and once per received frame
- (receive) take an already buffered frame without arming a timed wait
- (receive) record a burst's receipt once, when the receive loop next waits
- (stream) spin briefly on a contended stream queue lock before blocking
- (calls) move the method name into the invocation instead of copying it
Tests
- (contracts) cover the Docs workflow and the site's build files
- (perf) report each client's CPU time per operation
- (bench) measure the client's round trips over a loopback hub
- (bench) measure server-stream items over the loopback hub
v1.1.0
Documentation
- (release) say the 1.x merge check is manual because the version contract never runs on release pull requests
Features
- (repository) rename the package to dxn-signalr
- Migration: depend on
dxn-signalr = { git = "https://github.com/dXnSix/dXn.SignalR", tag = "v1.1.0" }instead ofrayx-signalr, replacerayx_signalr::paths withdxn_signalr::, and matchdXn SignalR/wherever a server checks the client's User-Agent.
- Migration: depend on
v1.0.0
The first release of rayx-signalr: an ASP.NET Core SignalR client for Rust on native Tokio
targets and in the browser, modelled on the official .NET client.
Features
- Every SignalR call style:
invokefor typed results,send(fire and forget), server streams
as aStream(dropping it cancels the server side), client-to-server streams, and server-to-client
calls (register,register_async,register_typed) including client results. - The JSON hub protocol and, with the
messagepackfeature, MessagePack, both carrying your Serde
types unchanged. - Reconnection: automatic retry policies (including the official 0/2/10/30 s schedule), manual
reconnection through a handler, and ASP.NET Core stateful reconnect, which replays
unacknowledged messages. - The .NET client's lifecycle:
new,startandstop, theon_closed,on_reconnectingand
on_reconnectedhooks,status(),pause()/resume()for mobile backgrounding, keep-alive
pings, server timeouts and a bounded handshake. - WebSockets, Server-Sent Events and Long Polling on every target, tried in the server's order with
fallback, orskip_negotiation()for a direct WebSocket. - Negotiation redirects with access tokens, Bearer and Basic authentication, refreshable tokens and
integrated Windows authentication (native). - HTTP/2 as the .NET client negotiates it and experimental HTTP/3 (
http3feature), native. - Proxies: the system proxy by default on native targets, explicit HTTP, HTTPS and SOCKS proxies,
and proxy auto-config scripts (proxy-pacfeature). - Native TLS with rustls and no OpenSSL: the platform verifier (
tls-platform-verifier) and the
ringprovider (tls-ring) by default, bundled roots (tls-webpki-roots), theaws-lc-rs
provider (tls-aws-lc-rs), per-connection private CAs and client certificates. - A typed
Errorwith anErrorKindfor every failure.
Platforms
- Windows, Linux, macOS, Android and iOS on Tokio; each native connection runs on its own runtime.
- Browser
wasm32-unknown-unknownon the main thread, in Web Workers and in multithreaded
(atomics) builds. WASI and otherwasm32targets are not supported. - Rust edition 2021, MSRV 1.92.
Distribution
- Released as git tags
vX.Y.Zwith a GitHub Release, not on crates.io or any registry: depend on
rayx-signalr = { git = "https://github.com/rayx-ui/RayX.SignalR", tag = "v1.0.0" }.