arcly-stream 0.1.0

A high-performance live-media streaming kernel: lock-free zero-copy frame fan-out, instant-start GOP cache, pluggable HLS/recording, and trait-driven protocol/storage/auth/observer extension points — runtime, config, and metrics free.
Documentation
//! Stream lifecycle events.

use crate::{AppName, StreamId};

/// A lifecycle event emitted by an [`Application`](super::Application).
#[derive(Debug, Clone)]
pub struct StreamEvent {
    pub app: AppName,
    pub stream_id: StreamId,
    pub kind: StreamEventKind,
}

#[derive(Debug, Clone, PartialEq, Eq)]
#[non_exhaustive]
pub enum StreamEventKind {
    PublishStarted,
    PublishEnded,
    SubscriberJoined { protocol: String },
    SubscriberLeft { protocol: String },
    RecordingStarted,
    RecordingEnded,
    TranscodeStarted,
    TranscodeEnded,
    Error { message: String },
}