Skip to main content

actr_protocol/
lib.rs

1#![allow(deprecated)]
2//! # Actor-RTC Protocol, Types, and URI Parsing
3//!
4//! This crate contains the unified protocol definitions for the Actor-RTC framework.
5//! Its primary role is to provide the raw, generated Protobuf types and essential,
6//! stateless utilities for handling those types (e.g., ID and URI formatting).
7//!
8//! It strictly adheres to its role as a data definition layer and does not contain
9//! higher-level traits, business logic, or runtime-specific implementations.
10
11// Include generated protobuf code from prost
12pub mod generated {
13    pub mod actr {
14        include!(concat!(env!("OUT_DIR"), "/actr.rs"));
15    }
16    pub mod signaling {
17        include!(concat!(env!("OUT_DIR"), "/signaling.rs"));
18    }
19    pub mod webrtc {
20        include!(concat!(env!("OUT_DIR"), "/webrtc.rs"));
21    }
22}
23
24// Re-export all generated types at the crate root for convenience
25pub use generated::actr::*;
26pub use generated::signaling::*;
27pub use generated::webrtc::*;
28
29// Stateless, self-contained extensions and utilities
30pub mod actr_ext;
31pub mod error;
32pub mod manufacturer_auth;
33pub mod message;
34pub mod name;
35pub mod turn;
36pub mod uri;
37
38// Re-export key utilities for convenience
39pub use actr_ext::*;
40pub use error::*;
41pub use manufacturer_auth::*;
42pub use message::RpcRequest;
43pub use name::*;
44
45// Re-export prost and prost_types for downstream crates
46// This ensures a single source of truth for protobuf dependencies
47pub use prost;
48pub use prost_types;
49
50#[cfg(feature = "uniffi")]
51uniffi::setup_scaffolding!();