Scaproust is an implementation of the nanomsg "Scalability Protocols" in the Rust programming language.
Quoting from nanomsg's site:
nanomsg is a socket library that provides several common communication patterns. It aims to make the networking layer fast, scalable, and easy to use. Implemented in C, it works on a wide range of operating systems with no further dependencies.
The communication patterns, also called "scalability protocols", are basic blocks for building distributed systems. By combining them you can create a vast array of distributed applications.
Experimental work ! For working stuff, please see nanomsg-rs.
- 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
First, add this to your Cargo.toml
:
[dependencies]
scaproust = "0.3.1"
Next, add this to your crate:
extern crate scaproust;
-
Protocols
- PAIR
- BUS
- REQREP
- REQ
- REQ resend
- REQ prefetch replies
- REP
- PUBSUB
- PUB
- SUB
- SUB subscription filter
- PIPELINE
- PUSH
- PULL
- SURVEY
- SURVEYOR
- SURVEYOR deadline
- RESPONDENT
-
Transports
- TCP
- IPC (*nix)
- IPC (Windows)
-
Socket options
- Linger
- Recv max size
- Send timeout
- Recv timeout
- Reconnect interval
- Reconnect interval max
- Send priority
- Recv priority
- IPV4 only
- Socket name
-
Protocol options
- REQ resend interval
- SURVEYOR deadline
- SUB subscribe
- SUB unsubscribe
-
Transport options
- TCP no delay
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT) at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you shall be dual licensed as above, without any additional terms or conditions.