dd7d081608 | ||
---|---|---|
client | ||
docs | ||
scripts | ||
src | ||
.gitignore | ||
.travis.yml | ||
Cargo.lock | ||
Cargo.toml | ||
Jenkinsfile | ||
LICENSE | ||
Makefile | ||
README.md | ||
rustfmt.toml |
README.md
janus-plugin-sfu
Janus plugin to serve as a WebRTC Selective Forwarding Unit (SFU) for game networking data.
In the future, this is likely to grow into a reverse proxy for Reticulum, a kind of 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.
How do I use this?
This is a plugin for Janus, so you'll need to install and run Janus first. The installation instructions on GitHub are canonical.
Note that in its current incarnation, the plugin is only stable with the Janus refcount branch, which is on track to merge into master. If using Janus stable, be warned that you may experience race conditions around disconnects as resources get freed.
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.
Why shouldn't I just use janus_videoroom?
This one doesn't have all of the features of janus_videoroom yet, but it supports data channels. It's designed specifically for situations where video is not relevant but one needs multicasted audio and data.
Building
$ cargo build [--release]
Testing
$ cargo test
Installing
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.