Skip to content

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

License

Notifications You must be signed in to change notification settings

shinyoshiaki/werift-webrtc

Repository files navigation

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

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