From 966aac87a6ff61f357bbd503d5aba9a7e204aec2 Mon Sep 17 00:00:00 2001 From: akirilyuk Date: Tue, 16 Jun 2026 11:34:17 +0700 Subject: [PATCH] chore(release): prepare 0.5.4 Finalize CHANGELOG and bump workspace package.json versions for ArrayBuffer DataChannel / voicethere-sync release (SKIP_LOCK_REFRESH=1). Co-authored-by: Cursor --- CHANGELOG.md | 19 ++++++++++++++++++- examples/audio-cosine/package.json | 8 ++++---- examples/browser-cosine-chat/package.json | 6 +++--- .../package.json | 4 ++-- examples/conference-room/package.json | 6 +++--- examples/peer-connection/package.json | 8 ++++---- examples/voice-agent-browser/package.json | 8 ++++---- .../package.json | 8 ++++---- .../voice-agent-local-sherpa/package.json | 8 ++++---- .../package.json | 8 ++++---- examples/voice-agent/package.json | 8 ++++---- .../bindings/npm/darwin-arm64/package.json | 2 +- packages/bindings/npm/darwin-x64/package.json | 2 +- .../bindings/npm/linux-arm64-gnu/package.json | 2 +- .../bindings/npm/linux-x64-gnu/package.json | 2 +- .../bindings/npm/linux-x64-musl/package.json | 2 +- .../bindings/npm/win32-x64-msvc/package.json | 2 +- packages/bindings/package.json | 14 +++++++------- packages/helpers/package.json | 6 +++--- packages/sdk/package.json | 6 +++--- packages/signaling/package.json | 6 +++--- 21 files changed, 76 insertions(+), 59 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 322ebae..9981fbb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,7 +10,24 @@ Format loosely follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). --- -## [0.5.3] — 2026-06-15 +## [0.5.4] — 2026-06-16 + +**Compare:** [`release/0.5.3…release/0.5.4`](https://github.com/akirilyuk/node-webrtc-rust/compare/release/0.5.3...release/0.5.4) + +ArrayBuffer / binary DataChannel support and optional high-frequency sync channel. + +### Added + +- **SDK `RTCDataChannel`** — honor `binaryType: 'arraybuffer'` on receive; pass `Buffer` through on send without extra copies. +- **Helpers dual channel** — optional `voicethere-sync` data channel; `sendBinaryToClient`, `onDataChannelBinary`, exported `DataChannelKind`. +- **Examples** — `shared/game-state-sync`, `peer-connection` `start:binary` / `start:binary-mesh`, browser-cosine-chat multiplayer canvas sync over `game-sync`. +- **SDK e2e** — binary DataChannel round-trip test. + +### Changed + +- **Native bindings** — move incoming SCTP `Bytes` into Node `Buffer` with one allocation when uniquely owned. + +--- **Compare:** [`release/0.5.2…release/0.5.3`](https://github.com/akirilyuk/node-webrtc-rust/compare/release/0.5.2...release/0.5.3) diff --git a/examples/audio-cosine/package.json b/examples/audio-cosine/package.json index 32968d5..50f3cd4 100644 --- a/examples/audio-cosine/package.json +++ b/examples/audio-cosine/package.json @@ -1,7 +1,7 @@ { "name": "@node-webrtc-rust/example-audio-cosine", "private": true, - "version": "0.5.3", + "version": "0.5.4", "description": "Stream a generated cosine tone over a WebRTC audio track", "type": "module", "scripts": { @@ -10,9 +10,9 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@node-webrtc-rust/helpers": "0.5.3", - "@node-webrtc-rust/sdk": "0.5.3", - "@node-webrtc-rust/signaling": "0.5.3" + "@node-webrtc-rust/helpers": "0.5.4", + "@node-webrtc-rust/sdk": "0.5.4", + "@node-webrtc-rust/signaling": "0.5.4" }, "devDependencies": { "@types/node": "^22.10.0", diff --git a/examples/browser-cosine-chat/package.json b/examples/browser-cosine-chat/package.json index feae324..13b138c 100644 --- a/examples/browser-cosine-chat/package.json +++ b/examples/browser-cosine-chat/package.json @@ -1,7 +1,7 @@ { "name": "@node-webrtc-rust/example-browser-cosine-chat", "private": true, - "version": "0.5.3", + "version": "0.5.4", "description": "Browser clients receive a cosine tone from Node and chat via WebRTC data channels", "type": "module", "scripts": { @@ -10,8 +10,8 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@node-webrtc-rust/sdk": "0.5.3", - "@node-webrtc-rust/signaling": "0.5.3" + "@node-webrtc-rust/sdk": "0.5.4", + "@node-webrtc-rust/signaling": "0.5.4" }, "devDependencies": { "@types/node": "^22.10.0", diff --git a/examples/conference-room-manual-signaling/package.json b/examples/conference-room-manual-signaling/package.json index 1f21395..3778bc3 100644 --- a/examples/conference-room-manual-signaling/package.json +++ b/examples/conference-room-manual-signaling/package.json @@ -1,7 +1,7 @@ { "name": "@node-webrtc-rust/example-conference-room-manual-signaling", "private": true, - "version": "0.5.3", + "version": "0.5.4", "description": "Conference room with hand-rolled WebSocket signaling (no @node-webrtc-rust/signaling)", "type": "module", "scripts": { @@ -9,7 +9,7 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@node-webrtc-rust/sdk": "0.5.3", + "@node-webrtc-rust/sdk": "0.5.4", "ws": "^8.18.0" }, "devDependencies": { diff --git a/examples/conference-room/package.json b/examples/conference-room/package.json index a14087b..de59d1b 100644 --- a/examples/conference-room/package.json +++ b/examples/conference-room/package.json @@ -1,7 +1,7 @@ { "name": "@node-webrtc-rust/example-conference-room", "private": true, - "version": "0.5.3", + "version": "0.5.4", "description": "Browser conference room with Rust-side audio mixing, mute controls, and kick", "type": "module", "scripts": { @@ -9,8 +9,8 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@node-webrtc-rust/sdk": "0.5.3", - "@node-webrtc-rust/signaling": "0.5.3" + "@node-webrtc-rust/sdk": "0.5.4", + "@node-webrtc-rust/signaling": "0.5.4" }, "devDependencies": { "@types/node": "^22.10.0", diff --git a/examples/peer-connection/package.json b/examples/peer-connection/package.json index 1d06f9a..237987b 100644 --- a/examples/peer-connection/package.json +++ b/examples/peer-connection/package.json @@ -1,7 +1,7 @@ { "name": "@node-webrtc-rust/example-peer-connection", "private": true, - "version": "0.5.3", + "version": "0.5.4", "description": "Basic two-peer WebRTC connection demo", "type": "module", "scripts": { @@ -12,9 +12,9 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@node-webrtc-rust/helpers": "0.5.3", - "@node-webrtc-rust/sdk": "0.5.3", - "@node-webrtc-rust/signaling": "0.5.3" + "@node-webrtc-rust/helpers": "0.5.4", + "@node-webrtc-rust/sdk": "0.5.4", + "@node-webrtc-rust/signaling": "0.5.4" }, "devDependencies": { "@types/node": "^22.10.0", diff --git a/examples/voice-agent-browser/package.json b/examples/voice-agent-browser/package.json index 62564ea..622945f 100644 --- a/examples/voice-agent-browser/package.json +++ b/examples/voice-agent-browser/package.json @@ -1,7 +1,7 @@ { "name": "@node-webrtc-rust/example-voice-agent-browser", "private": true, - "version": "0.5.3", + "version": "0.5.4", "description": "Browser WebRTC client + Node VoiceAgent server with DataChannel speech events and TTS control", "type": "module", "scripts": { @@ -16,9 +16,9 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@node-webrtc-rust/helpers": "0.5.3", - "@node-webrtc-rust/sdk": "0.5.3", - "@node-webrtc-rust/signaling": "0.5.3" + "@node-webrtc-rust/helpers": "0.5.4", + "@node-webrtc-rust/sdk": "0.5.4", + "@node-webrtc-rust/signaling": "0.5.4" }, "devDependencies": { "@types/node": "^22.10.0", diff --git a/examples/voice-agent-local-sherpa-multi-client/package.json b/examples/voice-agent-local-sherpa-multi-client/package.json index 4bbb645..c5bb823 100644 --- a/examples/voice-agent-local-sherpa-multi-client/package.json +++ b/examples/voice-agent-local-sherpa-multi-client/package.json @@ -1,7 +1,7 @@ { "name": "@node-webrtc-rust/example-voice-agent-local-sherpa-multi-client", "private": true, - "version": "0.5.3", + "version": "0.5.4", "description": "Three browser clients, one room, shared local Sherpa STT/TTS + session budget demo", "type": "module", "scripts": { @@ -15,9 +15,9 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@node-webrtc-rust/helpers": "0.5.3", - "@node-webrtc-rust/sdk": "0.5.3", - "@node-webrtc-rust/signaling": "0.5.3" + "@node-webrtc-rust/helpers": "0.5.4", + "@node-webrtc-rust/sdk": "0.5.4", + "@node-webrtc-rust/signaling": "0.5.4" }, "devDependencies": { "@types/node": "^22.10.0", diff --git a/examples/voice-agent-local-sherpa/package.json b/examples/voice-agent-local-sherpa/package.json index 54a6257..b06f220 100644 --- a/examples/voice-agent-local-sherpa/package.json +++ b/examples/voice-agent-local-sherpa/package.json @@ -1,7 +1,7 @@ { "name": "@node-webrtc-rust/example-voice-agent-local-sherpa", "private": true, - "version": "0.5.3", + "version": "0.5.4", "description": "Browser WebRTC + local Sherpa-ONNX STT/TTS (no cloud keys) with model download helpers and Node roundtrip demo", "type": "module", "scripts": { @@ -44,9 +44,9 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@node-webrtc-rust/helpers": "0.5.3", - "@node-webrtc-rust/sdk": "0.5.3", - "@node-webrtc-rust/signaling": "0.5.3" + "@node-webrtc-rust/helpers": "0.5.4", + "@node-webrtc-rust/sdk": "0.5.4", + "@node-webrtc-rust/signaling": "0.5.4" }, "devDependencies": { "@types/node": "^22.10.0", diff --git a/examples/voice-agent-multi-session-pod/package.json b/examples/voice-agent-multi-session-pod/package.json index ced8fa4..da5db2a 100644 --- a/examples/voice-agent-multi-session-pod/package.json +++ b/examples/voice-agent-multi-session-pod/package.json @@ -1,7 +1,7 @@ { "name": "@node-webrtc-rust/example-voice-agent-multi-session-pod", "private": true, - "version": "0.5.3", + "version": "0.5.4", "description": "One Node pod: single signaling entry point, many concurrent voice sessions (one VoiceAgent per WebRTC connection)", "type": "module", "scripts": { @@ -10,9 +10,9 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@node-webrtc-rust/helpers": "0.5.3", - "@node-webrtc-rust/sdk": "0.5.3", - "@node-webrtc-rust/signaling": "0.5.3" + "@node-webrtc-rust/helpers": "0.5.4", + "@node-webrtc-rust/sdk": "0.5.4", + "@node-webrtc-rust/signaling": "0.5.4" }, "devDependencies": { "@types/node": "^22.10.0", diff --git a/examples/voice-agent/package.json b/examples/voice-agent/package.json index bdde212..2b2de18 100644 --- a/examples/voice-agent/package.json +++ b/examples/voice-agent/package.json @@ -1,7 +1,7 @@ { "name": "@node-webrtc-rust/example-voice-agent", "private": true, - "version": "0.5.3", + "version": "0.5.4", "description": "VoiceAgent demo: mock STT/TTS, VAD, barge-in, callback and stream events", "type": "module", "scripts": { @@ -17,9 +17,9 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@node-webrtc-rust/helpers": "0.5.3", - "@node-webrtc-rust/sdk": "0.5.3", - "@node-webrtc-rust/signaling": "0.5.3" + "@node-webrtc-rust/helpers": "0.5.4", + "@node-webrtc-rust/sdk": "0.5.4", + "@node-webrtc-rust/signaling": "0.5.4" }, "devDependencies": { "@types/node": "^22.10.0", diff --git a/packages/bindings/npm/darwin-arm64/package.json b/packages/bindings/npm/darwin-arm64/package.json index 7a5e973..1d8d555 100644 --- a/packages/bindings/npm/darwin-arm64/package.json +++ b/packages/bindings/npm/darwin-arm64/package.json @@ -1,6 +1,6 @@ { "name": "@node-webrtc-rust/bindings-darwin-arm64", - "version": "0.5.3", + "version": "0.5.4", "description": "node-webrtc-rust native binding for macOS arm64 (Apple Silicon)", "keywords": [ "webrtc", diff --git a/packages/bindings/npm/darwin-x64/package.json b/packages/bindings/npm/darwin-x64/package.json index 8d05bb9..09460f2 100644 --- a/packages/bindings/npm/darwin-x64/package.json +++ b/packages/bindings/npm/darwin-x64/package.json @@ -1,6 +1,6 @@ { "name": "@node-webrtc-rust/bindings-darwin-x64", - "version": "0.5.3", + "version": "0.5.4", "description": "node-webrtc-rust native binding for macOS x64 (Intel)", "keywords": [ "webrtc", diff --git a/packages/bindings/npm/linux-arm64-gnu/package.json b/packages/bindings/npm/linux-arm64-gnu/package.json index 5297031..fd5afcb 100644 --- a/packages/bindings/npm/linux-arm64-gnu/package.json +++ b/packages/bindings/npm/linux-arm64-gnu/package.json @@ -1,6 +1,6 @@ { "name": "@node-webrtc-rust/bindings-linux-arm64-gnu", - "version": "0.5.3", + "version": "0.5.4", "description": "node-webrtc-rust native binding for Linux arm64 (glibc)", "keywords": [ "webrtc", diff --git a/packages/bindings/npm/linux-x64-gnu/package.json b/packages/bindings/npm/linux-x64-gnu/package.json index b2547e3..f59d0c8 100644 --- a/packages/bindings/npm/linux-x64-gnu/package.json +++ b/packages/bindings/npm/linux-x64-gnu/package.json @@ -1,6 +1,6 @@ { "name": "@node-webrtc-rust/bindings-linux-x64-gnu", - "version": "0.5.3", + "version": "0.5.4", "description": "node-webrtc-rust native binding for Linux x64 (glibc)", "keywords": [ "webrtc", diff --git a/packages/bindings/npm/linux-x64-musl/package.json b/packages/bindings/npm/linux-x64-musl/package.json index 40c9f74..5c7d791 100644 --- a/packages/bindings/npm/linux-x64-musl/package.json +++ b/packages/bindings/npm/linux-x64-musl/package.json @@ -1,6 +1,6 @@ { "name": "@node-webrtc-rust/bindings-linux-x64-musl", - "version": "0.5.3", + "version": "0.5.4", "description": "node-webrtc-rust native binding for Linux x64 (musl / Alpine)", "keywords": [ "webrtc", diff --git a/packages/bindings/npm/win32-x64-msvc/package.json b/packages/bindings/npm/win32-x64-msvc/package.json index fe85ccc..9b18f8e 100644 --- a/packages/bindings/npm/win32-x64-msvc/package.json +++ b/packages/bindings/npm/win32-x64-msvc/package.json @@ -1,6 +1,6 @@ { "name": "@node-webrtc-rust/bindings-win32-x64-msvc", - "version": "0.5.3", + "version": "0.5.4", "description": "node-webrtc-rust native binding for Windows x64 (MSVC)", "keywords": [ "webrtc", diff --git a/packages/bindings/package.json b/packages/bindings/package.json index ab563d9..687b9a3 100644 --- a/packages/bindings/package.json +++ b/packages/bindings/package.json @@ -1,6 +1,6 @@ { "name": "@node-webrtc-rust/bindings", - "version": "0.5.3", + "version": "0.5.4", "description": "NAPI-RS native bindings for node-webrtc-rust — WebRTC peer connections, data channels, and conference audio mixing", "keywords": [ "webrtc", @@ -58,12 +58,12 @@ "@napi-rs/cli": "^2.18.0" }, "optionalDependencies": { - "@node-webrtc-rust/bindings-win32-x64-msvc": "0.5.3", - "@node-webrtc-rust/bindings-darwin-x64": "0.5.3", - "@node-webrtc-rust/bindings-linux-x64-gnu": "0.5.3", - "@node-webrtc-rust/bindings-darwin-arm64": "0.5.3", - "@node-webrtc-rust/bindings-linux-arm64-gnu": "0.5.3", - "@node-webrtc-rust/bindings-linux-x64-musl": "0.5.3" + "@node-webrtc-rust/bindings-win32-x64-msvc": "0.5.4", + "@node-webrtc-rust/bindings-darwin-x64": "0.5.4", + "@node-webrtc-rust/bindings-linux-x64-gnu": "0.5.4", + "@node-webrtc-rust/bindings-darwin-arm64": "0.5.4", + "@node-webrtc-rust/bindings-linux-arm64-gnu": "0.5.4", + "@node-webrtc-rust/bindings-linux-x64-musl": "0.5.4" }, "engines": { "node": ">=18" diff --git a/packages/helpers/package.json b/packages/helpers/package.json index dab25ae..94ee78c 100644 --- a/packages/helpers/package.json +++ b/packages/helpers/package.json @@ -1,6 +1,6 @@ { "name": "@node-webrtc-rust/helpers", - "version": "0.5.3", + "version": "0.5.4", "description": "Reusable server-side helpers for voice agents, session pods, and PCM streaming", "keywords": [ "webrtc", @@ -45,8 +45,8 @@ "test": "vitest run --passWithNoTests" }, "dependencies": { - "@node-webrtc-rust/sdk": "0.5.3", - "@node-webrtc-rust/signaling": "0.5.3" + "@node-webrtc-rust/sdk": "0.5.4", + "@node-webrtc-rust/signaling": "0.5.4" }, "devDependencies": { "@types/node": "^22.10.0", diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 0bac4b6..0216b39 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@node-webrtc-rust/sdk", - "version": "0.5.3", + "version": "0.5.4", "description": "Browser-compatible WebRTC and conference APIs for Node.js", "keywords": [ "webrtc", @@ -64,8 +64,8 @@ "test": "vitest run" }, "dependencies": { - "@node-webrtc-rust/bindings": "0.5.3", - "@node-webrtc-rust/signaling": "0.5.3" + "@node-webrtc-rust/bindings": "0.5.4", + "@node-webrtc-rust/signaling": "0.5.4" }, "devDependencies": { "@types/node": "^22.10.0", diff --git a/packages/signaling/package.json b/packages/signaling/package.json index c79d8cd..9b27ab8 100644 --- a/packages/signaling/package.json +++ b/packages/signaling/package.json @@ -1,6 +1,6 @@ { "name": "@node-webrtc-rust/signaling", - "version": "0.5.3", + "version": "0.5.4", "description": "TypeScript WebSocket signaling helpers for node-webrtc-rust", "keywords": [ "webrtc", @@ -49,14 +49,14 @@ "ws": "^8.18.0" }, "devDependencies": { - "@node-webrtc-rust/sdk": "0.5.3", + "@node-webrtc-rust/sdk": "0.5.4", "@types/node": "^22.10.0", "@types/ws": "^8.5.13", "typescript": "^5.7.0", "vitest": "^2.1.8" }, "peerDependencies": { - "@node-webrtc-rust/sdk": "^0.5.3" + "@node-webrtc-rust/sdk": "^0.5.4" }, "peerDependenciesMeta": { "@node-webrtc-rust/sdk": {