#自托管 #媒体服务器 #cargo文档 #流媒体引擎 #对称加密 #异步服务器 #fernet加密

bin+lib RuStream

自托管流媒体引擎,可以通过认证会话渲染媒体文件

14个版本 (5个稳定版)

1.3.0 2024年6月24日
1.3.0-a2024年3月12日
1.2.0 2024年2月29日
0.0.5 2024年2月19日

#110HTTP服务器

Download history 134/week @ 2024-06-22 69/week @ 2024-06-29 265/week @ 2024-07-06 124/week @ 2024-07-27

每月 2,030 次下载

MIT 许可证

200KB
4K SLoC

RuStream

made-with-rust

crates.io

build none-shall-pass

概述

RuStream 是一个自托管的流媒体引擎,可以通过认证会话渲染媒体文件。

安装

cargo add RuStream

使用方法

use rustream;

#[actix_rt::main]
async fn main() {
    match rustream::start().await {
        Ok(_) => {
            println!("RuStream session has ended")
        }
        Err(err) => {
            eprintln!("Error starting RuStream: {}", err)
        }
    }
}
下载针对特定操作系统的可执行文件
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"

环境变量

必需

  • authorization:键值对字典,其中键为 username,值为 password
  • media_source:要流式传输的文件的源路径。

    _(下划线)和 .(点)开头或结尾的文件将被忽略

可选

  • debug:启用调试级别日志的布尔标志。默认为 false
  • utc_logging:将时区设置为UTC的布尔标志。默认为 true
  • media_host:托管服务器的IP地址。默认为 127.0.0.1 / localhost
  • media_port:托管应用程序的端口号。默认为 8000
  • session_duration:每个认证会话应持续的时间 (以秒为单位)。默认为 3600
  • file_formats:支持的文件格式向量。默认为 [mp4, mov, jpg, jpeg]
  • workers:为服务器启动的工作进程数量。默认为物理核心数。
  • max_connections:每个工作进程的并发连接数上限。默认为 3
  • max_payload_size:从UI上传的文件的最大大小。默认为 100 MB

    输入格式应为,10 MB3 GB - 输入不区分大小写

  • 网站:要添加到CORS配置的网站向量(支持正则表达式)。仅在通过CDN隧道传输时才需要
  • key_file:SSL证书的私钥文件路径。默认为 None
  • cert_file:SSL证书完整链文件路径。默认为 None
  • secure_session:布尔标志,用于保护cookie session_token。默认为 false

    如果将 secure_session 设置为 true,则cookie session_token 将仅通过HTTPS发送
    这意味着服务器只能通过 HTTPSlocalhost 来托管

有关环境变量和 dotenv 用法的更多信息,请查看 GitHub Wiki

容器

https://crates.io/crates/RuStream

Cargo Docs - 官方操作手册

https://docs.rs/RuStream/latest/rustream/

生成器

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

代码检查

需求

rustup component add clippy

使用方法

cargo clippy --no-deps --fix

GitHub Wiki - 项目洞察

https://github.com/thevickypedia/RuStream/wiki

© Vignesh Rao

许可协议:MIT License

依赖项

~22–36MB
~671K SLoC