Utilizzare ZeroMQ con Rust
ZeroMQ è una libreria per lo scambio di messaggi tra un client ed un server di tipo brokerless!
Sostanzialmente vuol dire che nella libreria è già incluso tutto quello che ci serve, senza altre configurazioni.
In questo articolo vediamo un esempio di utilizzo in Rust.
Per usarlo possiamo aggiungere la dipendenza al Cargo.toml:
[dependencies]
zmq = "0.10.0"
Questo un esempio di server:
use std::thread;
use std::time::Duration;
fn main() {
let context = zmq::Context::new();
let responder = context.socket(zmq::REP).unwrap();
println!("SERVER AVVIATO!");
assert!(responder.bind("tcp://*:5555").is_ok());
let mut msg = zmq::Message::new();
loop {
responder.recv(&mut msg, 0).unwrap();
println!("Ricezione messaggio {}", msg.as_str().unwrap());
thread::sleep(Duration::from_millis(1000));
responder.send("CIAO DAL SERVER!", 0).unwrap();
}
}
Per testarlo possiamo usare diversi client ovviamente.
Qui sotto vi lascio un esempio in Python:
import zmq
print("CONNESSIONE Al SERVER")
context = zmq.Context()
socket = context.socket(zmq.REQ)
socket.connect("tcp://localhost:5555")
for request in range(5):
print(f"Invio testo {request}")
socket.send(b"CIAO DAL CLIENT!")
testo = socket.recv()
print(f"Ricezione risposta {request} [ {testo} ]")
Enjoy!
rust cargo zeromq
Commentami!