control: add iroh gossip transport announcements and ec-node control CLI

This commit is contained in:
every.channel 2026-02-22 01:57:20 -08:00
parent fba1f3a7d5
commit fe97623ba8
No known key found for this signature in database
5 changed files with 494 additions and 23 deletions

View file

@ -183,6 +183,32 @@ pub struct StreamCatalog {
pub entries: Vec<StreamCatalogEntry>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(tag = "kind", rename_all = "snake_case")]
pub enum StreamTransportDescriptor {
/// Stream is available via a MoQ relay over WebTransport/WebSocket.
RelayMoq {
url: String,
broadcast_name: String,
track_name: String,
},
/// Stream is available via iroh direct MoQ.
IrohDirect {
endpoint: String,
broadcast_name: String,
track_name: String,
},
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct StreamControlAnnouncement {
pub stream: StreamDescriptor,
pub transports: Vec<StreamTransportDescriptor>,
pub updated_unix_ms: u64,
/// Suggested freshness window for this announcement.
pub ttl_ms: u64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ManifestSummary {
pub manifest_id: String,