9 个版本
0.1.9 | 2023 年 9 月 1 日 |
---|---|
0.1.8 | 2023 年 1 月 20 日 |
#955 在 文件系统
每月 39 次下载
105KB
2.5K SLoC
http_dir
类似于 tower_http::service::ServeDir
,但允许用户提供自己的 Filesystem
实现
这个 crate 是从 tower_http::service::ServeDir
分支出来的,感谢 tower_http
crate
注意
此 crate 需要 nightly 特性
type_alias_impl_trait
许可证
本项目采用 MIT 许可证。
lib.rs
:
HTTP 文件服务器,用于访问 Filesystem
上的文件。用户可以实现自己的 Filesystem
,也可以直接使用 DiskFilesystem
或 IncludeDirFilesystem
注意
此 crate 需要 TAIT 功能,它很快将变为稳定功能,但现在它是 nightly 功能
示例
use http_dir::ServeDir;
use http_dir::fs::disk::DiskFilesystem;
// This will serve files in the "assets" directory and
// its subdirectories
let service = ServeDir::new(DiskFilesystem::from("assets"));
// Run our service using `hyper`
let addr = std::net::SocketAddr::from(([127, 0, 0, 1], 3000));
hyper::Server::bind(&addr)
.serve(tower::make::Shared::new(service))
.await
.expect("server error");
依赖
~4.5–6.5MB
~114K SLoC