
Threat Research
/Security News
Searchjacked: Hidden Browser Extensions Hijack Searches for 13 Million Users
319 browser extensions installed by 13.4 million users hijack searches, capture queries, and collect referral payments from Yahoo and Bing.
node-datachannel
Advanced tools
This project is Node.js bindings for libdatachannel library.
npm install node-datachannel
node-datachannel targets N-API version 8 and supports Node.js v18.20 and above (including Node.js 20, 22, and 24+). Prebuilt binaries are distributed automatically via platform-specific npm packages (optionalDependencies).
| Architecture | Linux (glibc) | Linux (musl / Alpine) | macOS (Apple Silicon / Intel) | Windows | Android (Termux / Bionic) |
|---|---|---|---|---|---|
| x64 | @node-datachannel/linux-x64-gnu | @node-datachannel/linux-x64-musl | @node-datachannel/darwin-x64 | @node-datachannel/win32-x64-msvc | - |
| arm64 | @node-datachannel/linux-arm64-gnu | @node-datachannel/linux-arm64-musl | @node-datachannel/darwin-arm64 | @node-datachannel/win32-arm64-msvc | @node-datachannel/android-arm64 |
node-datachannel supports Electron.
Please check electron demo
WebRTC polyfills to be used for libraries like simple-peer.
Please check here for more
Please check actual situation here
Integrated WebSocket Client & Server is available, which can be used separately or for signaling.
For an example usage, check here
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);
});
Please check examples folder
npm run test # Unit tests
node test/connectivity.js # Connectivity
Please check here
Please check docs page
Contributions are welcome!
Thanks to Streamr for supporting this project by being a Sponsor!
FAQs
WebRTC For Node.js and Electron. libdatachannel node bindings.
The npm package node-datachannel receives a total of 0 weekly downloads. As such, node-datachannel popularity was classified as not popular.
We found that node-datachannel demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Threat Research
/Security News
319 browser extensions installed by 13.4 million users hijack searches, capture queries, and collect referral payments from Yahoo and Bing.

Threat Research
Malicious Firefox extensions mimic Phantom, Jupiter, and Bitget wallets to steal recovery phrases and private keys, with one fetching its payload remotely.

Product
Socket Threat Intel now shows which malware campaigns were blocked or detected in your organization, with links to scans and Firewall events.