[][src]Crate srt_tokio

Implementation of SRT in pure safe rust.

Generally used for live video streaming across lossy but high bandwidth connections.

Quick start

use srt_tokio::SrtSocketBuilder;
use futures::prelude::*;
use bytes::Bytes;
use std::time::Instant;
use std::io;

#[tokio::main]
async fn main()
{
    let sender_fut = async {
        let mut tx = SrtSocketBuilder::new_listen().local_port(2223).connect().await?;

        let iter = ["1", "2", "3"];
        
        tx.send_all(&mut stream::iter(&iter)
            .map(|b| Ok((Instant::now(), Bytes::from(*b))))).await?;
        tx.close().await?;

        Ok::<_, io::Error>(())
    };

    let receiver_fut = async {
        let mut rx = SrtSocketBuilder::new_connect("127.0.0.1:2223").connect().await?;

        assert_eq!(rx.try_next().await?.map(|(_i, b)| b), Some(b"1"[..].into()));
        assert_eq!(rx.try_next().await?.map(|(_i, b)| b), Some(b"2"[..].into()));
        assert_eq!(rx.try_next().await?.map(|(_i, b)| b), Some(b"3"[..].into()));
        assert_eq!(rx.try_next().await?, None);

        Ok::<_, io::Error>(())
    };

    futures::try_join!(sender_fut, receiver_fut).unwrap();
}

Modules

tokio

Structs

SrtSocket

Connected SRT connection, generally created with SrtSocketBuilder.

SrtSocketBuilder

Struct to build sockets.

StreamerServer

Enums

ConnInitMethod

Describes how this SRT entity will connect to the other.

Functions

multiplex