Dependencies ============ grpc has few external dependencies. If needed, they are present in the third_party directory, if you have cloned the github repository recursively. If you didn't clone recursively, you can still get them later by running the following command: $ git submodule update --init Note that the Makefile makes it much easier for you to compile from sources if you were to clone recursively our git repository. grpc core currently depends on zlib and OpenSSL 1.0.2beta3. grpc++'s tests depends on protobuf 3.0.0, gtests and gflags. OpenSSL ------- Secure HTTP2 requires to have the TLS extension ALPN (see rfc 7301 and http://http2.github.io/http2-spec/ section 3.3). Our HTTP2 implementation relies on OpenSSL's implementation. OpenSSL 1.0.2beta3 is the first version of OpenSSL that has ALPN support, and this explains our dependency on it. Note that the Makefile supports compiling only the unsecure elements of grpc, and if you do not have OpenSSL and do not want it, you can still proceed with installing only the elements you require. However, it is recommended to encrypt your network traffic, therefore we urge you to not use the unsecure version of grpc if possible. Compiling ========= If you have all the dependencies in the third_party subfolder, you should simply be able to go ahead and run "make" to compile grpc. The other targets that you might find interesting are "buildtests" and "test". If you didn't clone from git, and thus are unable to get the required dependencies, you can manually download and unpack the necessary packages, and let the Makefile build them itself. You may also install the dependencies yourself, from the sources, or from your distribution's package manager. The only development package needed for grpc is zlib. The development packages needed for grpc++'s tests are gtests, and gflags. To the best of our knowledge, no distribution has an OpenSSL package that supports ALPN yet, so you would still have to depend on installing from source for that particular dependency. The recommended version of OpenSSL that provides ALPN support is available at this URL: https://www.openssl.org/source/openssl-1.0.2-beta3.tar.gz If you want to let the Makefile build them automatically for you, please extract them in the third_party folder. You will need to rename the extracted folder the following way: openssl-1.0.2-beta3 --> openssl Testing ======= At the moment, C++ tests aren't fully available yet. If you want to run tests on the C core of grpc, you can do the following: $ make buildtests_c $ make test_c Installing ========== Once everything is compiled, you should be able to install grpc and grpc++ libraries and headers: $ sudo make install