7个不稳定版本

0.5.2 2024年4月7日
0.5.1 2024年1月2日
0.5.0 2022年1月3日
0.4.0 2021年12月3日
0.1.0 2021年6月7日

19#trillium 中排名

Download history 27/week @ 2024-04-16 29/week @ 2024-04-23 49/week @ 2024-04-30 29/week @ 2024-05-07 10/week @ 2024-05-14 44/week @ 2024-05-21 58/week @ 2024-05-28 59/week @ 2024-06-04 259/week @ 2024-06-11 114/week @ 2024-06-18 100/week @ 2024-06-25 63/week @ 2024-07-02 59/week @ 2024-07-09 147/week @ 2024-07-16 115/week @ 2024-07-23 105/week @ 2024-07-30

477 每月下载量
objstor 中使用

MIT/Apache

78KB
1K SLoC

欢迎使用Trillium!

📖 指南 📖

指南提供了架构概述和连接 trillium 库的地图。

📑 Rustdocs 📑

Rustdocs 是了解 trillium 的任何单个库及其特定接口的最佳方式。




法律

根据以下任一许可授权

由您选择。

除非您明确说明,否则根据 Apache-2.0 许可证定义,您有意提交的任何贡献都应如上双许可,不附加任何额外条款或条件。


lib.rs:

从内存中服务静态文件资源,这些资源包含在编译时二进制文件中。由于这包括编译时文件系统内容,因此它需要一个宏接口,static_compiled

如果根是目录,它将递归地服务相对于此处理器挂载路径的任何文件,如果配置了 with_index_file,则服务索引文件。

如果根是文件,它将在所有请求路径上服务该文件。

此库包含来自 include_dir 的代码,但针对此特定用例进行了几个调整。

# #[cfg(not(unix))] fn main() {}
# #[cfg(unix)] fn main() {
use trillium_static_compiled::static_compiled;

let handler = static_compiled!("./examples/files")
.with_index_file("index.html");

// given the following directory layout
//
// examples/files
// ├── index.html
// ├── subdir
// │  └── index.html
// └── subdir_with_no_index
//    └── plaintext.txt
//

use trillium_testing::prelude::*;

assert_ok!(
get("/").on(&handler),
"<html>\n  <head>\n    <script src=\"/js.js\"></script>\n  </head>\n  <body>\n    <h1>hello world</h1>\n  </body>\n</html>",
"content-type" => "text/html"
);
assert_not_handled!(get("/file_that_does_not_exist.txt").on(&handler));
assert_ok!(get("/index.html").on(&handler));
assert_ok!(
get("/subdir/index.html").on(&handler),
"subdir index.html 🎈",
"content-type" => "text/html; charset=utf-8"
);
assert_ok!(get("/subdir").on(&handler), "subdir index.html 🎈");
assert_not_handled!(get("/subdir_with_no_index").on(&handler));
assert_ok!(
get("/subdir_with_no_index/plaintext.txt").on(&handler),
"plaintext file",
"content-type" => "text/plain"
);


// with a different index file
let plaintext_index = static_compiled!("./examples/files")
.with_index_file("plaintext.txt");

assert_not_handled!(get("/").on(&plaintext_index));
assert_not_handled!(get("/subdir").on(&plaintext_index));
assert_ok!(
get("/subdir_with_no_index").on(&plaintext_index),
"plaintext file",
"content-type" => "text/plain"
);

// with no index file
let no_index = static_compiled!("./examples/files");

assert_not_handled!(get("/").on(&no_index));
assert_not_handled!(get("/subdir").on(&no_index));
assert_not_handled!(get("/subdir_with_no_index").on(&no_index));
# }

依赖关系

~7.5MB
~190K SLoC