{"adoption": {"forks": 1250, "observed_at": "2026-08-28T04:09:58.358459+00:00", "stars": 7345}, "canonical_url": "https://ross.abutalabs.com/products/mediasoup", "card": {"archived": false, "artifact_type": "library", "description": "Cutting Edge WebRTC Video Conferencing", "domain": ["web-development", "media", "backend"], "enriched": true, "function": ["websocket", "http-server", "streaming", "audio-processing", "video-processing", "networking"], "health_score": 100, "homepage": "https://mediasoup.org", "language": "C++", "license": "ISC", "license_family": "permissive", "maturity": "stable", "member_repos": ["versatica/mediasoup", "versatica/mediasoup-demo"], "name": "mediasoup", "platform": ["rust", "cpp", "windows", "cross-platform"], "pushed_at": "2026-08-26T09:05:19+00:00", "repo": "versatica/mediasoup", "stars": 7345, "tags": ["webrtc", "sfu", "video-conferencing", "rtp", "simulcast", "svc", "real-time-communication", "media-server", "real-time", "video", "audio", "nodejs", "linux", "macos"], "topics": ["webrtc", "nodejs", "sfu", "server-side", "c-plus-plus", "rust"], "urls": [{"kind": "homepage", "url": "https://mediasoup.org"}, {"kind": "site_page", "url": "https://mediasoup.org/documentation"}, {"kind": "site_page", "url": "https://mediasoup.org/faq"}, {"kind": "site_page", "url": "https://mediasoup.org/about"}, {"kind": "site_page", "url": "https://mediasoup.org/documentation/v3/libmediasoupclient"}], "use_cases": ["build a group video chat application", "create a one-to-many live broadcasting app in real time", "stream RTP audio/video between servers and endpoints", "build a multi-party video conferencing server", "forward WebRTC media with simulcast and SVC support", "integrate WebRTC media handling into a Node.js or Rust backend", "exchange data messages via WebRTC DataChannels or SCTP"], "what_it_is": "mediasoup is a powerful WebRTC SFU (Selective Forwarding Unit) implemented as a Node.js module and Rust crate, with a C++ media worker subprocess handling the media plane. It provides a low-level, signaling-agnostic API for building multi-party video conferencing, broadcasting, and RTP streaming applications.", "when_to_avoid": ["you want a turnkey video conferencing product with signaling, UI, and rooms included out of the box", "you need media transcoding - mediasoup does not transcode", "you need to interoperate with legacy SIP endpoints without extra work", "you want a simple high-level API rather than a low-level media plane API", "your team cannot handle building the signaling layer and application logic themselves"], "when_to_choose": ["you need a high-performance, scalable SFU for multi-party real-time media", "you want a low-level media library you can integrate into your own application rather than an opinionated standalone server", "you need support for simulcast, SVC, bandwidth estimation, and congestion control", "you want to support both WebRTC and plain RTP input/output", "you prefer handling signaling yourself with full flexibility"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/repos/versatica/mediasoup", "repo": "versatica/mediasoup", "role": "main", "score": 95}, {"path": "/repos/versatica/mediasoup-demo", "repo": "versatica/mediasoup-demo", "role": "examples", "score": 76}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.358459+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:38:27.049399+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "47ce55f5b65fede8d6a29311410928d466b321806b52bc61b54b6d84b13a5a18", "fetched_at": "2026-08-28T04:09:58.358459+00:00", "kind": "readme", "missing": false, "url": "https://github.com/versatica/mediasoup"}, {"content_hash": "bbc87b4a6ed7650804755d6ff219531116fe75a1cf4cd2f06f1e1756abdc7de1", "fetched_at": "2026-08-29T08:34:13.497549+00:00", "kind": "homepage", "missing": false, "url": "https://mediasoup.org"}, {"content_hash": "603379cefd9d2a6587b436e9ef7c525de8b3b433a08e50d84ab647e24db4c41c", "fetched_at": "2026-08-29T08:34:13.506631+00:00", "kind": "site_page", "missing": false, "url": "https://mediasoup.org/documentation"}, {"content_hash": "db8356f4945fbff0070a345b73fc9ddcb3fa427cda120b974e7af217253dd01f", "fetched_at": "2026-08-29T08:34:13.510521+00:00", "kind": "site_page", "missing": false, "url": "https://mediasoup.org/about"}, {"content_hash": "bb2c2a20df41a290c8a442faac21884d2323ed5e486632016af7bb2c5e1c8505", "fetched_at": "2026-08-29T08:34:13.512207+00:00", "kind": "site_page", "missing": false, "url": "https://mediasoup.org/documentation/v3/libmediasoupclient"}, {"content_hash": "2d0cd93c017756aa355524c7a28459ef12d616012bc40946806d38db1a333220", "fetched_at": "2026-08-29T08:34:13.508561+00:00", "kind": "site_page", "missing": false, "url": "https://mediasoup.org/faq"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.358459+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:38:27.049399+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "47ce55f5b65fede8d6a29311410928d466b321806b52bc61b54b6d84b13a5a18", "fetched_at": "2026-08-28T04:09:58.358459+00:00", "kind": "readme", "missing": false, "url": "https://github.com/versatica/mediasoup"}, {"content_hash": "bbc87b4a6ed7650804755d6ff219531116fe75a1cf4cd2f06f1e1756abdc7de1", "fetched_at": "2026-08-29T08:34:13.497549+00:00", "kind": "homepage", "missing": false, "url": "https://mediasoup.org"}, {"content_hash": "603379cefd9d2a6587b436e9ef7c525de8b3b433a08e50d84ab647e24db4c41c", "fetched_at": "2026-08-29T08:34:13.506631+00:00", "kind": "site_page", "missing": false, "url": "https://mediasoup.org/documentation"}, {"content_hash": "db8356f4945fbff0070a345b73fc9ddcb3fa427cda120b974e7af217253dd01f", "fetched_at": "2026-08-29T08:34:13.510521+00:00", "kind": "site_page", "missing": false, "url": "https://mediasoup.org/about"}, {"content_hash": "bb2c2a20df41a290c8a442faac21884d2323ed5e486632016af7bb2c5e1c8505", "fetched_at": "2026-08-29T08:34:13.512207+00:00", "kind": "site_page", "missing": false, "url": "https://mediasoup.org/documentation/v3/libmediasoupclient"}, {"content_hash": "2d0cd93c017756aa355524c7a28459ef12d616012bc40946806d38db1a333220", "fetched_at": "2026-08-29T08:34:13.508561+00:00", "kind": "site_page", "missing": false, "url": "https://mediasoup.org/faq"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:38:27.049399+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "47ce55f5b65fede8d6a29311410928d466b321806b52bc61b54b6d84b13a5a18", "fetched_at": "2026-08-28T04:09:58.358459+00:00", "kind": "readme", "missing": false, "url": "https://github.com/versatica/mediasoup"}, {"content_hash": "bbc87b4a6ed7650804755d6ff219531116fe75a1cf4cd2f06f1e1756abdc7de1", "fetched_at": "2026-08-29T08:34:13.497549+00:00", "kind": "homepage", "missing": false, "url": "https://mediasoup.org"}, {"content_hash": "603379cefd9d2a6587b436e9ef7c525de8b3b433a08e50d84ab647e24db4c41c", "fetched_at": "2026-08-29T08:34:13.506631+00:00", "kind": "site_page", "missing": false, "url": "https://mediasoup.org/documentation"}, {"content_hash": "db8356f4945fbff0070a345b73fc9ddcb3fa427cda120b974e7af217253dd01f", "fetched_at": "2026-08-29T08:34:13.510521+00:00", "kind": "site_page", "missing": false, "url": "https://mediasoup.org/about"}, {"content_hash": "bb2c2a20df41a290c8a442faac21884d2323ed5e486632016af7bb2c5e1c8505", "fetched_at": "2026-08-29T08:34:13.512207+00:00", "kind": "site_page", "missing": false, "url": "https://mediasoup.org/documentation/v3/libmediasoupclient"}, {"content_hash": "2d0cd93c017756aa355524c7a28459ef12d616012bc40946806d38db1a333220", "fetched_at": "2026-08-29T08:34:13.508561+00:00", "kind": "site_page", "missing": false, "url": "https://mediasoup.org/faq"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.358459+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.358459+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.358459+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:38:27.049399+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "47ce55f5b65fede8d6a29311410928d466b321806b52bc61b54b6d84b13a5a18", "fetched_at": "2026-08-28T04:09:58.358459+00:00", "kind": "readme", "missing": false, "url": "https://github.com/versatica/mediasoup"}, {"content_hash": "bbc87b4a6ed7650804755d6ff219531116fe75a1cf4cd2f06f1e1756abdc7de1", "fetched_at": "2026-08-29T08:34:13.497549+00:00", "kind": "homepage", "missing": false, "url": "https://mediasoup.org"}, {"content_hash": "603379cefd9d2a6587b436e9ef7c525de8b3b433a08e50d84ab647e24db4c41c", "fetched_at": "2026-08-29T08:34:13.506631+00:00", "kind": "site_page", "missing": false, "url": "https://mediasoup.org/documentation"}, {"content_hash": "db8356f4945fbff0070a345b73fc9ddcb3fa427cda120b974e7af217253dd01f", "fetched_at": "2026-08-29T08:34:13.510521+00:00", "kind": "site_page", "missing": false, "url": "https://mediasoup.org/about"}, {"content_hash": "bb2c2a20df41a290c8a442faac21884d2323ed5e486632016af7bb2c5e1c8505", "fetched_at": "2026-08-29T08:34:13.512207+00:00", "kind": "site_page", "missing": false, "url": "https://mediasoup.org/documentation/v3/libmediasoupclient"}, {"content_hash": "2d0cd93c017756aa355524c7a28459ef12d616012bc40946806d38db1a333220", "fetched_at": "2026-08-29T08:34:13.508561+00:00", "kind": "site_page", "missing": false, "url": "https://mediasoup.org/faq"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.358459+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.358459+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:38:27.049399+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "47ce55f5b65fede8d6a29311410928d466b321806b52bc61b54b6d84b13a5a18", "fetched_at": "2026-08-28T04:09:58.358459+00:00", "kind": "readme", "missing": false, "url": "https://github.com/versatica/mediasoup"}, {"content_hash": "bbc87b4a6ed7650804755d6ff219531116fe75a1cf4cd2f06f1e1756abdc7de1", "fetched_at": "2026-08-29T08:34:13.497549+00:00", "kind": "homepage", "missing": false, "url": "https://mediasoup.org"}, {"content_hash": "603379cefd9d2a6587b436e9ef7c525de8b3b433a08e50d84ab647e24db4c41c", "fetched_at": "2026-08-29T08:34:13.506631+00:00", "kind": "site_page", "missing": false, "url": "https://mediasoup.org/documentation"}, {"content_hash": "db8356f4945fbff0070a345b73fc9ddcb3fa427cda120b974e7af217253dd01f", "fetched_at": "2026-08-29T08:34:13.510521+00:00", "kind": "site_page", "missing": false, "url": "https://mediasoup.org/about"}, {"content_hash": "bb2c2a20df41a290c8a442faac21884d2323ed5e486632016af7bb2c5e1c8505", "fetched_at": "2026-08-29T08:34:13.512207+00:00", "kind": "site_page", "missing": false, "url": "https://mediasoup.org/documentation/v3/libmediasoupclient"}, {"content_hash": "2d0cd93c017756aa355524c7a28459ef12d616012bc40946806d38db1a333220", "fetched_at": "2026-08-29T08:34:13.508561+00:00", "kind": "site_page", "missing": false, "url": "https://mediasoup.org/faq"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.358459+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.358459+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.358459+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:38:27.049399+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "47ce55f5b65fede8d6a29311410928d466b321806b52bc61b54b6d84b13a5a18", "fetched_at": "2026-08-28T04:09:58.358459+00:00", "kind": "readme", "missing": false, "url": "https://github.com/versatica/mediasoup"}, {"content_hash": "bbc87b4a6ed7650804755d6ff219531116fe75a1cf4cd2f06f1e1756abdc7de1", "fetched_at": "2026-08-29T08:34:13.497549+00:00", "kind": "homepage", "missing": false, "url": "https://mediasoup.org"}, {"content_hash": "603379cefd9d2a6587b436e9ef7c525de8b3b433a08e50d84ab647e24db4c41c", "fetched_at": "2026-08-29T08:34:13.506631+00:00", "kind": "site_page", "missing": false, "url": "https://mediasoup.org/documentation"}, {"content_hash": "db8356f4945fbff0070a345b73fc9ddcb3fa427cda120b974e7af217253dd01f", "fetched_at": "2026-08-29T08:34:13.510521+00:00", "kind": "site_page", "missing": false, "url": "https://mediasoup.org/about"}, {"content_hash": "bb2c2a20df41a290c8a442faac21884d2323ed5e486632016af7bb2c5e1c8505", "fetched_at": "2026-08-29T08:34:13.512207+00:00", "kind": "site_page", "missing": false, "url": "https://mediasoup.org/documentation/v3/libmediasoupclient"}, {"content_hash": "2d0cd93c017756aa355524c7a28459ef12d616012bc40946806d38db1a333220", "fetched_at": "2026-08-29T08:34:13.508561+00:00", "kind": "site_page", "missing": false, "url": "https://mediasoup.org/faq"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.358459+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.358459+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:38:27.049399+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "47ce55f5b65fede8d6a29311410928d466b321806b52bc61b54b6d84b13a5a18", "fetched_at": "2026-08-28T04:09:58.358459+00:00", "kind": "readme", "missing": false, "url": "https://github.com/versatica/mediasoup"}, {"content_hash": "bbc87b4a6ed7650804755d6ff219531116fe75a1cf4cd2f06f1e1756abdc7de1", "fetched_at": "2026-08-29T08:34:13.497549+00:00", "kind": "homepage", "missing": false, "url": "https://mediasoup.org"}, {"content_hash": "603379cefd9d2a6587b436e9ef7c525de8b3b433a08e50d84ab647e24db4c41c", "fetched_at": "2026-08-29T08:34:13.506631+00:00", "kind": "site_page", "missing": false, "url": "https://mediasoup.org/documentation"}, {"content_hash": "db8356f4945fbff0070a345b73fc9ddcb3fa427cda120b974e7af217253dd01f", "fetched_at": "2026-08-29T08:34:13.510521+00:00", "kind": "site_page", "missing": false, "url": "https://mediasoup.org/about"}, {"content_hash": "bb2c2a20df41a290c8a442faac21884d2323ed5e486632016af7bb2c5e1c8505", "fetched_at": "2026-08-29T08:34:13.512207+00:00", "kind": "site_page", "missing": false, "url": "https://mediasoup.org/documentation/v3/libmediasoupclient"}, {"content_hash": "2d0cd93c017756aa355524c7a28459ef12d616012bc40946806d38db1a333220", "fetched_at": "2026-08-29T08:34:13.508561+00:00", "kind": "site_page", "missing": false, "url": "https://mediasoup.org/faq"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:38:27.049399+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "47ce55f5b65fede8d6a29311410928d466b321806b52bc61b54b6d84b13a5a18", "fetched_at": "2026-08-28T04:09:58.358459+00:00", "kind": "readme", "missing": false, "url": "https://github.com/versatica/mediasoup"}, {"content_hash": "bbc87b4a6ed7650804755d6ff219531116fe75a1cf4cd2f06f1e1756abdc7de1", "fetched_at": "2026-08-29T08:34:13.497549+00:00", "kind": "homepage", "missing": false, "url": "https://mediasoup.org"}, {"content_hash": "603379cefd9d2a6587b436e9ef7c525de8b3b433a08e50d84ab647e24db4c41c", "fetched_at": "2026-08-29T08:34:13.506631+00:00", "kind": "site_page", "missing": false, "url": "https://mediasoup.org/documentation"}, {"content_hash": "db8356f4945fbff0070a345b73fc9ddcb3fa427cda120b974e7af217253dd01f", "fetched_at": "2026-08-29T08:34:13.510521+00:00", "kind": "site_page", "missing": false, "url": "https://mediasoup.org/about"}, {"content_hash": "bb2c2a20df41a290c8a442faac21884d2323ed5e486632016af7bb2c5e1c8505", "fetched_at": "2026-08-29T08:34:13.512207+00:00", "kind": "site_page", "missing": false, "url": "https://mediasoup.org/documentation/v3/libmediasoupclient"}, {"content_hash": "2d0cd93c017756aa355524c7a28459ef12d616012bc40946806d38db1a333220", "fetched_at": "2026-08-29T08:34:13.508561+00:00", "kind": "site_page", "missing": false, "url": "https://mediasoup.org/faq"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:38:27.049399+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "47ce55f5b65fede8d6a29311410928d466b321806b52bc61b54b6d84b13a5a18", "fetched_at": "2026-08-28T04:09:58.358459+00:00", "kind": "readme", "missing": false, "url": "https://github.com/versatica/mediasoup"}, {"content_hash": "bbc87b4a6ed7650804755d6ff219531116fe75a1cf4cd2f06f1e1756abdc7de1", "fetched_at": "2026-08-29T08:34:13.497549+00:00", "kind": "homepage", "missing": false, "url": "https://mediasoup.org"}, {"content_hash": "603379cefd9d2a6587b436e9ef7c525de8b3b433a08e50d84ab647e24db4c41c", "fetched_at": "2026-08-29T08:34:13.506631+00:00", "kind": "site_page", "missing": false, "url": "https://mediasoup.org/documentation"}, {"content_hash": "db8356f4945fbff0070a345b73fc9ddcb3fa427cda120b974e7af217253dd01f", "fetched_at": "2026-08-29T08:34:13.510521+00:00", "kind": "site_page", "missing": false, "url": "https://mediasoup.org/about"}, {"content_hash": "bb2c2a20df41a290c8a442faac21884d2323ed5e486632016af7bb2c5e1c8505", "fetched_at": "2026-08-29T08:34:13.512207+00:00", "kind": "site_page", "missing": false, "url": "https://mediasoup.org/documentation/v3/libmediasoupclient"}, {"content_hash": "2d0cd93c017756aa355524c7a28459ef12d616012bc40946806d38db1a333220", "fetched_at": "2026-08-29T08:34:13.508561+00:00", "kind": "site_page", "missing": false, "url": "https://mediasoup.org/faq"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:38:27.049399+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "47ce55f5b65fede8d6a29311410928d466b321806b52bc61b54b6d84b13a5a18", "fetched_at": "2026-08-28T04:09:58.358459+00:00", "kind": "readme", "missing": false, "url": "https://github.com/versatica/mediasoup"}, {"content_hash": "bbc87b4a6ed7650804755d6ff219531116fe75a1cf4cd2f06f1e1756abdc7de1", "fetched_at": "2026-08-29T08:34:13.497549+00:00", "kind": "homepage", "missing": false, "url": "https://mediasoup.org"}, {"content_hash": "603379cefd9d2a6587b436e9ef7c525de8b3b433a08e50d84ab647e24db4c41c", "fetched_at": "2026-08-29T08:34:13.506631+00:00", "kind": "site_page", "missing": false, "url": "https://mediasoup.org/documentation"}, {"content_hash": "db8356f4945fbff0070a345b73fc9ddcb3fa427cda120b974e7af217253dd01f", "fetched_at": "2026-08-29T08:34:13.510521+00:00", "kind": "site_page", "missing": false, "url": "https://mediasoup.org/about"}, {"content_hash": "bb2c2a20df41a290c8a442faac21884d2323ed5e486632016af7bb2c5e1c8505", "fetched_at": "2026-08-29T08:34:13.512207+00:00", "kind": "site_page", "missing": false, "url": "https://mediasoup.org/documentation/v3/libmediasoupclient"}, {"content_hash": "2d0cd93c017756aa355524c7a28459ef12d616012bc40946806d38db1a333220", "fetched_at": "2026-08-29T08:34:13.508561+00:00", "kind": "site_page", "missing": false, "url": "https://mediasoup.org/faq"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 86}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4282, "days_push": 7, "days_rel": 15, "gap_med": 4, "n_releases_24m": 86}, "score": 95, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}