Expand description
§rvoip-core-traits
Pure-data trait + type surface for the rvoip ecosystem.
Carved out from rvoip-core (per GAP_PLAN.md V2.A) to break the
rvoip-core → rvoip-vcon → rvoip-auth-core → rvoip-core dep
cycle. Consumer crates (rvoip-auth-core, rvoip-vcon,
rvoip-harness, rvoip-identity, and every adapter) depend on
this crate for the types they need; rvoip-core itself
re-exports from here so call sites like use rvoip_core::ids::ConnectionId
keep working.
§Layering rule
This crate has zero rvoip-* dependencies — that’s what breaks
the cycle. It depends only on bytes, chrono, serde,
serde_json, and uuid.
§What lives here
ids— every*Idnewtype (ConnectionId,SessionId,ConversationId,ParticipantId,IdentityId, etc.).adapter— pure adapter-facing request/event/reason structs (AdapterEvent,OriginateRequest,EndReason, etc.).identity— the pure-data identity typesIdentityAssurance,Jwk,CredentialKind,Credential,IdentityKind,DeviceKind. TheIdentityProvidertrait + the structs that reference rvoip-core’sResulttype (Identity, Device, ReachabilityHint) stay inrvoip-core::identitybecause they need the orchestrator’s error type.
§Future scope
Subsequent V2.A.* phases can move more modules here (events,
commands, full identity trait, vcon types, signing, store traits,
and eventually the full ConnectionAdapter trait once message and
command types have moved) as the workspace’s appetite for the
move-cost tradeoff grows.
Re-exports§
pub use adapter::ExternalConnectionReference;pub use adapter::ExternalConnectionReferenceError;pub use adapter::InboundConnectionContext;pub use adapter::InboundContextError;pub use adapter::InboundRoutingHint;pub use adapter::InboundSignalingMetadata;pub use adapter::OriginateContext;pub use adapter::OutboundActivation;pub use adapter::TransferStatus;pub use adapter::MAX_EXTERNAL_CONNECTION_REFERENCES;pub use adapter::MAX_EXTERNAL_REFERENCE_KIND_BYTES;pub use adapter::MAX_EXTERNAL_REFERENCE_VALUE_BYTES;pub use adapter::MAX_INBOUND_METADATA_BYTES;pub use adapter::MAX_INBOUND_METADATA_FIELDS;pub use adapter::MAX_INBOUND_METADATA_NAME_BYTES;pub use adapter::MAX_INBOUND_METADATA_VALUE_BYTES;pub use adapter::MAX_INBOUND_ROUTING_HINT_BYTES;pub use broadcast::BroadcastDescriptor;pub use broadcast::BroadcastDrainDescriptor;pub use broadcast::BroadcastDrainReason;pub use broadcast::BroadcastDrainRequest;pub use broadcast::BroadcastDrainState;pub use broadcast::BroadcastEndpoint;pub use broadcast::BroadcastHealthDescriptor;pub use broadcast::BroadcastHealthIssue;pub use broadcast::BroadcastHealthStatus;pub use broadcast::BroadcastLifecycleDescriptor;pub use broadcast::BroadcastLifecycleState;pub use broadcast::BroadcastProtocolDescriptor;pub use broadcast::BroadcastProtocolFamily;pub use broadcast::BroadcastPublisher;pub use broadcast::BroadcastRelayHop;pub use broadcast::BroadcastRelayRole;pub use broadcast::BroadcastResource;pub use broadcast::BroadcastSanitizedEvent;pub use broadcast::BroadcastSanitizedEventCapability;pub use broadcast::BroadcastSanitizedEventError;pub use broadcast::BroadcastSanitizedEventKind;pub use broadcast::BroadcastSubstrate;pub use broadcast::BroadcastTransport;pub use broadcast::MAX_BROADCAST_EVENT_JSON_INTEGER;pub use data::DataMessage;pub use data::DataMessageValidationError;pub use data::DataReliability;pub use data::MAX_CONTENT_TYPE_BYTES;pub use data::MAX_DATA_LABEL_BYTES;pub use data::MAX_DATA_MESSAGE_BYTES;pub use data::MAX_DATA_MESSAGE_ID_BYTES;pub use identity::AuthenticatedPrincipal;pub use identity::AuthenticationMethod;pub use identity::BearerAuthError;pub use identity::PrincipalOwnershipKey;pub use ids::TransferAttemptId;
Modules§
- adapter
- broadcast
- Transport-neutral one-to-many media publication contracts.
- capability
- connection
- data
- Transport-neutral reliable/unreliable data messages.
- error
- harness
- P5 — provider trait surface for the recording / transcription / AI
harness paths. Per
INTERFACE_DESIGN.md§2.1 these trait shapes live inrvoip-coreso the Orchestrator can dispatch generically; concrete impls (Whisper, Claude, S3, …) ship in consumer crates or inrvoip-harness(which re-exports these and supplies no-op defaults). - identity
- Identity data types — moved here (V2.A.1) so consumer crates
like
rvoip-auth-coreandrvoip-vconcan depend onrvoip-core-traitsinstead ofrvoip-core, breaking the dep cycle. - ids
- Strongly-typed identifiers — the canonical home post-V2.A.
- stream