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 在 网络编程
每月下载量 434
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