mirror of
https://github.com/ruvnet/RuView
synced 2026-07-28 18:21:42 +00:00
52 lines
1.9 KiB
Rust
52 lines
1.9 KiB
Rust
//! `homecore-hap` — Apple Home HomeKit Accessory Protocol bridge (ADR-125).
|
|
//!
|
|
//! # Network foundation scope
|
|
//!
|
|
//! The crate provides persisted accessory/controller identity, SRP-6a
|
|
//! Pair-Setup, X25519/Ed25519 Pair-Verify, encrypted HAP IP framing, bounded
|
|
//! TLV8/HTTP parsing, characteristic event flow, and (with `hap-server`) a
|
|
//! bounded TCP listener plus real mDNS.
|
|
//!
|
|
//! # Module layout
|
|
//!
|
|
//! | Module | Purpose |
|
|
//! |--------|---------|
|
|
//! | [`accessory`] | HAP service / characteristic enum catalogue |
|
|
//! | [`mapping`] | `EntityToAccessoryMapper` — HOMECORE entity → HAP |
|
|
//! | [`bridge`] | `HapBridge` — owns exposed accessories |
|
|
//! | [`mdns`] | `MdnsAdvertiser` trait + `NullAdvertiser` stub |
|
|
//! | [`pairing`] | Atomic accessory identity, setup, and pairing persistence |
|
|
//! | [`protocol`] | Bounded TLV8 protocol primitives |
|
|
//! | [`ruview`] | `RuViewToHapMapper` — sensing primitives → HAP |
|
|
//! | [`session`] | Authenticated request-gating state machine |
|
|
//! | `server` | Feature-gated bounded TCP/HTTP lifecycle |
|
|
//! | [`error`] | Unified `HapError` type |
|
|
|
|
pub mod accessory;
|
|
pub mod bridge;
|
|
mod crypto;
|
|
pub mod error;
|
|
pub mod mapping;
|
|
pub mod mdns;
|
|
mod pair_setup;
|
|
mod pair_verify;
|
|
pub mod pairing;
|
|
pub mod protocol;
|
|
pub mod ruview;
|
|
#[cfg(feature = "hap-server")]
|
|
pub mod server;
|
|
pub mod session;
|
|
|
|
pub use accessory::{HapAccessoryType, HapCharacteristic, HapCharacteristicValue};
|
|
pub use bridge::{CharacteristicEvent, ExposedAccessory, HapBridge};
|
|
pub use error::HapError;
|
|
pub use mapping::EntityToAccessoryMapper;
|
|
#[cfg(feature = "hap-server")]
|
|
pub use mdns::MdnsSdAdvertiser;
|
|
pub use mdns::{HapServiceRecord, MdnsAdvertiser, NullAdvertiser};
|
|
pub use pairing::{ControllerPairing, PairingStore, PairingStoreProvisioning, SetupCode};
|
|
pub use ruview::RuViewToHapMapper;
|
|
#[cfg(feature = "hap-server")]
|
|
pub use server::{start_server, HapServerConfig, HapServerHandle};
|
|
pub use session::{Session, SessionState};
|