GRPC Core  9.0.0
Moving gRPC core to C++

Originally written by ctiller, markdroth, and vjpai in October 2017

Revised by veblush in October 2019

Background and Goal

gRPC core was originally written in C89 for several reasons (possibility of kernel integration, ease of wrapping, compiler support, etc). Over time, this was changed to C99 as all relevant compilers in active use came to support C99 effectively.

gRPC started allowing to use C++ with a couple of exceptions not to have C++ library linked such as libstdc++.so. (For more detail, see the https://github.com/grpc/proposal/blob/master/L6-core-allow-cpp.md "proposal")

Finally gRPC became ready to use full C++11 with the standard library by the https://github.com[/grpc/proposal/blob/master/L59-core-allow-cppstdlib.md "proposal".

Throughout all of these transitions, the public header files are committed to remain in C89.

The goal now is to make the gRPC core implementation true idiomatic C++ compatible with Google's C++ style guide.

Constraints

Roadmap

Implications for C++ API and wrapped languages