Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 18 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down
8 changes: 4 additions & 4 deletions examples/audio-cosine/package.json
Original file line number Diff line number Diff line change
@@ -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": {
Expand All @@ -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",
Expand Down
6 changes: 3 additions & 3 deletions examples/browser-cosine-chat/package.json
Original file line number Diff line number Diff line change
@@ -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": {
Expand All @@ -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",
Expand Down
4 changes: 2 additions & 2 deletions examples/conference-room-manual-signaling/package.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
{
"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": {
"start": "tsx src/index.ts",
"typecheck": "tsc --noEmit"
},
"dependencies": {
"@node-webrtc-rust/sdk": "0.5.3",
"@node-webrtc-rust/sdk": "0.5.4",
"ws": "^8.18.0"
},
"devDependencies": {
Expand Down
6 changes: 3 additions & 3 deletions examples/conference-room/package.json
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
{
"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": {
"start": "tsx src/index.ts",
"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",
Expand Down
8 changes: 4 additions & 4 deletions examples/peer-connection/package.json
Original file line number Diff line number Diff line change
@@ -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": {
Expand All @@ -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",
Expand Down
8 changes: 4 additions & 4 deletions examples/voice-agent-browser/package.json
Original file line number Diff line number Diff line change
@@ -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": {
Expand All @@ -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",
Expand Down
8 changes: 4 additions & 4 deletions examples/voice-agent-local-sherpa-multi-client/package.json
Original file line number Diff line number Diff line change
@@ -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": {
Expand All @@ -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",
Expand Down
8 changes: 4 additions & 4 deletions examples/voice-agent-local-sherpa/package.json
Original file line number Diff line number Diff line change
@@ -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": {
Expand Down Expand Up @@ -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",
Expand Down
8 changes: 4 additions & 4 deletions examples/voice-agent-multi-session-pod/package.json
Original file line number Diff line number Diff line change
@@ -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": {
Expand All @@ -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",
Expand Down
8 changes: 4 additions & 4 deletions examples/voice-agent/package.json
Original file line number Diff line number Diff line change
@@ -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": {
Expand All @@ -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",
Expand Down
2 changes: 1 addition & 1 deletion packages/bindings/npm/darwin-arm64/package.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
2 changes: 1 addition & 1 deletion packages/bindings/npm/darwin-x64/package.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
2 changes: 1 addition & 1 deletion packages/bindings/npm/linux-arm64-gnu/package.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
2 changes: 1 addition & 1 deletion packages/bindings/npm/linux-x64-gnu/package.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
2 changes: 1 addition & 1 deletion packages/bindings/npm/linux-x64-musl/package.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
2 changes: 1 addition & 1 deletion packages/bindings/npm/win32-x64-msvc/package.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
14 changes: 7 additions & 7 deletions packages/bindings/package.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down Expand Up @@ -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"
Expand Down
6 changes: 3 additions & 3 deletions packages/helpers/package.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down Expand Up @@ -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",
Expand Down
6 changes: 3 additions & 3 deletions packages/sdk/package.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down Expand Up @@ -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",
Expand Down
6 changes: 3 additions & 3 deletions packages/signaling/package.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down Expand Up @@ -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": {
Expand Down
Loading