Janus plugin to serve as a WebRTC Selective Forwarding Unit (SFU) for game networking data. It's the current backend for Mozilla Hubs.
In the future, this is likely to grow into a reverse proxy for Reticulum, a kind of generalized, stateful, sharded WebVR networking backend. But right now it's mostly just for being a simple, plug-and-play, star-topology SFU that you can use instead of being peer-to-peer.
See here for API documentation on how to communicate with the plugin.
We're hanging around in the WebVR Slack #social channel if you have any questions or want to chat. PRs and GitHub issues also welcome.
This is a plugin for Janus, so you'll need to install and run Janus first. The installation instructions on GitHub are canonical. It's currently only compatible with recent master builds of Janus -- when Janus 0.4.0 is released, that will do.
This plugin should be compatible with any OS that can run Janus; that includes Linux, OS X, and Windows via WSL. If you're on Ubuntu, don't install the version from your package manager -- that one has no WebRTC data channel support, so it won't work. If that stresses you out, you can try running scripts/setup-and-run-janus.sh
, which will compile and install Janus and its dependencies for you.
$ sudo apt install libjansson-dev
$ cargo build [--release]
$ cargo test
Install the library output by the build process (e.g. ./target/release/libjanus_plugin_sfu.so) into the Janus plugins directory (e.g. /usr/lib/janus/plugins). Restart Janus to activate.