#file-content #warp #range #filter #file-serving #mp3

warp-range

用于服务类似mp3音频或mp4视频的带有范围文件内容的Warp过滤器

4个版本 (稳定)

2.0.0 2022年2月17日
1.0.1 2022年1月22日
0.1.0 2021年6月17日

#1161 in HTTP服务器

每月47次下载

MIT许可

12KB
98

warp-range

这是一个Rust库,用于创建一个用于服务类似mp3音频或mp4视频的带有范围文件内容的Warp过滤器。这个Warp过滤器可以用于基于warp的HTTP服务器中。

内容像流一样提供服务。如果你通过这个过滤器观看电影,即使文件没有完全下载,你也可以在电影中搜索。


lib.rs:

warp-range

这是一个Rust库,用于创建一个用于服务类似mp3音频或mp4视频的带有范围文件内容的Warp过滤器。这个Warp过滤器可以用于基于warp的HTTP服务器中。

内容像流一样提供服务。如果你通过这个过滤器观看电影,即使文件没有完全下载,你也可以在电影中搜索。

以下是一个简单的例子,说明如何向现有的warp服务器添加范围

use hyper::{Body, Response};
use warp::{Filter, Reply, fs::{File, dir}};
use warp_range::{filter_range, get_range};

#[tokio::main]
async fn main() {
    let test_video = "/home/uwe/Videos/Drive.mkv";
    
    let port = 9860;
    println!("Running test server on https://127.0.0.1:{}", port);

    let route_get_range = 
        warp::path("getvideo")
        .and(warp::path::end())
        .and(filter_range())
        .and_then(move |range_header| get_range(range_header, test_video, "video/mp4"))

    let route_static = dir(".");
    
    let routes = route_get_range
        .or(route_static);

    warp::serve(routes)
        .run(([127, 0, 0, 1], port))
        .await;    
}

依赖关系

~9–19MB
~257K SLoC