一个基于Socket长连接双向RPC框架,嵌入了登录认证功能,和线程间通信功能。
至于为什么叫FeverRPC,是因为写的时候发烧了。
这个RPC可以让你写出类似于以下的代码
// Client.cpp
#include "feverrpc.hpp"
int main(){
FeverRPC::Client rpc("127.0.0.1");
int ans = rpc.call<int>("add", 1, 2, 3);
}
// Server
#include "feverrpc.hpp"
int add(int a, int b, int c){
return a + b + c;
}
int main(){
FeverRPC::Server rpc;
rpc.bind("add", add);
rpc.c2s();
}
- 使用TCP/Socket长连接
- 双向RPC
- 支持任意长度、类型参数绑定
- 基于Msgpack,可自定义序列化类型
- Socket支持任意大小传输功能 (int)
- 支持多线程,有多线程调度模块
- 服务端线程可相互通信
- 嵌入登录功能
- void返回值
- 绑定非静态成员函数
你需要解决以下依赖
- msgpack
- C++17
std::apply
- Linux 未在其他平台上进行过测试
你可以运行make all
编译bin/server
,bin/client
两个文件,接着运行他们,就能看到服务启动了
请参阅相关文档 dev-docs
- 感谢 button-rpc 给予了我最关键的知识点
- Blogs you can find on Google Search