| # Welcome to `include/grpcpp/impl/codegen` | |
| ## Why is this directory here? | |
| This directory exists so that generated code can include selected files upon | |
| which it depends without having to depend on the entire gRPC C++ library. This | |
| is particularly relevant for users of bazel, particularly if they use the | |
| multi-lingual `proto_library` target type. Generated code that uses this target | |
| only depends on the gRPC C++ targets associated with these header files, not the | |
| entire gRPC C++ codebase since that would make the build time of these types of | |
| targets excessively large (particularly when they are not even C++ specific). | |
| ## What should user code do? | |
| User code should *not* include anything from this directory. Only generated code | |
| and gRPC library code should include contents from this directory. User code | |
| should instead include contents from the main `grpcpp` directory or its | |
| accessible subcomponents like `grpcpp/support`. It is possible that we may | |
| remove this directory altogether if the motivations for its existence are no | |
| longer strong enough (e.g., if most users migrate away from the `proto_library` | |
| target type or if the additional overhead of depending on gRPC C++ is not high). |