lazily v0.11.0
Prepared for the operator publish (#12b1). Last published: crates.io 0.10.3.
Tag v0.11.0 is intended to point at this release commit on main.
Highlights
This minor lands eager Signal primitives across the single-threaded, thread-safe, and async contexts, plus a full WebRTC DataChannel transport stack on top of the v0.10.x reactive core: a sans-IO str0m backend, a real-socket networked backend, a WebSocket fallback, signaling, and the glue that drives a complete handshake end to end.
Features
- #3dmm / #x7sp - add
SignalHandle,ThreadSafeSignalHandle, andAsyncSignalHandleas eager derived values backed by memo slots plus puller effects. Signals provide always-materializedv1 -> v2updates with no observable unset window, inherit memo equality suppression, and are documented in the README, SPEC, PROTOCOL, and mdBook docs. - #lzwebrtcwire — wire
SignalingClienttoStr0mNet. Newwebrtc_signalingmodule (offer_to_peer/answer_next_offer) owns the full SDP offer/answer + trickled-ICE handshake overSignalingClient, pumping frames intoaccept_answer/add_remote_candidateuntil the data channel opens. Integration test brokers two realSignalingClientWebSocket peers through an in-process #yxjw-protocol loopback relay and proves a permission-filteredSnapshotcrosses the negotiated channel. - #lzwebrtcnet — networked str0m
DataChannelbackend (Str0mNet) over a real UDP socket with the str0m DTLS/SCTP/ICE driver. - #97xn — multi-channel reactive bridge hub.
- #akp3 — WebSocket
DataChannelbackend (in-process loopback over a real WS handshake). - #webrtcbackend — concrete sans-IO str0m
DataChannelbackend. - #webrtc2 / #webrtc3 — WebRTC
DataChannelIPC transport abstraction, loopback integration tests, and Criterion benchmarks.
CI / tests
- #lzleanmodel - CI now builds the sibling Lean formal model so protocol invariants stay checked alongside the Rust suite.
- #lzspecconf — IPC conformance run against the canonical lazily-spec fixtures.
- #k03k / #lzasync — deterministic async resolve-loop window coverage.
Remaining (operator-gated)
- Live two-host / NAT validation of
Str0mNetthrough the deployed #yxjw Cloudflare Worker (#lzwebrtcnet-e2e, part of #h6qb) — cannot be done in CI.
Publish checklist (#12b1)
cargo publish(dry-run verified clean: 72 files, 233 KiB compressed).gh release create v0.11.0 --notes-file RELEASE_NOTES_v0.11.0.md --title "lazily v0.11.0".- Rotate the crates.io token if expired before step 1.