All Projects → michaelfranzl → minnie-janus

michaelfranzl / minnie-janus

Licence: MIT License
Small, ES8, isomorphic library for interfacing with the Janus WebRTC gateway.

Programming Languages

javascript
184084 projects - #8 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to minnie-janus

chattery
A GitHub action that creates chatrooms for pull requests
Stars: ✭ 30 (+7.14%)
Mutual labels:  webrtc
classroom-demo
Full web application (Angular 7 + Spring Boot 2 + MySQL) making use of OpenVidu
Stars: ✭ 50 (+78.57%)
Mutual labels:  webrtc
Dockerfiles
Optimized media, analytics and graphics software stack images. Use the dockerfile(s) in your project or as a recipe book for bare metal installation.
Stars: ✭ 98 (+250%)
Mutual labels:  webrtc
udpeer
A simple UDP peer to peer networking proxy using webrtc
Stars: ✭ 19 (-32.14%)
Mutual labels:  webrtc
WebRTC-Flask-server
WebRTC demo using flask for routing.
Stars: ✭ 34 (+21.43%)
Mutual labels:  webrtc
dtls
Datagram Transport Layer Security (DTLS) client.
Stars: ✭ 72 (+157.14%)
Mutual labels:  webrtc
sdp-anatomy
Source code for webrtcHacks' Anatomy of a SDP
Stars: ✭ 60 (+114.29%)
Mutual labels:  webrtc
broadcast-sample-app
OpenTok Broadcast Sample Application
Stars: ✭ 48 (+71.43%)
Mutual labels:  webrtc
Xamarin.Agora.Samples
Agora.io samples for Xamarin.iOS, Xamarin.Android, Xamarin.MacOS and Xamarin.Forms
Stars: ✭ 41 (+46.43%)
Mutual labels:  webrtc
webrtcsink
All-batteries included GStreamer WebRTC producer
Stars: ✭ 18 (-35.71%)
Mutual labels:  webrtc
easy-voice-call
A self-hosting voice chating App
Stars: ✭ 30 (+7.14%)
Mutual labels:  webrtc
webrtc-stats
Helps you collect stats for peer connections
Stars: ✭ 31 (+10.71%)
Mutual labels:  webrtc
visual-ts-game-engine
Typescript project based on matter.ts implementation."This version 2 of visualjs game engine, totally different approach. Whole project is based fully dependency build. Main file is app.ts and ioc.ts. Class ioc saves singleton instances also bind. In this project html and css is also present, webpack helps and handle this type of files. GamePlay…
Stars: ✭ 15 (-46.43%)
Mutual labels:  webrtc
baresip-webrtc
Baresip WebRTC Demo
Stars: ✭ 33 (+17.86%)
Mutual labels:  webrtc
getScreenId
getScreenId | Capture Screen on Any Domain! This script is a hack used to support single chrome extension usage on any HTTPs domain.
Stars: ✭ 59 (+110.71%)
Mutual labels:  webrtc
Tubumu.Abp.Meeting
An abp module to create meeting app quickly.
Stars: ✭ 15 (-46.43%)
Mutual labels:  webrtc
gise-video-chat
Video chat application for your own web server
Stars: ✭ 48 (+71.43%)
Mutual labels:  webrtc
snowem
Snowem is a lightweight live streaming server, based on webrtc technology. Its design mainly focuses on simplicity, scalability and high performance.
Stars: ✭ 73 (+160.71%)
Mutual labels:  webrtc
mediasoup-cpp
The full C++ implementation of mediasoup
Stars: ✭ 27 (-3.57%)
Mutual labels:  webrtc
loowid
Webconference solution based on webrtc
Stars: ✭ 92 (+228.57%)
Mutual labels:  webrtc

minnie-janus

Test badge

A small, modern, general interface module written in ES8 Javascript for the Janus WebRTC gateway API, for browsers as well as Node.js.

Inspiration came from the project minijanus (hence this name, 'minnie-janus'), but this is a rewrite from scratch because I needed ES modules, events, async/await syntax, better logging, and a fix of one small API issue in minijanus.

Provided are two behavior implementations, Session (see src/session.js) and BasePlugin (see src/base-plugin.js), which transparently map to their server-side equivalents.

BasePlugin is supposed to be extended with per-plugin logic before being attached to a Session instance, because Janus plugins are more like applications with very specific behavior. See examples below on how to extend the BasePlugin implementation.

Neither Session nor BasePlugin instances actually communicate with janus-gateway. The parent application instantiating a Session is responsible for wiring up the transport of choice (REST HTTP(S), (Secure) WebSockets, etc.) to the Session.receive() method and the Session#output event.

Usage of mini-janus is best illustrated by the full demo/example implementing the 'echotest' plugin (included in Janus' source code). It can be found in the demo subdirectory (see also demo/README.md there).

The implementation has been automatically tested against the following janus-gateway versions:

  • 0.7
  • 0.8
  • 0.9

Usage

See:

  1. echotest demo contained in this repository
  2. janus-rtpforward-plugin demo
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].