Any suggestion to build a long-lived connection with dual-rpc capability

This page summarizes the projects mentioned and recommended in the original post on /r/rust

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • tarpc

    An RPC framework for Rust with a focus on ease of use.

    gRPC (https://github.com/google/tarpc) is the first thought here, but it is bounded to http2 and the client has to initiate the connection, I haven't used stream request before so not sure if it fits my situation.

  • jsonrpc

    Rust JSON-RPC implementation

    JSON-RPC (https://github.com/paritytech/jsonrpc) might be a solution, so I can create a TCP connection and it can then stream JSON request/response.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

  • rmp-rpc

    a msgpack-rpc rust library based on tokio

    RMP-RPC (https://github.com/little-dude/rmp-rpc) is based on message pack, it will reduce bandwidth cost but might be hard to trace compared to JSON-RPC which is purely text.

  • srpc

    Simple RPC system based on top of Canary

    You could check out SRPC or Canary, although a new version will be released shortly which has tons of breaking changes (you can use the new version via canary = { git = “https://github.com/znx3p0/canary” })

  • canary

    Distributed systems library for making communications through the network easier, while keeping minimalism and flexibility. (by znx3p0)

    You could check out SRPC or Canary, although a new version will be released shortly which has tons of breaking changes (you can use the new version via canary = { git = “https://github.com/znx3p0/canary” })

  • capnproto-rust

    Cap'n Proto for Rust

  • canary-examples

    For bidirectional RPC you should take a look at The distributed fibonacci example. You should note that the bidirectional RPC used in the distributed Fibonacci example assumes that both machines are not behind a NAT, if you need bidirectional RPC with only one discoverable machine, you can still use SRPC (but you’ll need to interact with Canary a bit more)

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts