{"id":15050179,"url":"https://github.com/mozilla/janus-plugin-sfu","last_synced_at":"2025-10-19T23:30:57.763Z","repository":{"id":26480630,"uuid":"105322703","full_name":"mozilla/janus-plugin-sfu","owner":"mozilla","description":"Janus plugin to act as a kind of SFU for game networking data.","archived":false,"fork":false,"pushed_at":"2023-01-20T22:57:00.000Z","size":408,"stargazers_count":136,"open_issues_count":16,"forks_count":38,"subscribers_count":25,"default_branch":"master","last_synced_at":"2025-01-25T02:21:40.431Z","etag":null,"topics":["janus","janus-gateway"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mozilla.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-09-29T22:36:56.000Z","updated_at":"2024-10-11T11:39:14.000Z","dependencies_parsed_at":"2023-02-12T06:31:58.211Z","dependency_job_id":null,"html_url":"https://github.com/mozilla/janus-plugin-sfu","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozilla%2Fjanus-plugin-sfu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozilla%2Fjanus-plugin-sfu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozilla%2Fjanus-plugin-sfu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozilla%2Fjanus-plugin-sfu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mozilla","download_url":"https://codeload.github.com/mozilla/janus-plugin-sfu/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":236317035,"owners_count":19129542,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["janus","janus-gateway"],"created_at":"2024-09-24T21:24:55.657Z","updated_at":"2025-10-19T23:30:52.464Z","avatar_url":"https://github.com/mozilla.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# janus-plugin-sfu\n\n[Janus](https://janus.conf.meetecho.com/) [plugin](https://janus.conf.meetecho.com/docs/plugin_8h.html) to serve as a WebRTC Selective Forwarding Unit (SFU) for game networking data. It was designed as the backend for [Mozilla Hubs](https://github.com/mozilla/hubs), although Hubs no longer uses it.\n\n[See here for API documentation on how to communicate with the plugin.](docs/api.md)\n\nPRs and GitHub issues are welcome.\n\n### How do I use this?\n\nThis is a plugin for Janus, so you'll need to install and run Janus first. The [installation instructions on GitHub](https://github.com/meetecho/janus-gateway#dependencies) are canonical. It's compatible with Janus version 0.10.9 and later, although sometimes Janus makes changes that break plugins.\n\nThis plugin should be compatible with any OS that can run Janus; that includes Linux, OS X, and Windows via WSL. If you use a version from a package manager, you might want to check to make sure it has data channel support, which is a compile-time option. (Debian and Ubuntu have it.)\n\n## Dependencies\n\nThese are the native dependencies necessary for building the Rust plugin. For Janus's dependencies, consult its documentation.\n```\n$ sudo apt install libglib2.0-dev libjansson-dev\n```\n\n## Building\n\n```\n$ cargo build [--release]\n```\n\n## Testing\n\n```\n$ cargo test\n```\n\n## Installing\n\nInstall the library output by the build process (e.g. ./target/release/libjanus_plugin_sfu.so) into the Janus plugins\ndirectory (e.g. /usr/lib/janus/plugins). Restart Janus to activate.\n\n## Configuration and usage\n\nThe plugin accepts a configuration file in the Janus configuration directory named `janus.plugin.sfu.cfg` containing key/value pairs in INI format. An example configuration file is provided as `janus.plugin.sfu.cfg.example`.\n\nYou can test your install by pointing a browser at the `tiny.html` client provided in the `client` directory. If you open two browser windows, you should be able to share your microphone, share your screen, and send data channel messages in one, and see the results in the other.\n\n## Using it with networked-aframe\n\nYou can use this plugin with [A-Frame](https://aframe.io) and [networked-aframe](https://github.com/networked-aframe/networked-aframe). Look at the [adapters table](https://github.com/networked-aframe/networked-aframe#adapters) for a maintained version of the naf-janus-adapter.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmozilla%2Fjanus-plugin-sfu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmozilla%2Fjanus-plugin-sfu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmozilla%2Fjanus-plugin-sfu/lists"}