9 个版本

0.1.9 2023 年 9 月 1 日
0.1.8 2023 年 1 月 20 日

#955文件系统

每月 39 次下载

MIT 许可证

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,也可以直接使用 DiskFilesystemIncludeDirFilesystem

注意

此 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