4 个版本 (2 个稳定版)
使用旧的 Rust 2015
1.0.1 | 2022年2月3日 |
---|---|
1.0.0 | 2018年5月17日 |
0.3.0 | 2018年2月2日 |
0.2.0 | 2018年1月24日 |
#264 in #tiny
42KB
229 行
Servy
一个小巧的网页服务器
什么是 servy?
它是一个用 rust 编写的小巧的网页服务器。
它是一个单二进制文件,只有几个标志,类似于 python -m http.server
重要提示
默认情况下,servy 使用主机字符串 [::1]
在 ipv6 接口上启动。如果你想在 ipv4 接口上启动它,请使用 ipv4 主机字符串(见下文)
用法
servy
在端口 8000 上启动一个网页服务器
servy my/dir
使用 my/dir
作为根目录启动网页服务器
servy-p8080
在端口 8080 上启动 servy
servy-h127.0.0.1
使用主机字符串 127.0.0.1 启动 servy(在 ipv4 环回接口上启动)
servy-v
使用详细输出(每次建立连接时打印调试消息)
servy--help
打印帮助信息
内部内容
Servy 基于 hyper 构建。我喜欢它,因为它小巧简单,与大型框架相比,既不笨重。
基准测试(为什么不呢)
由于 servy 基于 tokio-minihttp,它相当快。在我的笔记本电脑上(Intel Core i7-4700MQ @ 2.4GHz,16GB RAM),当我运行 wrk -c 200 -d 10 -t 20 http://\[::1\]:8000/Cargo.toml
时,我得到
Running 10s test @ http://[::1]:8000/Cargo.toml
20 threads and 200 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 1.87ms 1.20ms 205.06ms 99.30%
Req/Sec 5.40k 449.11 11.21k 93.31%
1084315 requests in 10.10s, 261.62MB read
Requests/sec: 107361.59
Transfer/sec: 25.90MB
为了比较,在 Python 3.6.4 上运行相同的测试 python -m http.server
Running 10s test @ http://0.0.0.0:8000/Cargo.toml
20 threads and 200 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 10.13ms 72.55ms 1.68s 97.76%
Req/Sec 371.84 314.60 1.94k 76.29%
20260 requests in 10.08s, 10.55MB read
Socket errors: connect 0, read 0, write 0, timeout 17
Requests/sec: 2009.57
Transfer/sec: 1.05MB
贡献
如果你遇到任何问题,有任何改进建议,甚至是一个 pull request,都可以发给我。所有反馈都受欢迎并受到赞赏!
依赖关系
~9.5MB
~152K SLoC