Crate scaproust

Source
Expand description

Scaproust is an implementation of the nanomsg “Scalability Protocols” in the Rust programming language.

§Goals

  • Support for all of nanomsg’s protocols.
  • Support for TCP and IPC transports.
  • Idiomatic rust API first, mimic the original C API second.
  • Extensibility: allow user code to define additional protocols and transports

§Usage

First, build a Session with the transports you need (this will start the thread performing the actual I/O operations).
Then, use the session to create some Socket, specifying the communication pattern.
If you want, you can now set some options, like the timeouts.
To plug the sockets, use the connect and bind socket methods.
Finally, use the socket methods send and recv to exchange messages between sockets.
When in doubts, please refer to the nanomsg manual.

§Example

use scaproust::*;
use std::time::Duration;
 
let mut session = SessionBuilder::new().with("tcp", Tcp).build().unwrap();
let mut pull = session.create_socket::<Pull>().unwrap();
let mut push = session.create_socket::<Push>().unwrap();
let timeout = Duration::from_millis(250);
 
pull.set_recv_timeout(Some(timeout)).unwrap();
pull.bind("tcp://127.0.0.1:5454").unwrap();
 
push.set_send_timeout(Some(timeout)).unwrap();
push.connect("tcp://127.0.0.1:5454").unwrap();
 
push.send(vec![65, 66, 67]).unwrap();
let received = pull.recv().unwrap();

Re-exports§

pub use core::Message;
pub use core::PollReq;
pub use core::PollRes;
pub use transport::tcp::Tcp;
pub use transport::ipc::Ipc;
pub use proto::pair::Pair;
pub use proto::publ::Pub;
pub use proto::sub::Sub;
pub use proto::req::Req;
pub use proto::rep::Rep;
pub use proto::push::Push;
pub use proto::pull::Pull;
pub use proto::surv::Surveyor;
pub use proto::resp::Respondent;
pub use proto::bus::Bus;

Modules§

core
proto
Scalability protocols provided by scaproust
transport

Structs§

Endpoint
Endpoint of a socket.
Probe
Probe is what applications use to poll sockets.
Session
Creates sockets and devices.
SessionBuilder
Creates the session and starts the I/O thread.
Socket
Socket is what applications use to exchange messages.

Enums§

ConfigOption

Traits§

Device
A device to forward messages between sockets, working like a message broker. It can be used to build complex network topologies.