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