Janus plugin to act as a kind of SFU for game networking data. WIP.
Switch branches/tags
Nothing to show
Clone or download
mquander Merge pull request #25 from mozilla/websocket-data
Support sending arbitrary data over signalling transport
Latest commit c5d53df Sep 13, 2018

README.md

janus-plugin-sfu

Build Status

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.

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. 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.

Dependencies

$ sudo apt install libjansson-dev

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.