This crate provides io traits/structs that automatically recover from potential disconnections/interruptions.
To use with your project, add the following to your Cargo.toml:
toml
stubborn-io = "0.1"
API Documentation, examples and motivations can be found here - https://docs.rs/stubborn-io .
Note: This crate requires at least version 1.39 of the Rust compiler.
In this example, we will see a drop in replacement for tokio's TcpStream, with the distinction that it will automatically attempt to reconnect in the face of connectivity failures.
```rust use stubborn_io::StubbornTcpStream; use tokio::io::AsyncWriteExt;
let addr = "localhost:8080";
async { // 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 connectwithoptions method. let tcpstream = StubbornTcpStream::connect(addr).await.unwrap(); // once we acquire the wrapped IO, in this case, a TcpStream, we can // call all of the regular methods on it, as seen below tcpstream.write_all(b"hello world!").await.unwrap(); }; ```