mirror of https://github.com/grpc/grpc.git
parent
88c5842f3f
commit
f5b1557e59
2 changed files with 38 additions and 0 deletions
@ -0,0 +1,30 @@ |
|||||||
|
# Abseil in gRPC |
||||||
|
|
||||||
|
This document explains how to use Abseil throughout gRPC. Note that this isn't |
||||||
|
supposed to explain general usage of Abseil. |
||||||
|
|
||||||
|
## The version of Abseil |
||||||
|
|
||||||
|
gRPC is inteded to use the LTS versions of Abseil only because it simplfies |
||||||
|
dependency management. Abseil is being distributed via package distribution |
||||||
|
systems such as vcpkg and cocoapods. If gRPC depends on the certain version |
||||||
|
that aren't registered, gRPC in that system wouldn't build or work. |
||||||
|
Therefore, gRPC will use the LTS version only, preferably the latest one. |
||||||
|
|
||||||
|
## Libraries that are not ready to use |
||||||
|
|
||||||
|
Most of Abseil libraries are okay to use but there are some exceptions |
||||||
|
because they're not going well yet on some of our test machinaries or |
||||||
|
platforms it supports. Following is targets that are NOT ready to use. |
||||||
|
|
||||||
|
- `absl/synchronization:*`: This will be ready from the LTS version in 2021. |
||||||
|
- `absl/random`: [WIP](https://github.com/grpc/grpc/pull/23346). |
||||||
|
- `absl/types:variant`: [WIP](https://github.com/grpc/grpc/pull/22961). |
||||||
|
|
||||||
|
## Implemetation only |
||||||
|
|
||||||
|
You can use Abseil in gRPC Core and gRPC C++. But you cannot use it in |
||||||
|
the public interface of gRPC C++ because i) it doesn't gurantee no breaking |
||||||
|
API changes like gRPC C++ does and ii) it may make users change their build |
||||||
|
system to address Abseil. |
||||||
|
|
Loading…
Reference in new issue