You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Iñaki Baz Castillo e4b99dba39 3.9.13 6 days ago
.github Add more CI configurations 4 months ago
art Remove ICC color profile from art images (closes #496) 1 year ago
doc Add documentation on `MEDIASOUP_BUILDTYPE` and `MESON_ARGS` in `Makefile` and `` 2 months ago
node 3.9.13 6 days ago
rust Merge pull request #810 from nazar-pc/graceful-soft-error-handling 1 month ago
worker improve syntax 6 days ago
.gitattributes cosmetic 2 years ago
.gitignore Update Meson dependencies 1 month ago
.npmrc Don't generate boring and frustrating package-lock.json file 4 years ago 3.9.13 6 days ago
Cargo.toml Rust version with thread-based worker (#540) 1 year ago
LICENSE Update Copyright year (must be the creation/registration/publication date) 3 years ago Rust release 0.7.2 (#568) 12 months ago
npm-scripts.js Clean everything except `mediasoup-worker` binary in postinstall step 5 months ago
package.json 3.9.13 6 days ago

mediasoup v3

Website and Documentation

Support Forum

Design Goals

mediasoup and its client side libraries are designed to accomplish with the following goals:

  • Be a SFU (Selective Forwarding Unit).
  • Support both WebRTC and plain RTP input and output.
  • Be a Node.js module/Rust crate in server side.
  • Be a tiny JavaScript and C++ libraries in client side.
  • Be minimalist: just handle the media layer.
  • Be signaling agnostic: do not mandate any signaling protocol.
  • Be super low level API.
  • Support all existing WebRTC endpoints.
  • Enable integration with well known multimedia libraries/tools.


Use Cases

mediasoup and its client side libraries provide a super low level API. They are intended to enable different use cases and scenarios, without any constraint or assumption. Some of these use cases are:

  • Group video chat applications.
  • One-to-many (or few-to-many) broadcasting applications in real-time.
  • RTP streaming.


  • ECMAScript 6/Idiomatic Rust low level API.
  • Multi-stream: multiple audio/video streams over a single ICE + DTLS transport.
  • IPv6 ready.
  • ICE / DTLS / RTP / RTCP over UDP and TCP.
  • Simulcast and SVC support.
  • Congestion control.
  • Sender and receiver bandwidth estimation with spatial/temporal layers distribution algorithm.
  • Data message exchange (via WebRTC DataChannels, SCTP over plain UDP, and direct termination in Node.js/Rust).
  • Extremely powerful (media worker thread/subprocess coded in C++ on top of libuv).

Demo Online

Try it at (source code).



You can support mediasoup by sponsoring it. Thanks!