Open-source C++ projects categorized as RPC

RPC stands for Remote Procedure Call In the context of programming. In distributed computing, a remote procedure call is when a computer program causes a procedure to execute in a different address space, which is coded as if it were a normal procedure call, without the programmer explicitly coding the details for the remote interaction.

Top 16 C++ RPC Projects

  • Protobuf

    Protocol Buffers - Google's data interchange format

    Project mention: ERROR: Could not build wheels for onnx, which is required to install pyproject.toml-based projects | /r/learnpython | 2023-06-02

    "WARNING: The candidate selected for download or install is a yanked version: 'protobuf' candidate (version 4.21.0 at https://files.pythonhosted.org/packages/27/82/986065ef305c0989c99d8ef3f29e58a03fac6e64bb2c36ffe64500cc6955/protobuf-4.21.0-py3-none-any.whl#sha256=4e78116673ba04e01e563f6a9cca2c72db0be8a3e1629094816357e81cc39d36 (from https://pypi.org/simple/protobuf/))Reason for being yanked: Required python version not configured correctly (https://github.com/protocolbuffers/protobuf/issues/10076) ERROR: Command errored out with exit status 1: command: 'C:\Users\Ronan\anaconda3\envs\simswap\python.exe' 'C:\Users\Ronan\anaconda3\envs\simswap\lib\site-packages\pip\_vendor\pep517\in_process\_in_process.py' build_wheel 'C:\Users\Ronan\AppData\Local\Temp\tmpw07qbvdv' cwd: C:\Users\Ronan\AppData\Local\Temp\pip-install-5thcmr2x\onnx_8a3edc28ae1c47d3acd6186fffcf7bdb Complete output (70 lines): running bdist_wheel running build running build_py running create_version running cmake_build Using cmake args: ['C:\\Program Files\\CMake\\bin\\cmake.exe', '-DPYTHON_INCLUDE_DIR=C:\\Users\\Ronan\\anaconda3\\envs\\simswap\\include', '-DPYTHON_EXECUTABLE=C:\\Users\\Ronan\\anaconda3\\envs\\simswap\\python.exe', '-DBUILD_ONNX_PYTHON=ON', '-DCMAKE_EXPORT_COMPILE_COMMANDS=ON', '-DONNX_NAMESPACE=onnx', '-DPY_EXT_SUFFIX=.cp36-win_amd64.pyd', '-DCMAKE_BUILD_TYPE=Release', '-DPY_VERSION=3.6', '-A', 'x64', '-T', 'host=x64', '-DONNX_ML=1', 'C:\\Users\\Ronan\\AppData\\Local\\Temp\\pip-install-5thcmr2x\\onnx_8a3edc28ae1c47d3acd6186fffcf7bdb'] -- Building for: NMake Makefiles CMake Error at CMakeLists.txt:17 (project): Generator NMake Makefiles does not support platform specification, but platform x64 was specified.

  • aria2

    aria2 is a lightweight multi-protocol & multi-source, cross platform download utility operated in command-line. It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink.

    Project mention: Zelda TOTK discussion megathread | /r/SwitchPirates | 2023-04-25

    https://github.com/aria2/aria2/releases/tag/release-1.36.0 and run "aria2c.exe -x 16 -s 16 https://pixeldrain.com/api/file/8ppyvrWb?download" in cmd or wait for mirrors

  • InfluxDB

    Access the most powerful time series database as a service. Ingest, store, & analyze all types of time series data in a fully-managed, purpose-built database. Keep data forever with low-cost storage and superior data compression.

  • FlatBuffers

    FlatBuffers: Memory Efficient Serialization Library

    Project mention: Anyone has experience with reverse engineering flatbuffers? | /r/REGames | 2023-05-25

    Much more in the discussion of this particular issue onGitHub: flatbuffers:Reverse engineering #4258

  • brpc

    brpc is an Industrial-grade RPC framework using C++ Language, which is often used in high performance system such as Search, Storage, Machine learning, Advertisement, Recommendation etc. "brpc" means "better RPC".

    Project mention: Setting configuration of a Bazel dependency | /r/bazel | 2023-05-06

    I'm trying to depend on this library which has a Bazel build: https://github.com/apache/brpc

  • coost

    A tiny boost library in C++11.

    Project mention: coost - A fantastic C++ library | /r/cpp | 2022-10-06

    You may also see it on github.

  • ice

    Comprehensive RPC framework with support for C++, C#, Java, JavaScript, Python and more.

    Project mention: Strive for simplicity: sanctions, transactions and a big refactoring | dev.to | 2022-09-22

    Are you saying: “This solution does not look particularly great”? Well, there's more. The system was not just your average, boring product, it was a modern and fancy distributed system, so it used a framework called Zeroc Ice. This is an RPC framework that also provides deployment configuration, service discovery, SSL encryption and more. By itself it’s rather interesting, but in our case it was used almost everywhere. Majority of the functions in the system were exposed as RPCs, which made them effectively globally visible. And they could call other RPCs and they called even more. And every call produced some side effects that were quite often used in condition expressions of “Algorithms” defined with DSL. These conditions were of course quite heavily nested. As a result, even though we could see in the monitoring interface which steps were already passed, it was almost impossible to tell what would happen next.

  • rpclib

    rpclib is a modern C++ msgpack-RPC server and client library

  • Sonar

    Write Clean C++ Code. Always.. Sonar helps you commit clean C++ code every time. With over 550 unique rules to find C++ bugs, code smells & vulnerabilities, Sonar finds the issues while you focus on the work.

  • libjson-rpc-cpp

    C++ framework for json-rpc (json remote procedure call)

  • smf

    Fastest RPC in the west

  • erpc

    Embedded RPC

    Project mention: Protocol on top of USB HID | /r/embedded | 2022-11-09

    I would love to see the kind of HID solution that you describe paired with a proper strongly typed message format like eRPC. In previous searches for similar messaging, I have also found things like EmbeddedProto and nanopd. I never got to dive into the details on any of these, though.

  • zpp_bits

    A lightweight C++20 serialization and RPC library

    Project mention: How to arrange a bunch of variables into one array of bytes in memory? | /r/cpp | 2023-05-10

    I would either look at https://github.com/eyalz800/zpp_bits or https://github.com/stephenberry/glaze. FYI, glaze both supports json and binary.

  • shadesmar

    Fast C++ IPC using shared memory

  • areg-sdk

    AREG is an interface-centric and cross-platform ORPC (Object RPC) framework that allows devices and software nodes to interact as distributed servers and clients.

    Project mention: Makefile versus CMake build system | /r/embedded | 2023-03-08

    My closer introduction with these 2 tools started from OSS areg sdk project. Because of some experienced friend recommendation, i started with make. The main reason was that it is more spread in embedded. No other weighty argument they had. After having make, i decided to integrate cmake. Suddenly i figured out that cmake for me is more understandable and powerful. It already has many features that makes things easier. The biggest advantage for me is that in comparison to make / Makefile, lot of IDE support build with cmake. The cross-platform / cross-compile for areg-sdk is important feature, and this is easier to achieve with cmake. For example, I can compile with make under Linux with gcc/clang, but under windows can compile in cygwin environment and not with MSVC, which is not the issue in case of cmake.

  • packio

    An asynchronous msgpack-RPC and JSON-RPC library built on top of Boost.Asio.

    Project mention: Asio is great if you’re building a library/application with non-Asio API. But building Asio APIs using async compositions is too messy. Anybody else agree ? | /r/cpp | 2022-12-23

    That's not even helpful, as you usually read/write using composed ops and they will interleave anyway. To have an io object that's capable of correctly pipelining multiple concurrent write- or read-operations, you need a custom strand like this: https://github.com/qchateau/packio/blob/master/include/packio/internal/manual_strand.h

  • Unpadded

    RPC library for embedded systems without code generation

    Project mention: Unpadded: A header-only RPC library for microcontrollers | /r/cpp | 2023-05-03
  • eth

    C++ ethereum libraries

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2023-06-02.

C++ RPC related posts


What are some of the best open-source RPC projects in C++? This list will help you:

Project Stars
1 Protobuf 59,567
2 aria2 30,484
3 FlatBuffers 20,566
4 brpc 14,958
5 coost 3,376
6 ice 1,906
7 rpclib 1,494
8 libjson-rpc-cpp 853
9 smf 683
10 erpc 546
11 zpp_bits 486
12 shadesmar 450
13 areg-sdk 97
14 packio 84
15 Unpadded 6
16 eth 2
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives