Are you a developer or a data analyst? Share your thoughts about your coding tools in our short survey and get a chance to win prizes! Learn more →
Top 18 C++ RPC Projects
-
Project mention: I wasted weeks hand optimizing assembly because I benchmarked on random data | news.ycombinator.com | 2025-07-24
(((uint32_t)clz + 7) * 9) >> 6
3. Hand roll a jump table taking advantage of arm's fixed instruction width to calculate the jump target with a shift.
https://github.com/protocolbuffers/protobuf/commit/b039dfe26...
This results in one branch for 1 byte varints, plus one additional branch for any larger size, and the branch predictor does not have to track a varying trip count through a loop. This approach resulted in a 2.64% speedup for overall encoding (which includes a lot more than just varints) on mid sized arm cores.
I think it's very difficult to beat a single comparison and branch for the 1 byte case for actual encoding forwards or backwards, unless you know there's going to be long runs of one-byte values.
-
JetBrains
Tell us how you use coding tools. You may win a prize! Are you a developer or a data analyst? Share your thoughts about your coding tools in our short survey and get a chance to win prizes!
-
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: Faster and More Reliable Hugging Face Downloads Using aria2 and GNU Parallel | dev.to | 2025-03-22aria2: A lightweight multi-protocol & multi-source command-line download utility.
-
FlatBuffers, also developed by Google, is a highly optimized serialization library designed for scenarios where zero-copy deserialization is required.
-
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".
-
-
ice
All-in-one solution for creating networked applications with RPC, pub/sub, server deployment, and more. (by zeroc-ice)
-
-
InfluxDB
InfluxDB – Built for High-Performance Time Series Workloads. InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
-
-
-
Project mention: Show HN: CXXStateTree – A modern C++ library for hierarchical state machines | news.ycombinator.com | 2025-07-06
You'll see a fairly even split amongst S-tier, "possibly headed for standardization" level libraries. I'd say there's a skew for `#ifndef` in projects that are more "aspires to the standard library" and for `#pragma once` in projects that are more focused on like a very specific vertical.
`#pragma once` seems to be far preferred for internal code, there's an argument for being strictly conforming if you're putting out a library. I've converted stuff to `#ifndef` before sharing it, but I think heavy C++ people usually type `#pragma once` in the privacy of their own little repository.
- `spdlog`: `#pragma once` https://github.com/gabime/spdlog/blob/v1.x/include/spdlog/as...
- `absl`: `#ifndef` https://github.com/abseil/abseil-cpp/blob/master/absl/base/a...
- `zpp_bits`: `#ifndef` https://github.com/eyalz800/zpp_bits/blob/main/zpp_bits.h
- `stringzilla` `#ifndef` https://github.com/ashvardanian/StringZilla/blob/main/includ...
-
-
-
areg-sdk
Remote objects act local. C++ Async RPC for threads and processes with auto-discovery and zero-boilerplate messaging.
Long time I was not here and I am very sure that none missed me :) I was busy developing new features of areg skd and creating user interface tool for areg sdk. And I must say, that working almost alone for more these 2 project, I made a huge progress. And what is very important, I have fun.
-
-
dota2-rpc-client
Allows you to observe the status of your DotA 2 (Defense of the Ancients 2) match within the Discord, through the Rich Presence service. 🎮
-
XPLPC
Cross Platform Lite Procedure Call - Support Linux, macOS, Windows, iOS, Android, Web Assembly, Flutter, Kotlin, Python and More
-
-
-
Sevalla
Deploy and host your apps and databases, now with $50 credit! Sevalla is the PaaS you have been looking for! Advanced deployment pipelines, usage-based pricing, preview apps, templates, human support by developers, and much more!
C++ RPC discussion
C++ RPC related posts
-
Reverse Engineering Protobuf Definitions from Compiled Binaries
-
Write C++ as easy as Golang with coost
-
Build and Deploy a gRPC-Web App Using Rust Tonic and React
-
The Rise and Fall of Corba (2006)
-
How to arrange a bunch of variables into one array of bytes in memory?
-
Delimiting a Binary File/ Parsing a Binary File
-
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 ?
-
A note from our sponsor - JetBrains
surveys.jetbrains.com | 2 Sep 2025
Index
What are some of the best open-source RPC projects in C++? This list will help you:
# | Project | Stars |
---|---|---|
1 | Protobuf | 68,919 |
2 | aria2 | 38,282 |
3 | FlatBuffers | 24,677 |
4 | brpc | 17,280 |
5 | coost | 4,147 |
6 | ice | 2,130 |
7 | rpclib | 1,782 |
8 | libjson-rpc-cpp | 973 |
9 | erpc | 872 |
10 | zpp_bits | 872 |
11 | smf | 734 |
12 | shadesmar | 620 |
13 | areg-sdk | 301 |
14 | packio | 153 |
15 | dota2-rpc-client | 56 |
16 | XPLPC | 45 |
17 | Unpadded | 18 |
18 | eth | 3 |