All Projects → webrtcHacks → Adapter

webrtcHacks / Adapter

Licence: bsd-3-clause
Shim to insulate apps from spec changes and prefix differences. Latest adapter.js release:

Programming Languages

javascript
184084 projects - #8 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to Adapter

Ayame
WebRTC Signaling Server Ayame
Stars: ✭ 218 (-92.74%)
Mutual labels:  webrtc
React Native Fetch Blob
This project was started in the cause of solving issue facebook/react-native#854, React Native's lacks of Blob implementation which results into problems when transferring binary data.
Stars: ✭ 2,593 (-13.62%)
Mutual labels:  polyfill
Poly Flif
📷 A poly-fill for the FLIF image format.
Stars: ✭ 243 (-91.91%)
Mutual labels:  polyfill
Details Element Polyfill
<details>
Stars: ✭ 221 (-92.64%)
Mutual labels:  polyfill
Webrtcchat
🔏 Pure Browser To Browser Chat (STUN & ICE Servers optional)
Stars: ✭ 230 (-92.34%)
Mutual labels:  webrtc
Video Chat
Video chat app using Vue, Vuex, WebRTC, SocketIO, Node, Redis & Docker with horizontal scaling. Multiparty and 1 to 1 video functionality, several public rooms and user status
Stars: ✭ 240 (-92.01%)
Mutual labels:  webrtc
Video Stream Merger
Merge multiple video MediaStreams into one composite.
Stars: ✭ 214 (-92.87%)
Mutual labels:  webrtc
Deershare
小鹿快传,一款在线P2P文件传输工具,使用WebSocket + WebRTC技术
Stars: ✭ 251 (-91.64%)
Mutual labels:  webrtc
Video Call App Nodejs
A conference call implementation using WebRTC, Socket.io and Node.js
Stars: ✭ 234 (-92.21%)
Mutual labels:  webrtc
Licode
Open Source Communication Provider based on WebRTC and Cloud technologies
Stars: ✭ 2,777 (-7.5%)
Mutual labels:  webrtc
Core Js
Standard Library
Stars: ✭ 15,854 (+428.11%)
Mutual labels:  polyfill
Pagedjs
Display paginated content in the browser and generate print books using web technology
Stars: ✭ 228 (-92.41%)
Mutual labels:  polyfill
Peertransfer
📦 • Send a file p2p and e2e encrypted in your browser using WebRTC.
Stars: ✭ 238 (-92.07%)
Mutual labels:  webrtc
Grpc Over Webrtc
gRPC over WebRTC
Stars: ✭ 220 (-92.67%)
Mutual labels:  webrtc
Multistreamsmixer
MultiStreamsMixer is a JavaScript library that allows you pass multiple streams (e.g. screen+camera or multiple-cameras) and get single stream.
Stars: ✭ 246 (-91.81%)
Mutual labels:  webrtc
Webrtc Video Broadcast
WebRTC video/audio broadcast
Stars: ✭ 217 (-92.77%)
Mutual labels:  webrtc
Webrtc im
webrtc 直播连麦
Stars: ✭ 237 (-92.11%)
Mutual labels:  webrtc
Pressure
👇💥 JavaScript library for handling Force Touch, 3D Touch, and Pointer Pressure.
Stars: ✭ 2,785 (-7.23%)
Mutual labels:  polyfill
Webxr Polyfill
Use the WebXR Device API today, providing fallbacks to native WebVR 1.1 and Cardboard
Stars: ✭ 251 (-91.64%)
Mutual labels:  polyfill
Eslint Plugin Compat
Lint the browser compatibility of your code
Stars: ✭ 2,743 (-8.63%)
Mutual labels:  polyfill

WebRTC adapter

adapter.js is a shim to insulate apps from spec changes and prefix differences in WebRTC. The prefix differences are mostly gone these days but differences in behaviour between browsers remain.

This repository used to be part of the WebRTC organisation on github but moved. We aim to keep the old repository updated with new releases.

Install

NPM

npm install webrtc-adapter

Bower

bower install webrtc-adapter

Usage

Javascript

Just import adapter:

import adapter from 'webrtc-adapter';

No further action is required. You might want to use adapters browser detection which detects which webrtc quirks are required. You can look at

adapter.browserDetails.browser

for webrtc engine detection (which will for example detect Opera or the Chromium based Edge as 'chrome') and

adapter.browserDetails.version

for the version according to the user-agent string.

NPM

Copy to desired location in your src tree or use a minify/vulcanize tool (node_modules is usually not published with the code). See webrtc/samples repo as an example on how you can do this.

Prebuilt releases

Web

In the gh-pages branch prebuilt ready to use files can be downloaded/linked directly. Latest version can be found at https://webrtc.github.io/adapter/adapter-latest.js. Specific versions can be found at https://webrtc.github.io/adapter/adapter-N.N.N.js, e.g. https://webrtc.github.io/adapter/adapter-1.0.2.js.

Bower

You will find adapter.js in bower_components/webrtc-adapter/.

NPM

In node_modules/webrtc-adapter/out/ folder you will find 4 files:

  • adapter.js - includes all the shims and is visible in the browser under the global adapter object (window.adapter).
  • adapter_no_global.js - same as adapter.js but is not exposed/visible in the browser (you cannot call/interact with the shims in the browser).

Include the file that suits your need in your project.

Development

Head over to test/README.md and get started developing.

Publish a new version

  • Go to the adapter repository root directory
  • Make sure your repository is clean, i.e. no untracked files etc. Also check that you are on the master branch and have pulled the latest changes.
  • Depending on the impact of the release, either use patch, minor or major in place of <version>. Run npm version <version> -m 'bump to %s' and type in your password lots of times (setting up credential caching is probably a good idea).
  • Create and merge the PR if green in the GitHub web ui
  • Go to the releases tab in the GitHub web ui and edit the tag.
  • Add a summary of the recent commits in the tag summary and a link to the diff between the previous and current version in the description, example.
  • Go back to your checkout and run git pull
  • Run npm publish (you need access to the webrtc-adapter npmjs package). For big changes, consider using a tag version such as next and then change the dist-tag after testing.
  • Done! There should now be a new release published to NPM and the gh-pages branch.

Note: Currently only tested on Linux, not sure about Mac but will definitely not work on Windows.

Publish a hotfix patch versions

In some cases it may be necessary to do a patch version while there are significant changes changes on the master branch. To make a patch release,

  • checkout the latest git tag using git checkout tags/vMajor.minor.patch.
  • checkout a new branch, using a name such as patchrelease-major-minor-patch.
  • cherry-pick the fixes using git cherry-pick some-commit-hash.
  • run npm version patch. This will create a new patch version and publish it on github.
  • check out origin/bumpVersion branch and publish the new version using npm publish.
  • the branch can now safely be deleted. It is not necessary to merge it into the main branch since it only contains cherry-picked commits.
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].