All Projects → blabaere → Scaproust

blabaere / Scaproust

Licence: other
Implementation of the nanomsg "Scalability Protocols" in rust.

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Scaproust

Libzmq
ZeroMQ core engine in C++, implements ZMTP/3.1
Stars: ✭ 7,418 (+3953.55%)
Mutual labels:  messaging, network, networking
Solarnetwork
Elegant network abstraction layer in Swift.
Stars: ✭ 99 (-45.9%)
Mutual labels:  network, networking
Netfil
A kernel network manager with monitoring and limiting capabilities for macOS. #nsacyber
Stars: ✭ 97 (-46.99%)
Mutual labels:  network, networking
Zenoh
zenoh unifies data in motion, data in-use, data at rest and computations. It carefully blends traditional pub/sub with geo-distributed storages, queries and computations, while retaining a level of time and space efficiency that is well beyond any of the mainstream stacks.
Stars: ✭ 182 (-0.55%)
Mutual labels:  messaging, networking
Pynms
A vendor-agnostic NMS for carrier-grade network simulation and automation
Stars: ✭ 73 (-60.11%)
Mutual labels:  network, networking
Stnettaskqueue
STNetTaskQueue is a networking queue library for iOS and OS X. It's abstract and can be implemented in different protocols.
Stars: ✭ 90 (-50.82%)
Mutual labels:  network, networking
Ecs
ECS for Unity with full game state automatic rollbacks
Stars: ✭ 151 (-17.49%)
Mutual labels:  network, networking
Pnet
High level Java network library
Stars: ✭ 49 (-73.22%)
Mutual labels:  network, networking
Ccna60d
60天通过思科认证的网络工程师考试
Stars: ✭ 155 (-15.3%)
Mutual labels:  network, networking
Litenetlib
Lite reliable UDP library for Mono and .NET
Stars: ✭ 2,179 (+1090.71%)
Mutual labels:  network, networking
Iptools
PHP Library for manipulating network addresses (IPv4 and IPv6)
Stars: ✭ 163 (-10.93%)
Mutual labels:  network, networking
Avenue
Wrapper around URLSession and URLSessionTask to enable seamless integration with Operation / OperationQueue.
Stars: ✭ 58 (-68.31%)
Mutual labels:  network, networking
Macfinder
An iOS Library that helps you find the MAC Address of a specific IP
Stars: ✭ 57 (-68.85%)
Mutual labels:  network, networking
Gns3 Gui
GNS3 Graphical Network Simulator
Stars: ✭ 1,307 (+614.21%)
Mutual labels:  network, networking
React Native Netinfo
React Native Network Info API for Android & iOS
Stars: ✭ 1,049 (+473.22%)
Mutual labels:  network, networking
Ruffles
Lightweight and fully managed reliable UDP library.
Stars: ✭ 131 (-28.42%)
Mutual labels:  network, networking
Medium
Independent telecommunication environment
Stars: ✭ 171 (-6.56%)
Mutual labels:  network, networking
Ineter
Fast Java library for working with IP addresses, ranges, and subnets
Stars: ✭ 39 (-78.69%)
Mutual labels:  network, networking
Dknetworking
基于 AFNetworking + YYCache 的二次封装,支持缓存策略的网络请求框架
Stars: ✭ 41 (-77.6%)
Mutual labels:  network, networking
Crossbar
Crossbar.io - WAMP application router
Stars: ✭ 1,957 (+969.4%)
Mutual labels:  messaging, networking

Scaproust - Scalability Protocols in Rust

Linux build Windows build Coverage Status crates.io

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

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, add this to your Cargo.toml:

[dependencies]
scaproust = "0.3.1"

Next, add this to your crate:

extern crate scaproust;

Progress

  • [ ] 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

License

Licensed under either of

Contribution

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].