The opensource version of baidu-rpc

# BUILD

baidu-rpc prefers static linking if possible, so that deps don't have to be installed on every
machine running the code.  

### Ubuntu/LinuxMint/WSL

**install common deps**

Including: git g++ make libssl-dev

**install gflags protobuf leveldb**

Including: libgflags-dev libprotobuf-dev libprotoc-dev protobuf-compiler libleveldb-dev

If you need to statically link leveldb, install libsnappy-dev as well.

**compile**

git clone this repo. cd into the repo and run: sh config_brpc.sh --headers=/usr/include
--libs=/usr/lib

**run example**

cd into example/echo_c++, make, run echo_server and echo_client

**run examples with cpu/heap profilers**

Install libgoogle-perftools-dev and re-run config_brpc.sh before compiling

**compile tests**

Install gmock and gtest, use the gtest embedded in gmock and don't install libgtest-dev

sudo apt-get install google-mock; cd /usr/src; sudo cmake .; sudo make; sudo mv lib*.a gtest/lib*.a
/usr/lib;

sudo mv gtest/include/gtest /usr/include/

Rerun config_brpc.sh and run make in test/

### Baidu-internal

**setup directories**

download deps: third-64/gflags@gflags_2-0-0-100_PD_BL  third-64/protobuf@protobuf_2-4-1-1100_PD_BL
third-64/leveldb@leveldb_1-0-0-0_PD_BL

**compile**

git clone this repo. cd into the repo and run: sh config_brpc.sh --headers=../../../third-64
--libs=../../../third-64 

**run examples with cpu/heap profilers**

download deps: third-64/tcmalloc@tcmalloc_1-7-0-200_PD_BL

Rerun config_brpc.sh

# Supported deps

GCC: 4.8-7.1

Clang: 3.5-4.0

glibc: 2.12-2.25

protobuf: 2.4-3.2  

gflags: 2.0-2.21

openssl: 0.97-1.1

tcmalloc: 1.7-2.5