0.26.0 • Published 3 months ago

node-datachannel v0.26.0

Weekly downloads
298
License
MPL 2.0
Repository
github
Last release
3 months ago

WebRTC For Node.js and Electron ( with WebSocket)

Linux CI Build Windows CI Build Mac x64 CI Build Mac M1 CI Build

  • Lightweight
    • No need to deal with WebRTC stack!
    • Small binary sizes (~8MB for Linux x64)
  • Type infos for Typescript
  • Integrated WebSocket Client & Server Implementation

This project is Node.js bindings for libdatachannel library.

Install

npm install node-datachannel

Supported Platforms

node-datachannel targets N-API version 8 and supports Node.js v18.20 and above. It is tested on Linux, Windows and MacOS. For N-API compatibility please check here.

Linux x64,armv7,arm64Windows x86,x64Mac M1,x64
N-API v8 (>= Node.js v18)+++

(1) For Linux musl + libc

Electron

node-datachannel supports Electron.

Please check electron demo

WebRTC Polyfills

WebRTC polyfills to be used for libraries like simple-peer.

Please check here for more

web-platform-tests

Please check actual situation here

WebSocket Client & Server

Integrated WebSocket Client & Server is available, which can be used separately or for signaling.

For an example usage, check here

Example Usage

import nodeDataChannel from 'node-datachannel';

// Log Level
nodeDataChannel.initLogger('Debug');

// Integrated WebSocket available and can be used for signaling etc
// const ws = new nodeDataChannel.WebSocket();

let dc1 = null;
let dc2 = null;

let peer1 = new nodeDataChannel.PeerConnection('Peer1', { iceServers: ['stun:stun.l.google.com:19302'] });

peer1.onLocalDescription((sdp, type) => {
    peer2.setRemoteDescription(sdp, type);
});
peer1.onLocalCandidate((candidate, mid) => {
    peer2.addRemoteCandidate(candidate, mid);
});

let peer2 = new nodeDataChannel.PeerConnection('Peer2', { iceServers: ['stun:stun.l.google.com:19302'] });

peer2.onLocalDescription((sdp, type) => {
    peer1.setRemoteDescription(sdp, type);
});
peer2.onLocalCandidate((candidate, mid) => {
    peer1.addRemoteCandidate(candidate, mid);
});
peer2.onDataChannel((dc) => {
    dc2 = dc;
    dc2.onMessage((msg) => {
        console.log('Peer2 Received Msg:', msg);
    });
    dc2.sendMessage('Hello From Peer2');
});

dc1 = peer1.createDataChannel('test');

dc1.onOpen(() => {
    dc1.sendMessage('Hello from Peer1');
});

dc1.onMessage((msg) => {
    console.log('Peer1 Received Msg:', msg);
});

Examples

Please check examples folder

Test

npm run test                  # Unit tests
node test/connectivity.js     # Connectivity

Build

Please check here

API Docs

Please check docs page

Contributing

Contributions are welcome!

Thanks

Thanks to Streamr for supporting this project by being a Sponsor!

0.25.0

5 months ago

0.23.0

6 months ago

0.21.0

7 months ago

0.26.0

3 months ago

0.24.0

5 months ago

0.22.0

7 months ago

0.20.0

8 months ago

0.20.0-alpha.1

9 months ago

0.20.0-alpha.2

9 months ago

0.12.0

9 months ago

0.11.0

11 months ago

0.9.2

12 months ago

0.9.1

1 year ago

0.10.1

11 months ago

0.10.0

12 months ago

0.9.0

1 year ago

0.8.0

1 year ago

0.7.0

1 year ago

0.6.0

1 year ago

0.5.5

1 year ago

0.5.4

1 year ago

0.5.3

1 year ago

0.5.0

2 years ago

0.5.2

2 years ago

0.5.1

2 years ago

0.5.0-dev

2 years ago

0.4.3

2 years ago

0.4.2

2 years ago

0.4.1

2 years ago

0.4.0

3 years ago

0.3.6

3 years ago

0.3.5

3 years ago

0.3.4

3 years ago

0.3.3

3 years ago

0.3.2

3 years ago

0.3.1

3 years ago

0.3.0

3 years ago

0.2.4

3 years ago

0.1.13

4 years ago

0.1.14

4 years ago

0.1.14-dev

4 years ago

0.2.1

3 years ago

0.2.0

3 years ago

0.2.3

3 years ago

0.2.2

3 years ago

0.1.12

4 years ago

0.1.11

4 years ago

0.1.10

4 years ago

0.1.9

4 years ago

0.1.8

4 years ago

0.1.7

4 years ago

0.1.6

4 years ago

0.1.5

4 years ago

0.1.3-dev

4 years ago

0.1.4

4 years ago

0.1.3

4 years ago

0.1.2

4 years ago

0.1.1

4 years ago

0.1.0

4 years ago

0.0.28-dev

4 years ago

0.0.26

4 years ago

0.0.27

4 years ago

0.0.25

4 years ago

0.0.24

4 years ago

0.0.23

4 years ago

0.0.21

4 years ago

0.0.20

4 years ago

0.0.19

4 years ago

0.0.18

5 years ago

0.0.17

5 years ago

0.0.16

5 years ago

0.0.15

5 years ago

0.0.14

5 years ago

0.0.11

5 years ago

0.0.9

5 years ago

0.0.8

5 years ago

0.0.7

5 years ago

0.0.6

5 years ago

0.0.3

5 years ago