Core definitions and functions for the rtc.io suite

npm install rtc-core
37 downloads in the last day
140 downloads in the last week
880 downloads in the last month


The rtc-core package includes a number of core types and constants that are used across the rtc.io suite.


Build Status unstable


A browser detection helper for accessing prefix-free versions of the various WebRTC types.

Example Usage

If you wanted to get the native RTCPeerConnection prototype in any browser you could do the following:

var detect = require('rtc-core/detect'); // also available in rtc/detect
var RTCPeerConnection = detect('RTCPeerConnection');

This would provide whatever the browser prefixed version of the RTCPeerConnection is available (webkitRTCPeerConnection, mozRTCPeerConnection, etc).


match(browser, spec?, fn?) ==> Boolean

The match helper is useful for customizing the behaviour of your WebRTC application based on browser environment and also specific versions of the browser (using a semver based spec).

var detect = require('rtc-core/detect');
var match = require('rtc-core/match');

if (match('chrome', '>= 35')) {
  console.log('matched >= chrome 35, actual version: ' + detect.version);
else if (match('chrome', '32 - 34')) {
  console.log('matched chrome 32 - 34, actual version: ' + detect.version);
else if (match('chrome', '^31')) {
  console.log('matched chrome 31, actual version: ' + detect.version)
else if (match('chrome')) {
  console.log('matched chrome (any version), actual version: ' + detect.version);
else {
  console.log('not running chrome, browser: ' + detect.browser + ', version: ' + detect.version);


This is a simple, cross-browser method for resetting a media element back to a initial state after having media attached.


Apache 2.0

Copyright 2013 - 2014 National ICT Australia Limited (NICTA)

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at


Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

npm loves you