xref: /aosp_15_r20/external/grpc-grpc/third_party/ABSEIL_MANUAL.md (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
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