RuStream 0.0.4

Self-hosted Streaming Engine, that can render videos via authenticated sessions.
Documentation

RuStream

made-with-rust

crates.io

build none-shall-pass

Summary

RuStream is a self-hosted streaming engine, that can render videos via authenticated sessions.

Usage

macOS
curl -o RuStream-Darwin-x86_64.tar.gz -LH "Accept: application/octet-stream" "https://github.com/thevickypedia/RuStream/releases/latest/download/RuStream-Darwin-x86_64.tar.gz"
Linux
curl -o RuStream-Linux-x86_64.tar.gz -LH "Accept: application/octet-stream" "https://github.com/thevickypedia/RuStream/releases/latest/download/RuStream-Linux-x86_64.tar.gz"
RaspberryPi
curl -o RuStream-RaspberryPi.tar.gz -LH "Accept: application/octet-stream" "https://github.com/thevickypedia/RuStream/releases/latest/download/RuStream-RaspberryPi.tar.gz"
Windows
curl -o RuStream-Windows-x86_64.zip -LH "Accept: application/octet-stream" "https://github.com/thevickypedia/RuStream/releases/latest/download/RuStream-Windows-x86_64.zip"
Sample main.rs
use rustream;

#[actix_rt::main]
async fn main() {
    match rustream::start().await {
        Ok(_) => {
            println!("RuStream session terminated")
        }
        Err(err) => {
            eprintln!("Error starting rustream: {}", err)
        }
    }
}

Arguments

  • debug - Enable debug level logging

Flags

  • --filename / -f - Filename (JSON) for the secrets config
  • --version / -v - Get package version

Config file

RuStream requires a JSON file with secrets loaded as key-value paris.

{
  "authorization": {"rustic":  "S0m3rAn0mP@ssW0rD"},
  "video_source": "/Users/hannibal/Downloads/stream",
  "video_port": 5883,
  "file_formats": ["mov", "mp4", "mkv"],
  "workers": 10
}

Linting

Requirement

rustup component add clippy

Usage

cargo clippy --no-deps --fix --allow-dirty

Docs

Cargo Docs

cargo doc --document-private-items --no-deps

GitHub Wiki

Crate

https://crates.io/crates/RuStream

License & copyright

© Vignesh Rao

Licensed under the MIT License