pipecat::DailyTransport connects your C++ app to a Pipecat bot’s Daily room, using WebRTC. The bot uses Daily’s server-side transport, like bots on Pipecat Cloud do.
It’s part of the C++ SDK, and supports Linux (x86_64 and aarch64), macOS (aarch64) and Windows (x86_64).
Usage
Give apipecat::DailyTransport to the client when you create it:
- The transport joins the bot’s Daily room. Start endpoints like Pipecat Cloud or Pipecat’s development runner (
python bot.py -t daily) create one when you ask withcreateDailyRoom. If you already have a room, connect to it directly withclient.connect({{"url", room_url}, {"token", token}}). - Audio is 16-bit PCM, 16 kHz mono by default. Change it with
pipecat::DailyTransportOptions. The user’s audio is sent without echo cancellation, so if you play the bot through speakers, use your platform’s echo cancellation or headphones. - Each client needs its own
DailyTransport, and several clients can run at the same time, e.g. to talk to several bots.
Installation
Besides what the client needs, you need the Daily Core C++ SDK 0.23.0 or newer. Download it for your platform from its releases, unpack it, and pointDailyCore_ROOT to it.
With FetchContent, turn the transport on before making the SDK available, and link pipecat::daily, which also links the client and Daily Core:
-DDailyCore_ROOT=/path/to/daily-core-sdk.
To build and install it yourself, add -DPIPECAT_BUILD_DAILY=ON when configuring the SDK:
- Linux/macOS
- Windows
DailyCore_ROOT pointing to the Daily Core SDK:
Daily Core is a shared library, so ship it with your app. On Windows, put
daily_core.dll next to your .exe. See Shipping the
library in
the Daily Core SDK’s README.Examples
The SDK’s text and voice examples use the Daily transport by default, with a bot on your machine or on Pipecat Cloud.Documentation
API Reference
Includes
DailyTransport and its optionsSource
The Daily transport on GitHub