1# Welcome to `include/grpc/impl/codegen` 2 3## Why is this directory here? 4 5This directory exists so that generated C++ code can include selected files upon 6which it depends without having to depend on the entire gRPC C++ library. This 7directory thus exists to support `include/grpcpp/impl/codegen`. This constraint 8is particularly relevant for users of bazel, particularly if they use the 9multi-lingual `proto_library` target type. Generated code that uses this target 10only depends on the gRPC C++ targets associated with these header files, not the 11entire gRPC C++ codebase since that would make the build time of these types of 12targets excessively large (particularly when they are not even C++ specific). 13 14## What should user code do? 15 16User code should *not* include anything from this directory. Only generated code 17and gRPC library code should include contents from this directory. C++ user code 18should instead include contents from the main `grpcpp` directory or its 19accessible subcomponents like `grpcpp/support`. It is possible that we may 20remove this directory altogether if the motivations for its existence are no 21longer strong enough (e.g., if the gRPC C++ library no longer has a need for an 22`impl/codegen` directory of its own). 23