This is a safe Rust library for network communication.
It is part of safina
, a safe async runtime.
forbid(unsafe_code)
std
safina-executor
or any async executor```rust let bindaddr = std::net::SocketAddr::from(([127, 0, 0, 1], 0)); let mut listener = safinanet::TcpListener::bind(&bindaddr) .unwrap(); let addr = listener.inner().localaddr().unwrap(); println!("{}", &addr);
std::thread::spawn(move || { let mut tcpstream = std::net::TcpStream::connect(addr) .unwrap(); let mut buf = String::new(); use std::io::Read; tcpstream.readtostring(&mut buf).unwrap(); println!("read {:?}", buf); }); // let executor = safinaexecutor::Executor::new(1); // executor.spawn(async move { // let mut tcpstream = // safinanet::TcpStream::connect(addr) // .await // .unwrap(); // let mut buf = String::new(); // tcpstream.readtostring(&mut buf).await.unwrap(); // println!("read {:?}", buf); // });
let (mut tcpstream, _addr) = listener.accept().await.unwrap(); tcpstream.write_all(b"response").await.unwrap(); println!("wrote response"); ```
For complete examples, see the integration tests in
tests/
.
async-net
unsafe
async-io
unsafe
tokio
unsafe
tcp-stream
unsafe
codeTcpListener
and TcpStream
with tests & docsCargo.toml
and bump version number../release.sh
License: Apache-2.0