werift-webrtc icon indicating copy to clipboard operation
werift-webrtc copied to clipboard

WebRTC Implementation for TypeScript (Node.js), includes ICE/DTLS/SCTP/RTP/SRTP/WEBM/MP4

werift

werift (Webrtc Implementation for TypeScript)

werift is a WebRTC Implementation for TypeScript (Node.js), includes ICE/DTLS/SCTP/RTP.

install

npm install werift

requires at least Node.js 16

Documentation (WIP)

examples

https://github.com/shinyoshiaki/werift-webrtc/tree/master/examples

SFU

https://github.com/shinyoshiaki/node-sfu

demo

MediaChannel

yarn media

open https://shinyoshiaki.github.io/werift-webrtc/examples/mediachannel/pubsub/answer

see console & chrome://webrtc-internals/

DataChannel

run

yarn datachannel

open https://shinyoshiaki.github.io/werift-webrtc/examples/datachannel/answer

see console & chrome://webrtc-internals/

RoadMap

Work in Progress Towards 1.0

  • [x] STUN
  • [x] TURN
    • [x] UDP
  • [x] ICE
    • [x] Vanilla ICE
    • [x] Trickle ICE
    • [x] ICE-Lite Client Side
    • [ ] ICE-Lite Server Side
  • [x] DTLS
    • [x] DTLS-SRTP
    • [x] Curve25519
    • [x] P-256
  • [x] DataChannel
  • [x] MediaChannel
    • [x] sendonly
    • [x] recvonly
    • [x] sendrecv
    • [x] multi track
    • [x] RTX
    • [x] RED
  • [x] RTP
    • [x] RFC 3550
    • [x] Parse RTP Payload Format for VP8 Video
    • [x] Parse RTP Payload Format for VP9 Video
    • [x] Parse RTP Payload Format for H264 Video
    • [x] Parse RTP Payload Format for AV1 Video
    • [x] RED (RFC 2198)
  • [x] RTCP
    • [x] SR/RR
    • [x] Picture Loss Indication
    • [x] ReceiverEstimatedMaxBitrate
    • [x] GenericNack
    • [x] TransportWideCC
  • [x] SRTP
  • [x] SRTCP
  • [x] SDP
  • [x] PeerConnection
  • [x] Simulcast
    • [x] recv
  • [x] BWE
    • [x] sender side BWE
  • [ ] Documentation
  • [x] Compatibility
    • [x] Chrome
    • [x] FireFox
    • [x] Pion
    • [x] aiortc
    • [x] sipsorcery
    • [x] webrtc-rs
  • [x] Interop E2E test
    • [x] Chrome
    • ↓↓↓ https://github.com/sipsorcery/webrtc-echoes
    • [x] Pion
    • [x] aiortc
    • [x] sipsorcery
    • [x] webrtc-rs
  • [ ] Unit Tests
  • [x] MediaRecorder
    • [x] OPUS
    • [x] VP8
    • [x] H264
    • [x] VP9
    • [x] AV1

Road Map Towards 2.0

  • [ ] API compatible with browser RTCPeerConnection
  • [ ] ICE
    • [ ] ICE restart
  • [ ] SDP
    • [ ] reuse inactive m-line
  • [ ] Simulcast
    • [ ] send
  • [ ] support more cipher suites
  • [ ] getStats
  • [ ] TURN
    • [ ] TCP

reference

  • aiortc https://github.com/aiortc/aiortc
  • pion/webrtc https://github.com/pion/webrtc
  • etc ....