Fishloa has released the playout-runtime Rust crate, a sans-IO library designed for linear channel assembly. The tool provides schedule management, transition planning, and SCTE-35 splice point emission without performing transcoding or timestamp rewriting.
By decoupling scheduling logic from I/O and transcoding, this release allows developers to build highly portable linear playout engines that prioritize timeline correctness. The sans-IO approach means the library can be integrated into various environments without forcing specific networking or runtime dependencies like tokio. This modularity reflects a broader industry shift toward specialized, high-performance Rust components for video infrastructure rather than monolithic media servers. As streaming platforms seek to reduce overhead in virtual linear channel generation, watch for how this crate integrates with the broader fishloa-rust-broadcast workspace to handle real-time HLS and RTSP delivery.
Fishloa's playout-runtime crate sits within the broader fishloa/rust-broadcast workspace on GitHub, which has been developed as a collection of sans-IO components for streaming infrastructure. The workspace includes companion crates such as ssai-runtime, scte35-splice, and broadcast-common, all sharing the same architectural philosophy of separating protocol logic from I/O concerns. According to the project's issue tracker, Fishloa initially planned playout-runtime as part of a multimux linear channel assembly feature but later cancelled the full channel controller, shipping only the file-input streaming capability while retaining the standalone crate for schedule and transition planning. The design decision explicitly rejected SCTE 224 (ESNI) as a schedule format, noting it covers policy and blackout signalling rather than channel assembly, and is paywalled.
The sans-IO pattern that Fishloa employs for playout-runtime reflects a broader approach within the rust-broadcast workspace where each crate handles a single concern without runtime dependencies. The crate depends on scte35-splice version 2.1 for SCTE-35 serialization and ssai-runtime version 0.1 for splice-point conditioning, creating a layered architecture where playout-runtime decides when transitions happen while ssai-runtime determines how splices land against real segment boundaries. Fishloa's design documentation emphasizes that timeline continuity is the primary tested property, with the crate computing PTS-rebase offsets and discontinuity flags rather than performing actual timestamp rewriting, which is deferred to the transmux crate's IR transform layer.
For developers evaluating linear channel assembly tooling, Fishloa's approach differs from integrated playout systems by exposing the scheduling and transition logic as a composable library rather than a monolithic server. The crate's no_std compatibility with alloc-only allocation makes it suitable for embedded or constrained environments where a full async runtime would be impractical. Fishloa published playout-runtime at version 0.1.0 with 15 total downloads as of its initial release, positioning it as a foundational building block rather than a production-ready platform.
Fishloa has released the playout-runtime crate, a sans-IO Rust library for linear channel assembly. By decoupling scheduling logic from I/O and transcoding, it allows developers to build portable playout engines. This modular approach enables precise timeline continuity and SCTE-35 emission without requiring specific networking dependencies or monolithic media server architectures.
The crate provides a sans-IO library for assembling linear channels through schedule management and transition planning, focusing on timeline continuity and SCTE-35 emission.
No, the crate computes PTS-rebase offsets and discontinuity flags but leaves the actual sample-timestamp rewriting to external transmux tools.
The sans-IO approach allows the library to be integrated into various environments without forcing specific networking or runtime dependencies, such as tokio, making it suitable for constrained or embedded systems.
It handles SCTE-35 splice_insert() emission points implied by schedule transitions using the 2023r1 standard and utilizes ssai-runtime for nearest-boundary splice-point conditioning.
Add StreamingMeme as a preferred source on Google to see more of our streaming news at the top of your Search results.
Add as preferred source