Janus plugin to act as a kind of SFU for game networking data.
Перейти к файлу
Marshall Quander dd7d081608 Checkpoint commit 2018-03-16 13:32:40 -07:00
client Tidy up squawkers HTML 2018-02-13 14:56:51 -08:00
docs Fix bugs, update API, clean up 2017-11-15 16:25:23 -08:00
scripts Bring up to latest Janus, fix some race conditions 2017-12-06 17:16:34 -08:00
src Checkpoint commit 2018-03-16 13:32:40 -07:00
.gitignore command line and squawker automation 2017-11-21 16:31:27 -08:00
.travis.yml Add Travis config 2017-10-05 16:33:45 -07:00
Cargo.lock Checkpoint commit 2018-03-16 13:32:40 -07:00
Cargo.toml Checkpoint commit 2018-03-16 13:32:40 -07:00
Jenkinsfile Add colorization to Jenkinsfile 2017-12-08 15:11:46 -08:00
LICENSE Add MPL 2017-10-07 03:08:17 -07:00
Makefile test --release in Makefile 2017-11-02 15:37:36 -07:00
README.md Add some helpful info in README 2018-01-09 16:14:49 -08:00
rustfmt.toml Use macro for answer_sdp, formatting 2017-09-28 03:12:29 -07:00

README.md

janus-plugin-sfu

Build Status

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.