Nuvo
Nuvo is a lightweight, secure communication library for Rust, designed for simple client-server messaging. It provides both asynchronous (using Tokio) and synchronous (blocking) APIs for easy integration into various project types.
Features
- Simple API: Easy-to-use
Sender and Receiver builders.
- Secure: Basic password authentication and session tokens.
- Async & Sync: Full support for
async/await and traditional blocking calls.
- Lightweight Protocol: Custom binary protocol optimized for efficiency.
Installation
Add this to your Cargo.toml:
[dependencies]
nuvo = "0.1.0"
Quick Start
Asynchronous Example
use nuvo::{receiver, sender};
#[tokio::main]
async fn main() -> std::io::Result<()> {
let rx = receiver(8080).password("secret").listen().await?;
let mut tx = sender("127.0.0.1", 8080, "secret").connect().await?;
let mut rx_session = rx.accept().await?;
tx.send(b"Hello from sender!").await?;
let msg = rx_session.recv().await?;
println!("Received: {:?}", String::from_utf8_lossy(&msg));
Ok(())
}
Blocking Example
use nuvo::{receiver, sender};
fn main() -> std::io::Result<()> {
let rx = receiver(8081).password("secret").listen_blocking()?;
std::thread::spawn(move || {
let mut tx = sender("127.0.0.1", 8081, "secret").connect_blocking().unwrap();
tx.send_blocking(b"Hello!").unwrap();
});
let mut rx_session = rx.accept_blocking()?;
let msg = rx_session.recv_blocking()?;
println!("Received: {:?}", String::from_utf8_lossy(&msg));
Ok(())
}
License
LGPL-3.0-only