@pipecat-ai/react-native-small-webrtc-transport
v1.5.0
Published
React Native library for connecting to RTVI client using Small WebRTC
Readme
The Pipecat client React Native Transport library exports a RNSmallWebRTCTransport that has the SmallWebRTCTransport transport associated.
Minimum OS/SDK versions
This package introduces some constraints on what OS/SDK versions your project can support:
- iOS: Deployment target >= 15
- Android:
minSdkVersion>= 24
Installation
Install @pipecat-ai/react-native-small-webrtc-transport.
npm i @pipecat-ai/react-native-small-webrtc-transportIf you are using the DailyMediaManager, you will also need to install it along with its peer dependencies:
npm i @pipecat-ai/react-native-daily-media-manager
npm i @daily-co/react-native-daily-js@^0.82.0
npm i @daily-co/react-native-webrtc@^124.0.6-daily.1
npm i @react-native-async-storage/async-storage@^1.24.0
npm i react-native-background-timer@^2.4.1
npm i react-native-get-random-values@^1.11.0If you are using Expo, you will also need to add the following dependencies:
npm i @daily-co/[email protected]All the details about Expo can be found here.
A full demo can be found here
Quick Start
Instantiate an RTVIClient instance, wire up the bot's audio, and start the conversation:
const options: SmallWebRTCTransportConstructorOptions = {
mediaManager: new DailyMediaManager(),
};
let pipecatClient = new PipecatClient({
transport: new RNSmallWebRTCTransport(options),
enableMic: true,
enableCam: false,
callbacks: {
onConnected: () => {
setInCall(true);
},
onDisconnected: () => {
setInCall(false);
},
onTransportStateChanged: (state) => {
console.log(`Transport state changed: ${state}`);
setCurrentState(state);
},
onError: (error) => {
console.log('Error:', JSON.stringify(error));
},
},
});
await client?.startBotAndConnect({
endpoint: baseUrl + '/start',
});Note: To enable screen sharing on iOS, follow the instructions in the Daily Framework RN Screen Share extension.
Documentation
Pipecat Client React Native implements a client instance that:
- Facilitates requests to an endpoint you create.
- Dispatches single-turn actions to a HTTP bot service when disconnected.
- Provides methods that handle the connectivity state and realtime interaction with your bot service.
- Manages media transport (such as audio and video).
- Provides callbacks and events for handling bot messages and actions.
- Optionally configures your AI services and pipeline.
Docs and API reference can be found at https://docs.pipecat.ai/client/introduction.
Contributing
We welcome contributions from the community! Whether you're fixing bugs, improving documentation, or adding new features, here's how you can help:
- Found a bug? Open an issue
- Have a feature idea? Start a discussion
- Want to contribute code? Check our CONTRIBUTING.md guide
- Documentation improvements? Docs PRs are always welcome
Before submitting a pull request, please check existing issues and PRs to avoid duplicates.
We aim to review all contributions promptly and provide constructive feedback to help get your changes merged.
