#io #reconnect #retry #tcp-stream #tokio #stubborn #stubborn-tcp-stream

sdre-stubborn-io

来自 https://github.com/craftytrickster/stubborn-io. io traits/structs 能够自动从潜在的网络中断中恢复。

11 个版本

0.5.8 2024年7月28日
0.5.7 2024年6月30日
0.5.5 2024年5月13日
0.5.4 2024年3月18日
0.4.4 2023年11月23日

835网络编程

Download history 111/week @ 2024-04-14 38/week @ 2024-04-21 57/week @ 2024-04-28 4/week @ 2024-05-05 236/week @ 2024-05-12 81/week @ 2024-05-19 193/week @ 2024-05-26 64/week @ 2024-06-02 81/week @ 2024-06-09 41/week @ 2024-06-16 33/week @ 2024-06-23 268/week @ 2024-06-30 25/week @ 2024-07-07 37/week @ 2024-07-14 68/week @ 2024-07-21 238/week @ 2024-07-28

每月下载量 434

MIT 许可证

37KB
662 代码行

sdre-stubborn-io

此 crate 提供了 io traits/structs,能够在潜在的网络中断中自动恢复。

要在您的项目中使用,请将以下内容添加到您的 Cargo.toml 中

stubborn-io = { git = "https://github.com/sdr-enthusiasts/sdre-stubborn-io.git" }

感谢和目的

此项目是从 stubborn-io 分叉并修改以添加命名连接的能力。感谢 craftytrickster 为原始项目所做的贡献。

文档

API 文档、示例和动机可以在这里找到 - (Rust 文档)https://docs.rs/sdre-stubborn-io .

在此分叉中对文档的唯一更改是向 StubbornTcpStream 结构体添加了 with_connection_name(name: &str) 作为方法。这允许命名连接,这对于日志记录非常有用。

如果您手动生成结构体,字段名称为 connection_name

使用示例

在此示例中,我们将看到对 tokio 的 TcpStream 的替代方案,区别在于它将在面对连接故障时自动尝试重新连接。

use sdre_stubborn_io::StubbornTcpStream;
use tokio::io::AsyncWriteExt;

let addr = "localhost:8080";

// we are connecting to the TcpStream using the default built in options.
// these can also be customized (for example, the amount of reconnect attempts,
// wait duration, etc) using the connect_with_options method.
let mut tcp_stream = StubbornTcpStream::connect(addr).await?;
// once we acquire the wrapped IO, in this case, a TcpStream, we can
// call all of the regular methods on it, as seen below
tcp_stream.write_all(b"hello world!").await?;

依赖关系

~3–11MB
~96K SLoC