1 个不稳定版本
0.1.1 | 2020 年 4 月 10 日 |
---|
#173 in #actix
16KB
100 行
thttp
使用 Rust + Actix 编写的简约静态 Web 服务器/文件服务器
警告:不要在生产环境中使用,它仅适用于开发!
用法
thhtp
默认审计当前 (.
) 目录,在 0.0.0.0:5050
) 上提供服务。
USAGE:
thttp [OPTIONS] [dir]
FLAGS:
--help Prints help information
-V, --version Prints version information
OPTIONS:
-h, --host <host> Server Host [env: THTTP_HOST=] [default: 0.0.0.0]
-i, --index <index> FIle to use as index [env: THTTP_INDEX=] [default: index.html]
-p, --port <port> Server Port [env: THTTP_PORT=] [default: 5050]
ARGS:
<dir> Serving directory file [default: . ] [env: THTTP_DIR=]
可以指定环境变量或 .env
文件中的选项,用于在 dockerized 图像中使用
构建 & 运行
常规 cargo 组合
cargo build --release
cargo run
发布版本创建在 target/release/。
请注意,为了将参数传递给 cargo run
,您必须在 cargo run
和 thttp
参数之间注入双横线 (--
)。例如
cargo run -- -i readme.html -h 127.0.0.1 -p 7000 ./static
服务器使用 CTRL+C 停止
原理
它总是从需求开始:在这种情况下,为了将所有 dev 栈移植到 Rust。在开发 WASM 应用程序时,我发现自己总是使用 http
python 模块,使用 python3 -m "http.server" "8080"
,以便测试应用程序的输出。这个工具是一个穷人的替代品,但它完成了它的任务。此外,如果需要,我可以扩展它。
行为
thttp
可执行文件将首先通过 listenfd 寻找一个套接字,如果不存在,它将正常监听 .
。
这在生产环境中很有用,当使用 cargo-watch 时。只需将其与 systemfd 结合使用即可。
systemfd --no-pid -s http::0.0.0.0:5050 -- cargo watch -x run
另请参阅关于该问题的Actix文档。
待办(可能)
使用cargo-watch
监控项目文件是很好的,但当不需要时,thttp
缺少监控文件系统并在任何更改时自动重新加载的功能。这将是开发的一个很好的下一步。
许可证
MIT或Apache-2.0
依赖项
~30MB
~621K SLoC