rvoip — Universal real-time gateway library
Maturity tiers (plain numeric — no
-alpha/-betasuffixes):0.1.x= alpha,0.2.x= beta,1.0= stable. Thesipsurface is beta (0.2.0); the other surfaces (webrtc,uctp, thevoip-3extensions,client) are alpha (0.1.0) — expect breaking changes before1.0. Pin exact versions.
rvoip is the facade crate for the rvoip workspace. It always compiles the voip-3
substrate (rvoip-core's Orchestrator + the shared Conversation/Session/
Connection/Stream/Message/Participant model) and lets you opt into transports and
extensions behind cargo features — defaulting to the SIP product. One process, one
Orchestrator, many protocols, bridged through a single conversation model.
Quick start
[]
= "0.2.0" # default feature: sip
use ;
async
The unifying nouns are re-exported at the crate root from rvoip-core-traits as rvoip::core_traits.
For a SIP softphone with microphone/speaker audio, see the rvoip-sip examples — sip_client (a terminal softphone with CPAL device I/O) and pbx.
Cargo features
| Feature | Default | Tier | Pulls in |
|---|---|---|---|
sip |
✅ | beta | SIP interop adapter (rvoip::sip) |
webrtc |
alpha | WebRTC interop adapter (rvoip::webrtc) |
|
uctp |
alpha | UCTP substrate adapters — QUIC / WebTransport / WebSocket (rvoip::uctp) |
|
sip-stir-shaken |
alpha | RFC 8224 caller-ID attestation; requires sip (rvoip::stir_shaken) |
|
voip-3 |
alpha | The full experience: every transport + the vCon / identity / AI-harness extensions | |
client |
alpha | Cross-transport client SDK (rvoip::client) |
|
full |
voip-3 + sip-stir-shaken + client |
The transport-agnostic conversation-model extensions — vCon emission, identity
backends, and the AI harness — are reachable only through the voip-3 feature.
# e.g. the full multi-transport rvoip-3 experience
= { = "0.2.0", = ["voip-3"] }
Module layout
| Path | Feature | Source crate |
|---|---|---|
rvoip::{Orchestrator, Config} |
always | rvoip-core |
rvoip::core_traits |
always | rvoip-core-traits |
rvoip::sip |
sip |
rvoip-sip |
rvoip::stir_shaken |
sip-stir-shaken |
rvoip-stir-shaken |
rvoip::webrtc |
webrtc |
rvoip-webrtc |
rvoip::uctp (::protocol/::quic/::webtransport/::websocket) |
uctp |
rvoip-uctp + substrates |
rvoip::vcon / ::identity / ::harness |
voip-3 |
rvoip-vcon · rvoip-identity · rvoip-harness |
rvoip::client |
client |
rvoip-client |
Crate map
Beta — published at 0.2.0 (the SIP product + shared spine): rvoip (facade),
rvoip-core, rvoip-core-traits,
rvoip-infra-common, the media engine
(rvoip-media-core · rvoip-rtp-core · rvoip-codec-core),
the SIP stack (rvoip-sip + sip-core · sip-transport · sip-dialog · sip-proxy · sip-registrar),
and rvoip-auth-core.
Alpha — published at 0.1.0 (opt-in surfaces): rvoip-webrtc;
the UCTP family (rvoip-uctp · rvoip-quic · rvoip-webtransport · rvoip-websocket);
rvoip-vcon · rvoip-harness · rvoip-stir-shaken;
rvoip-identity · rvoip-users-core; rvoip-client.
Documentation
- API docs: docs.rs/rvoip
- Workspace overview: repository README
- Architecture & protocol design:
PRD.md,INTERFACE_DESIGN.md,CONVERSATION_PROTOCOL.md
License
Licensed under the MIT License.