4个版本 (稳定)
2.0.0 | 2022年2月17日 |
---|---|
1.0.1 | 2022年1月22日 |
0.1.0 | 2021年6月17日 |
#1161 in HTTP服务器
每月47次下载
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