TL;DR Starting from gRPC 1.24, gRPC Core will start to have a dependency against the C++ standard library (e.g. libstdc++.so or libc++.so). As a result, all wrapped gRPC libraries based on gRPC Core (C++, C#, Node.js, Objective-C, PHP, Python, and Ruby) have new dependency against the C++ standard library, too.
To have better productivity in writing gRPC Core, gRPC Core will start using C++ standard library from gRPC 1.24. Previously, gRPC Core didn't have a dependency against the C++ standard library for better portability, but since all of our supported platforms now provide the C++ standard library, this change is considered safe. So we decide to add this dependency to gRPC Core. As a result, all wrapped gRPC libraries based on this will have C++ stdlib dependency, too. For gRPC Users: We expect that most users will not see any problem with this change, because most platforms are bundled with the C++ standard library. To keep it gRPC portable as much as possible, gRPC Core will be restricted to use C++ standard library features available in GLIBCXX_3.4.9, which was released in 2007. Change for individual platforms: - Linux: C++ library will be dynamically linked. If the system doesn’t have C++ standard library (e.g. Alpine Linux), you may need to install it. - Windows: C++ library will be statically linked so it should be fine. - MacOS, iOS, and Android: C++ library will be dynamically linked but these platforms have pre-installed C++ library so it should be fine. Change for individual languages: - C++, Node.js, Objective-C, and Python: These gRPC libraries already have been linked to C++ standard library before this change, so users may not see any change. - C#, PHP, and Ruby: These gRPC libraries will start to be linked to C++ standard library with this change, so users may see changes. For gRPC Contributors: We will use only limited features of C++ standard library until gRPC 1.24 has successfully deployed: std::map and pure virtual functions. This will enable us to roll this change back if there is a serious problem on a particular language or platform. Once gRPC 1.24 is proven safe to use, we will then allow use of the full C++11 standard library. * Related proposal: L59 - Allow C++ standard library in gRPC Core Library ( PR <https://github.com/grpc/proposal/pull/156>, file <https://github.com/grpc/proposal/blob/553f4afc5bf7ee3fc5497fe2ea8ab13340028fdf/L59-core-allow-cppstdlib.md> ) -- You received this message because you are subscribed to the Google Groups "grpc.io" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/grpc-io/6a54cb9f-a21c-4dea-9fd7-f9f7367e8c82%40googlegroups.com.
