Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
R

Remmy

> 编程语言
Open source

A simple but usable RPC framework

661 stars0 likes2 views
WebsiteGitHub

About

A simple but usable RPC framework

Remmy

Remmy is a simple but usable RPC library. Thanks to the structural simplicity of the code, it is suitable for use in education as well.

The communication layer can be implemented with any network library. Currently, we support ASIO and ZeroMQ as the network layer.

Current implementation uses C++14, so you need a new compiler to compile the code.

Tested on both Linux and Windows (Visual Studio 2019).

Compiling Test

test/test.cpp is a simple test demonstrating how to use Remmy. You can compile it with CMake, make, or Visual Studio.

Compiling With CMake

To compile with CMake, use the following command:

bash
user@myhost:~/projects/Remmy$ mkdir build
user@myhost:~/projects/Remmy$ cd build
user@myhost:~/projects/Remmy/build$ cmake .. -DCOMM_LAYER=ASIO
-- The C compiler identification is GNU 7.4.0
-- The CXX compiler identification is GNU 7.4.0
-- ...
-- Configuring done
-- Generating done
-- Build files have been written to: /home/user/projects/Remmy/build
user@myhost:~/projects/Remmy/build$ make
Scanning dependencies of target remmy_test
[ 50%] Building CXX object CMakeFiles/remmy_test.dir/test/test.cpp.o
[100%] Linking CXX executable remmy_test
[100%] Built target remmy_test

Note that we use -DCOMM_LAYER=ASIO option for CMake here. Remmy supports ASIO and ZMQ. Here we choose ASIO as the communication layer.

If you want to use ZeroMQ, you also need to install libzmq.

Compiling With make

There is a Makefile under Remmy/test, which can be used to compile the test. The communication can be switched by defining the USE_ASIO or USE_ZMQ at the top of the Makefile.

Building With VS 2017/2019

Remmy/remmy.sln is a VS 2019 solution file. You can use VS 2019 to open the solution and compile the test project. However, if you choose to use VS 2017, you need to retarget the solution before you can build it. To retarget the solution, open it and right-click on the Solution 'Remmy' in Solution Explorer, then choose Retarget Solution. In the pop-up windows, choose latest installed version for Windows SDK Version.

By default the solution uses ASIO as the communication layer. Switching to ZeroMQ requires defining USE_ZMQ and USE_ASIO macros in project properties. You will also need to specify the location to ZeroMQ library when using ZeroMQ.

Programming interface

…

Please refer to /test/test.cpp for an example on how to use Remmy.

Contributing

Everyone is welcome to contribute to this project, either to improve the code or documentation.

The whole library can be divided into these parts:

  • rpc_stub.h: contains RPCStub class, which is the entry point

  • protocol.h: declares the interface of protocols

  • serialize.h: implements the Serializer template class

  • comm.h: declares the communication layer, which can be implemented with any network libray, such as asio (as in comm_asio.h), ZeroMQ, etc.

  • other stuff: incluing logging, message structure, buffer, concurrent queue, unique id, ...

I will try to write as much document as possible in the files, but you are also welcome to contribute standalone document files.

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

C++

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言