Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

webrtc-polyfill

ThaUnknown30.4kMIT1.1.10TypeScript support: included

High performance WebRTC polyfill for Node.JS via libdatachannel using Node Native/NAPI.

webrtc, w3c, nodejs, polyfill, p2p, peer, libdatachannel, peer-to-peer, datachannel, data channel

readme

    

webrtc-polyfill is a Node.js Native Addon that provides bindings to libdatachannel. This project aims for spec-compliance and is tested using the W3C's web-platform-tests project, but doesn't pass all of its tests, instead focuses on the important ones, like close, error and data events, states, while offering performance better than any alternative. A number of nonstandard APIs for testing are also included.

Notably most of the core WebRTC functionality is async in contrast to how web handles it. Notable examples are:

datachannel.send(new Blob([new Uint8Array([1,2,3,4])]))
datachannel.send(new Uint8Array([1,2,3,4])) // this will arrive before the blob, as blob internals are asynchronous

and

datachannel.send(new Uint8Array([1,2,3,4]))
datachannel.bufferedAmount // not always 4, as the thread that runs it is async and might flush instantly!

Install

pnpm install webrtc-polyfill

Supported Platforms

For supported platforms see the node-channel bindings compatibility table. Note that node versions under 14 require a global EventTarget and Event polyfill.

Testing

Requirements: Python, Node.js