mirror of https://github.com/grpc/grpc.git
The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)
https://grpc.io/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
2.7 KiB
83 lines
2.7 KiB
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
|
|
|