Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/react-native-webrtc/react-native-webrtc
The WebRTC module for React Native
https://github.com/react-native-webrtc/react-native-webrtc
react react-native webrtc
Last synced: 3 days ago
JSON representation
The WebRTC module for React Native
- Host: GitHub
- URL: https://github.com/react-native-webrtc/react-native-webrtc
- Owner: react-native-webrtc
- License: mit
- Created: 2015-09-27T10:57:30.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2024-07-22T08:34:25.000Z (5 months ago)
- Last Synced: 2024-07-30T12:24:28.416Z (4 months ago)
- Topics: react, react-native, webrtc
- Language: Java
- Homepage: https://react-native-webrtc.discourse.group
- Size: 412 MB
- Stars: 4,564
- Watchers: 120
- Forks: 1,228
- Open Issues: 32
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-webrtc - React-Native-WebRTC - A WebRTC module for React Native. (Miscellaneous / Tool)
- awesome-list - react-native-webrtc - native-webrtc | 3584 | (Java)
- awesome-react-native - react-native-webrtc - The WebRTC module for React Native. ![](https://img.shields.io/github/stars/react-native-webrtc/react-native-webrtc.svg?style=social&label=Star) (Components / Media)
README
[](https://github.com/react-native-webrtc/react-native-webrtc)
# React-Native-WebRTC
[![npm version](https://img.shields.io/npm/v/react-native-webrtc)](https://www.npmjs.com/package/react-native-webrtc)
[![npm downloads](https://img.shields.io/npm/dm/react-native-webrtc)](https://www.npmjs.com/package/react-native-webrtc)
[![Discourse topics](https://img.shields.io/discourse/topics?server=https%3A%2F%2Freact-native-webrtc.discourse.group%2F)](https://react-native-webrtc.discourse.group/)A WebRTC module for React Native.
## Feature Overview
| | Android | iOS | tvOS | macOS* | Windows* | Web* | Expo* |
| :- | :-: | :-: | :-: | :-: | :-: | :-: | :-: |
| Audio/Video | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | - | - | :heavy_check_mark: | :heavy_check_mark: |
| Data Channels | :heavy_check_mark: | :heavy_check_mark: | - | - | - | :heavy_check_mark: | :heavy_check_mark: |
| Screen Capture | :heavy_check_mark: | :heavy_check_mark: | - | - | - | :heavy_check_mark: | :heavy_check_mark: |
| Plan B | - | - | - | - | - | - | - |
| Unified Plan* | :heavy_check_mark: | :heavy_check_mark: | - | - | - | :heavy_check_mark: | :heavy_check_mark: |
| Simulcast* | :heavy_check_mark: | :heavy_check_mark: | - | - | - | :heavy_check_mark: | :heavy_check_mark: |> **macOS** - We don't currently actively support macOS at this time.
Support might return in the future.> **Windows** - We don't currently support the [react-native-windows](https://github.com/microsoft/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](https://github.com/react-native-webrtc/react-native-webrtc-web-shim) project provides a shim for [react-native-web](https://github.com/necolas/react-native-web) support.
Which will allow you to use [(almost)](https://github.com/react-native-webrtc/react-native-webrtc-web-shim/tree/main#setup) the exact same code in your [react-native-web](https://github.com/necolas/react-native-web) project as you would with [react-native](https://reactnative.dev/) directly.> **Expo** - As this module includes native code it is not available in the [Expo Go](https://expo.dev/client) app by default.
However you can get things working via the [expo-dev-client](https://docs.expo.dev/development/getting-started/) library and out-of-tree [config-plugins/react-native-webrtc](https://github.com/expo/config-plugins/tree/master/packages/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 will need to use an older release.> **Simulcast** - As of version 111.0.0 Simulcast is now possible with ease.
Software encode/decode factories have been enabled by default.## WebRTC Revision
* Currently used revision: [M124](https://github.com/jitsi/webrtc/tree/M124)
* Supported architectures
* Android: armeabi-v7a, arm64-v8a, x86, x86_64
* iOS: arm64, x86_64
* tvOS: arm64
* macOS: arm64, x86_64## 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`
**pnpm:** `pnpm install react-native-webrtc`## Guides
- [Android Install](./Documentation/AndroidInstallation.md)
- [iOS Install](./Documentation/iOSInstallation.md)
- [tvOS Install](./Documentation/tvOSInstallation.md)
- [Basic Usage](./Documentation/BasicUsage.md)
- [Step by Step Call Guide](./Documentation/CallGuide.md)
- [Improving Call Reliability](./Documentation/ImprovingCallReliability.md)
- [Migrating to Unified Plan](https://docs.google.com/document/d/1-ZfikoUtoJa9k-GZG1daN0BU3IjIanQ_JSscHxQesvU/edit#heading=h.wuu7dx8tnifl)## Example Projects
We have some very basic example projects included in the [examples](./examples) directory.
Don't worry, there are plans to include a much more broader example with backend included.## Community
Come join our [Discourse Community](https://react-native-webrtc.discourse.group/) 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](https://github.com/react-native-webrtc) organization provides a number of packages which are more than useful when developing Real Time Communication applications.