Skip to content

ToffeeShare/react-native-webrtc

 
 

Repository files navigation

React Native WebRTC

! Please note: changes for ToffeeShare

The data channel is now used to directly access the file system in order to quickly send data natively without first having to convert it to base64 using the native bridge. I consider this to be a bit of a dirty hack, but it works for our use case. Feel free to use this version of WebRTC if this use case fits your project as well.

Furthermore it does have a proper implementation of the buffer outrun events that was lacking in the original repository. I should probably make a pull request of this..

React-Native-WebRTC

npm version npm downloads Discourse topics

A WebRTC module for React Native.

Feature Overview

Android iOS macOS Windows* Web* Expo*
Audio/Video ✔️ ✔️ ✔️ - ✔️ ✔️
Data Channels ✔️ ✔️ ✔️ - ✔️ ✔️
Screen Capture ✔️ ✔️ ✔️ - ✔️ ✔️
Plan B - - - - - -
Unified Plan* ✔️ ✔️ ✔️ - ✔️ ✔️

Windows - We don't currently support the react-native-windows platform at this time.
Anyone interested in getting the ball rolling? We're open to contributions.

Web - The react-native-webrtc-web-shim project provides a shim for react-native-web support.
Which will allow you to use (almost) the exact same code in your react-native-web project as you would with react-native directly.

Expo - Sadly this module is not available in the Expo Go app by default due to including much needed native code. However you can get things working via the expo-dev-client library and out-of-tree config-plugins/react-native-webrtc package.

Unified Plan - As of version 106.0.0 Unified Plan is the only supported mode. Those still in need of Plan B can use and old release.

WebRTC Revision

  • Currently used revision: M106
  • Supported architectures
    • Android: armeabi-v7a, arm64-v8a, x86, x86_64
    • iOS: arm64, x86_64
    • macOS: (temporarily disabled)

Getting Started

Use one of the following preferred package install methods to immediately get going.
Don't forget to follow platform guides below to cover any extra required steps.

npm: npm install react-native-webrtc --save
yarn: yarn add react-native-webrtc

Guides

Example Projects

We have some very basic example projects included in the examples directory.
Don't worry, there are plans to include a much more broader example with backend included.

Community

Come join our Discourse Community if you want to discuss any React Native and WebRTC related topics.
Everyone is welcome and every little helps.

Related Projects

Looking for extra functionality coverage?
The react-native-webrtc organization provides a number of packages which are more than useful when developing Real Time Communication applications.

Packages

No packages published

Languages

  • Java 40.8%
  • Objective-C 33.1%
  • TypeScript 20.0%
  • Python 3.1%
  • JavaScript 2.4%
  • Shell 0.3%
  • Ruby 0.3%