1*cc02d7e2SAndroid Build Coastguard Worker# Abseil in gRPC 2*cc02d7e2SAndroid Build Coastguard Worker 3*cc02d7e2SAndroid Build Coastguard WorkerThis document explains how to use Abseil throughout gRPC. Note that this isn't 4*cc02d7e2SAndroid Build Coastguard Workersupposed to explain general usage of Abseil. 5*cc02d7e2SAndroid Build Coastguard Worker 6*cc02d7e2SAndroid Build Coastguard Worker## The version of Abseil 7*cc02d7e2SAndroid Build Coastguard Worker 8*cc02d7e2SAndroid Build Coastguard WorkergRPC intends to use the LTS versions of Abseil only because it simplifies 9*cc02d7e2SAndroid Build Coastguard Workerdependency management. Abseil is being distributed via package distribution 10*cc02d7e2SAndroid Build Coastguard Workersystems such as vcpkg and cocoapods. If gRPC depends on the certain version 11*cc02d7e2SAndroid Build Coastguard Workerthat aren't registered, gRPC in that system cannot get the right version of 12*cc02d7e2SAndroid Build Coastguard WorkerAbseil when being built, resulting in a build failure. 13*cc02d7e2SAndroid Build Coastguard WorkerTherefore, gRPC will use the LTS version only, preferably the latest one. 14*cc02d7e2SAndroid Build Coastguard Worker 15*cc02d7e2SAndroid Build Coastguard Worker## Libraries that are not ready to use 16*cc02d7e2SAndroid Build Coastguard Worker 17*cc02d7e2SAndroid Build Coastguard WorkerMost of Abseil libraries are okay to use but there are some exceptions 18*cc02d7e2SAndroid Build Coastguard Workerbecause they're not going well yet on some of our test machinaries or 19*cc02d7e2SAndroid Build Coastguard Workerplatforms it supports. The following is a list of targets that are NOT 20*cc02d7e2SAndroid Build Coastguard Workerready to use. 21*cc02d7e2SAndroid Build Coastguard Worker 22*cc02d7e2SAndroid Build Coastguard Worker- `absl/synchronization:*`: Blocked by b/186685878. 23*cc02d7e2SAndroid Build Coastguard Worker- `absl/random`: [WIP](https://github.com/grpc/grpc/pull/23346). 24*cc02d7e2SAndroid Build Coastguard Worker 25*cc02d7e2SAndroid Build Coastguard Worker## Implemetation only 26*cc02d7e2SAndroid Build Coastguard Worker 27*cc02d7e2SAndroid Build Coastguard WorkerYou can use Abseil in gRPC Core and gRPC C++. But you cannot use it in 28*cc02d7e2SAndroid Build Coastguard Workerthe public interface of gRPC C++ because i) it doesn't gurantee no breaking 29*cc02d7e2SAndroid Build Coastguard WorkerAPI changes like gRPC C++ does and ii) it may make users change their build 30*cc02d7e2SAndroid Build Coastguard Workersystem to address Abseil. 31*cc02d7e2SAndroid Build Coastguard Worker