15个版本 (4个重大变更)
0.5.6 | 2021年11月26日 |
---|---|
0.5.5 | 2021年11月26日 |
0.4.3 | 2021年11月26日 |
0.3.1 | 2021年11月23日 |
0.1.0 | 2021年11月21日 |
#33 在 #tcp-stream
每月47次下载
52KB
1.5K SLoC
Tokio Stream Multiplexor
TL;DR:在单个流中复用多个流。具有类似TcpListener / TcpSocket的接口,并使用与TCP类似的u16端口。
[dependencies]
foo = "1.2.3"
为什么?
因为有时你想要将尽可能多的东西压到一个TCP流中,而不是通过多个端口与应用程序连接。
但是为什么?
因为我需要它。受到async-smux的启发,为Tokio编写。
关于性能呢?
这个协议中的协议会损害性能吗?
当然,但看看这些基准测试。
throughput/tcp time: [28.968 ms 30.460 ms 31.744 ms]
thrpt: [7.8755 GiB/s 8.2076 GiB/s 8.6303 GiB/s]
throughput/mux time: [122.24 ms 135.96 ms 158.80 ms]
thrpt: [1.5743 GiB/s 1.8388 GiB/s 2.0451 GiB/s]
大约比TCP慢4.5倍,但仍然能够以1.8 GiB/s的速度传输数据...在我看来这似乎还不错。(数字也可能通过调整配置参数得到改进。)
依赖关系
~5–18MB
~178K SLoC