Motivation
目前传统的C++ RPC框架一般都是基于protobuf或者是thrift,都需要用专门的代码生成器来生成代码,这种方式存在以下这些问题:
- 使用麻烦。使用时需要先写一个DSL描述文件,然后用代码生成器来生成代码,如果model类很多的时候,工作就很繁琐,工作量也比较大。
- 维护性差。当某些model类需要修改时,必须重新定义和编译,做一些繁琐而重复的工作。
- 学习成本高。使用它们之前先要学习代码生成器如何使用,还要学习复杂的DSL语法定义规则,而这些语法规则并不是通用的,一段时间不用之后又要重新去学习。
- 不能快速响应增加新API的需求。当多语言的客户端较多时,服务端增加新接口时,客户端升级比较繁琐。
面对这些问题,rest_rpc就应运而生了,她就是来解决这些问题的,rest_rpc的主要特性:
- 简单、好用、灵活
- 让用户只关注于业务,业务之外的事由框架负责
- 不需要学习和编写DSL
- 不需要使用代码生成器
- 能快速响应API升级的需求
- 彻底消除了繁琐重复的model定义工作
- modern(C++14)
- 跨平台
Getting started
从GitHub上下载rest_rpc
-
git submodule update –init
- 下载boost库,需要boost1.55以上版本
编译
需要支持C++14的编译器,gcc4.9以上,vs2015以上
linux下直接使用cmake编译CMakelists.