Awesome Open Source
Awesome Open Source

Scaproust - Scalability Protocols in Rust

Linux build Windows build Coverage Status

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.

API Documentation


  • 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:

scaproust = "0.3.1"

Next, add this to your crate:

extern crate scaproust;


  • [ ] Protocols

    • [x] PAIR
    • [x] BUS
    • [ ] REQREP
      • [x] REQ
      • [x] REQ resend
      • [ ] REQ prefetch replies
      • [x] REP
    • [x] PUBSUB
      • [x] PUB
      • [x] SUB
      • [x] SUB subscription filter
    • [x] PIPELINE
      • [x] PUSH
      • [x] PULL
    • [x] SURVEY
      • [x] SURVEYOR
      • [x] SURVEYOR deadline
      • [x] RESPONDENT
  • [x] Transports

    • [x] TCP
    • [x] IPC (*nix)
    • [x] IPC (Windows)
  • [ ] Socket options

    • [ ] Linger
    • [x] Recv max size
    • [x] Send timeout
    • [x] Recv timeout
    • [x] Reconnect interval
    • [ ] Reconnect interval max
    • [x] Send priority
    • [x] Recv priority
    • [ ] IPV4 only
    • [ ] Socket name
  • [x] Protocol options

    • [x] REQ resend interval
    • [x] SURVEYOR deadline
    • [x] SUB subscribe
    • [x] SUB unsubscribe
  • [x] Transport options

    • [x] TCP no delay


Licensed under either of


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.

Related Awesome Lists
Top Programming Languages
Top Projects

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Rust (59,531
Network (37,626
Messaging (5,756
Transport (5,376
Networking (5,371
Ipc (1,538
Messaging Library (43
Nanomsg (24