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);
let executor = safinaexecutor::Executor::default(); 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
codesafina-executor
v0.3.1.safina-executor
v0.3.safina-executor
v0.2.EPROTOTYPE
errors on macOS.TcpStream
: peek
, read_vectored
, flush
, and write_vectored
.Cargo.toml
and bump version number../release.sh
License: Apache-2.0