• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# gRPC Bazel BUILD file.
2#
3# Copyright 2016 gRPC authors.
4#
5# Licensed under the Apache License, Version 2.0 (the "License");
6# you may not use this file except in compliance with the License.
7# You may obtain a copy of the License at
8#
9#     http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS,
13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14# See the License for the specific language governing permissions and
15# limitations under the License.
16
17load("@bazel_skylib//lib:selects.bzl", "selects")
18load("@bazel_skylib//rules:common_settings.bzl", "bool_flag")
19load(
20    "//bazel:grpc_build_system.bzl",
21    "grpc_cc_library",
22    "grpc_clang_cl_settings",
23    "grpc_filegroup",
24    "grpc_generate_one_off_targets",
25    "grpc_upb_proto_library",
26    "grpc_upb_proto_reflection_library",
27    "python_config_settings",
28)
29
30licenses(["reciprocal"])
31
32package(
33    default_visibility = ["//visibility:public"],
34    features = [
35        "-parse_headers",
36        "layering_check",
37    ],
38)
39
40exports_files([
41    "LICENSE",
42    "etc/roots.pem",
43])
44
45exports_files(
46    glob(["include/**"]),
47    visibility = ["//:__subpackages__"],
48)
49
50config_setting(
51    name = "grpc_no_ares",
52    values = {"define": "grpc_no_ares=true"},
53)
54
55config_setting(
56    name = "grpc_no_xds_define",
57    values = {"define": "grpc_no_xds=true"},
58)
59
60config_setting(
61    name = "grpc_experiments_are_final_define",
62    values = {"define": "grpc_experiments_are_final=true"},
63)
64
65bool_flag(
66    name = "disable_grpc_rls",
67    build_setting_default = False,
68)
69
70grpc_clang_cl_settings()
71
72config_setting(
73    name = "grpc_no_rls_flag",
74    flag_values = {":disable_grpc_rls": "true"},
75)
76
77config_setting(
78    name = "android",
79    values = {"crosstool_top": "//external:android/crosstool"},
80    # TODO: Use constraint_values to detect android after Bazel 7.0 platforms migration is finished
81    # constraint_values = [ "@platforms//os:android" ],
82)
83
84config_setting(
85    name = "macos",
86    values = {"apple_platform_type": "macos"},
87)
88
89config_setting(
90    name = "ios",
91    values = {"apple_platform_type": "ios"},
92)
93
94config_setting(
95    name = "tvos",
96    values = {"apple_platform_type": "tvos"},
97)
98
99config_setting(
100    name = "visionos",
101    values = {"apple_platform_type": "visionos"},
102)
103
104config_setting(
105    name = "watchos",
106    values = {"apple_platform_type": "watchos"},
107)
108
109config_setting(
110    name = "windows_os",
111    constraint_values = ["@platforms//os:windows"],
112)
113
114config_setting(
115    name = "systemd",
116    values = {"define": "use_systemd=true"},
117)
118
119selects.config_setting_group(
120    name = "grpc_no_xds",
121    match_any = [
122        ":grpc_no_xds_define",
123        # In addition to disabling XDS support when --define=grpc_no_xds=true is
124        # specified, we also disable it on mobile platforms where it is not
125        # likely to be needed and where reducing the binary size is more
126        # important.
127        ":android",
128        ":ios",
129    ],
130)
131
132selects.config_setting_group(
133    name = "grpc_no_rls",
134    match_any = [
135        ":grpc_no_rls_flag",
136        # Disable RLS support on mobile platforms where it is not likely to be
137        # needed and where reducing the binary size is more important.
138        ":android",
139        ":ios",
140    ],
141)
142
143selects.config_setting_group(
144    name = "grpc_experiments_are_final",
145    match_any = [
146        ":grpc_experiments_are_final_define",
147        # In addition to disabling experiments when
148        # --define=grpc_experiments_are_final=true is specified, we also disable
149        # them on mobile platforms where runtime configuration of experiments is unlikely to be needed and where
150        # reducing the binary size is more important.
151        ":android",
152        ":ios",
153    ],
154)
155
156# Fuzzers can be built as fuzzers or as tests
157config_setting(
158    name = "grpc_build_fuzzers",
159    values = {"define": "grpc_build_fuzzers=true"},
160)
161
162config_setting(
163    name = "grpc_allow_exceptions",
164    values = {"define": "GRPC_ALLOW_EXCEPTIONS=1"},
165)
166
167config_setting(
168    name = "grpc_disallow_exceptions",
169    values = {"define": "GRPC_ALLOW_EXCEPTIONS=0"},
170)
171
172config_setting(
173    name = "remote_execution",
174    values = {"define": "GRPC_PORT_ISOLATED_RUNTIME=1"},
175)
176
177config_setting(
178    name = "windows",
179    values = {"cpu": "x64_windows"},
180)
181
182config_setting(
183    name = "windows_msvc",
184    values = {"cpu": "x64_windows_msvc"},
185)
186
187config_setting(
188    name = "mac",
189    values = {"cpu": "darwin"},
190)
191
192config_setting(
193    name = "mac_x86_64",
194    values = {"cpu": "darwin_x86_64"},
195)
196
197config_setting(
198    name = "mac_arm64",
199    values = {"cpu": "darwin_arm64"},
200)
201
202config_setting(
203    name = "use_strict_warning",
204    values = {"define": "use_strict_warning=true"},
205)
206
207config_setting(
208    name = "use_strict_warning_windows",
209    values = {"define": "use_strict_warning_windows=true"},
210)
211
212python_config_settings()
213
214# This should be updated along with build_handwritten.yaml
215g_stands_for = "genius"  # @unused
216
217core_version = "45.0.0"  # @unused
218
219version = "1.70.1"  # @unused
220
221GPR_PUBLIC_HDRS = [
222    "include/grpc/support/alloc.h",
223    "include/grpc/support/atm_gcc_atomic.h",
224    "include/grpc/support/atm_gcc_sync.h",
225    "include/grpc/support/atm_windows.h",
226    "include/grpc/support/cpu.h",
227    "include/grpc/support/json.h",
228    "include/grpc/support/log.h",
229    "include/grpc/support/log_windows.h",
230    "include/grpc/support/metrics.h",
231    "include/grpc/support/port_platform.h",
232    "include/grpc/support/string_util.h",
233    "include/grpc/support/sync.h",
234    "include/grpc/support/sync_abseil.h",
235    "include/grpc/support/sync_custom.h",
236    "include/grpc/support/sync_generic.h",
237    "include/grpc/support/sync_posix.h",
238    "include/grpc/support/sync_windows.h",
239    "include/grpc/support/thd_id.h",
240    "include/grpc/support/time.h",
241    "include/grpc/impl/call.h",
242    "include/grpc/impl/codegen/atm.h",
243    "include/grpc/impl/codegen/atm_gcc_atomic.h",
244    "include/grpc/impl/codegen/atm_gcc_sync.h",
245    "include/grpc/impl/codegen/atm_windows.h",
246    "include/grpc/impl/codegen/fork.h",
247    "include/grpc/impl/codegen/gpr_types.h",
248    "include/grpc/impl/codegen/log.h",
249    "include/grpc/impl/codegen/port_platform.h",
250    "include/grpc/impl/codegen/sync.h",
251    "include/grpc/impl/codegen/sync_abseil.h",
252    "include/grpc/impl/codegen/sync_custom.h",
253    "include/grpc/impl/codegen/sync_generic.h",
254    "include/grpc/impl/codegen/sync_posix.h",
255    "include/grpc/impl/codegen/sync_windows.h",
256]
257
258GRPC_PUBLIC_HDRS = [
259    "include/grpc/grpc_audit_logging.h",
260    "include/grpc/grpc_crl_provider.h",
261    "include/grpc/byte_buffer.h",
262    "include/grpc/byte_buffer_reader.h",
263    "include/grpc/compression.h",
264    "include/grpc/fork.h",
265    "include/grpc/grpc.h",
266    "include/grpc/grpc_posix.h",
267    "include/grpc/grpc_security.h",
268    "include/grpc/grpc_security_constants.h",
269    "include/grpc/passive_listener.h",
270    "include/grpc/slice.h",
271    "include/grpc/slice_buffer.h",
272    "include/grpc/status.h",
273    "include/grpc/load_reporting.h",
274    "include/grpc/support/workaround_list.h",
275    "include/grpc/impl/codegen/byte_buffer.h",
276    "include/grpc/impl/codegen/byte_buffer_reader.h",
277    "include/grpc/impl/codegen/compression_types.h",
278    "include/grpc/impl/codegen/connectivity_state.h",
279    "include/grpc/impl/codegen/grpc_types.h",
280    "include/grpc/impl/codegen/propagation_bits.h",
281    "include/grpc/impl/codegen/status.h",
282    "include/grpc/impl/codegen/slice.h",
283    "include/grpc/impl/compression_types.h",
284    "include/grpc/impl/connectivity_state.h",
285    "include/grpc/impl/grpc_types.h",
286    "include/grpc/impl/propagation_bits.h",
287    "include/grpc/impl/slice_type.h",
288]
289
290GRPC_PUBLIC_EVENT_ENGINE_HDRS = [
291    "include/grpc/event_engine/endpoint_config.h",
292    "include/grpc/event_engine/event_engine.h",
293    "include/grpc/event_engine/extensible.h",
294    "include/grpc/event_engine/port.h",
295    "include/grpc/event_engine/memory_allocator.h",
296    "include/grpc/event_engine/memory_request.h",
297    "include/grpc/event_engine/internal/memory_allocator_impl.h",
298    "include/grpc/event_engine/slice.h",
299    "include/grpc/event_engine/slice_buffer.h",
300    "include/grpc/event_engine/internal/slice_cast.h",
301]
302
303GRPCXX_SRCS = [
304    "src/cpp/client/call_credentials.cc",
305    "src/cpp/client/channel_cc.cc",
306    "src/cpp/client/channel_credentials.cc",
307    "src/cpp/client/client_callback.cc",
308    "src/cpp/client/client_context.cc",
309    "src/cpp/client/client_interceptor.cc",
310    "src/cpp/client/client_stats_interceptor.cc",
311    "src/cpp/client/create_channel.cc",
312    "src/cpp/client/create_channel_internal.cc",
313    "src/cpp/client/create_channel_posix.cc",
314    "src/cpp/common/alarm.cc",
315    "src/cpp/common/channel_arguments.cc",
316    "src/cpp/common/completion_queue_cc.cc",
317    "src/cpp/common/resource_quota_cc.cc",
318    "src/cpp/common/rpc_method.cc",
319    "src/cpp/common/version_cc.cc",
320    "src/cpp/common/validate_service_config.cc",
321    "src/cpp/server/async_generic_service.cc",
322    "src/cpp/server/channel_argument_option.cc",
323    "src/cpp/server/create_default_thread_pool.cc",
324    "src/cpp/server/external_connection_acceptor_impl.cc",
325    "src/cpp/server/health/default_health_check_service.cc",
326    "src/cpp/server/health/health_check_service.cc",
327    "src/cpp/server/health/health_check_service_server_builder_option.cc",
328    "src/cpp/server/server_builder.cc",
329    "src/cpp/server/server_callback.cc",
330    "src/cpp/server/server_cc.cc",
331    "src/cpp/server/server_context.cc",
332    "src/cpp/server/server_credentials.cc",
333    "src/cpp/server/server_posix.cc",
334    "src/cpp/thread_manager/thread_manager.cc",
335    "src/cpp/util/byte_buffer_cc.cc",
336    "src/cpp/util/string_ref.cc",
337    "src/cpp/util/time_cc.cc",
338]
339
340GRPCXX_HDRS = [
341    "src/cpp/client/create_channel_internal.h",
342    "src/cpp/client/client_stats_interceptor.h",
343    "src/cpp/server/dynamic_thread_pool.h",
344    "src/cpp/server/external_connection_acceptor_impl.h",
345    "src/cpp/server/health/default_health_check_service.h",
346    "src/cpp/server/thread_pool_interface.h",
347    "src/cpp/thread_manager/thread_manager.h",
348]
349
350GRPCXX_PUBLIC_HDRS = [
351    "include/grpc++/alarm.h",
352    "include/grpc++/channel.h",
353    "include/grpc++/client_context.h",
354    "include/grpc++/completion_queue.h",
355    "include/grpc++/create_channel.h",
356    "include/grpc++/create_channel_posix.h",
357    "include/grpc++/ext/health_check_service_server_builder_option.h",
358    "include/grpc++/generic/async_generic_service.h",
359    "include/grpc++/generic/generic_stub.h",
360    "include/grpc++/grpc++.h",
361    "include/grpc++/health_check_service_interface.h",
362    "include/grpc++/impl/call.h",
363    "include/grpc++/impl/channel_argument_option.h",
364    "include/grpc++/impl/client_unary_call.h",
365    "include/grpc++/impl/grpc_library.h",
366    "include/grpc++/impl/method_handler_impl.h",
367    "include/grpc++/impl/rpc_method.h",
368    "include/grpc++/impl/rpc_service_method.h",
369    "include/grpc++/impl/serialization_traits.h",
370    "include/grpc++/impl/server_builder_option.h",
371    "include/grpc++/impl/server_builder_plugin.h",
372    "include/grpc++/impl/server_initializer.h",
373    "include/grpc++/impl/service_type.h",
374    "include/grpc++/security/auth_context.h",
375    "include/grpc++/resource_quota.h",
376    "include/grpc++/security/auth_metadata_processor.h",
377    "include/grpc++/security/credentials.h",
378    "include/grpc++/security/server_credentials.h",
379    "include/grpc++/server.h",
380    "include/grpc++/server_builder.h",
381    "include/grpc++/server_context.h",
382    "include/grpc++/server_posix.h",
383    "include/grpc++/support/async_stream.h",
384    "include/grpc++/support/async_unary_call.h",
385    "include/grpc++/support/byte_buffer.h",
386    "include/grpc++/support/channel_arguments.h",
387    "include/grpc++/support/config.h",
388    "include/grpc++/support/slice.h",
389    "include/grpc++/support/status.h",
390    "include/grpc++/support/status_code_enum.h",
391    "include/grpc++/support/string_ref.h",
392    "include/grpc++/support/stub_options.h",
393    "include/grpc++/support/sync_stream.h",
394    "include/grpc++/support/time.h",
395    "include/grpcpp/alarm.h",
396    "include/grpcpp/channel.h",
397    "include/grpcpp/client_context.h",
398    "include/grpcpp/completion_queue.h",
399    "include/grpcpp/create_channel.h",
400    "include/grpcpp/create_channel_posix.h",
401    "include/grpcpp/ext/health_check_service_server_builder_option.h",
402    "include/grpcpp/generic/async_generic_service.h",
403    "include/grpcpp/generic/callback_generic_service.h",
404    "include/grpcpp/generic/generic_stub.h",
405    "include/grpcpp/generic/generic_stub_callback.h",
406    "include/grpcpp/grpcpp.h",
407    "include/grpcpp/health_check_service_interface.h",
408    "include/grpcpp/impl/call_hook.h",
409    "include/grpcpp/impl/call_op_set_interface.h",
410    "include/grpcpp/impl/call_op_set.h",
411    "include/grpcpp/impl/call.h",
412    "include/grpcpp/impl/channel_argument_option.h",
413    "include/grpcpp/impl/channel_interface.h",
414    "include/grpcpp/impl/client_unary_call.h",
415    "include/grpcpp/impl/completion_queue_tag.h",
416    "include/grpcpp/impl/create_auth_context.h",
417    "include/grpcpp/impl/delegating_channel.h",
418    "include/grpcpp/impl/grpc_library.h",
419    "include/grpcpp/impl/intercepted_channel.h",
420    "include/grpcpp/impl/interceptor_common.h",
421    "include/grpcpp/impl/metadata_map.h",
422    "include/grpcpp/impl/method_handler_impl.h",
423    "include/grpcpp/impl/rpc_method.h",
424    "include/grpcpp/impl/rpc_service_method.h",
425    "include/grpcpp/impl/serialization_traits.h",
426    "include/grpcpp/impl/server_builder_option.h",
427    "include/grpcpp/impl/server_builder_plugin.h",
428    "include/grpcpp/impl/server_callback_handlers.h",
429    "include/grpcpp/impl/server_initializer.h",
430    "include/grpcpp/impl/service_type.h",
431    "include/grpcpp/impl/status.h",
432    "include/grpcpp/impl/sync.h",
433    "include/grpcpp/passive_listener.h",
434    "include/grpcpp/resource_quota.h",
435    "include/grpcpp/security/audit_logging.h",
436    "include/grpcpp/security/tls_crl_provider.h",
437    "include/grpcpp/security/auth_context.h",
438    "include/grpcpp/security/auth_metadata_processor.h",
439    "include/grpcpp/security/credentials.h",
440    "include/grpcpp/security/server_credentials.h",
441    "include/grpcpp/security/tls_certificate_provider.h",
442    "include/grpcpp/security/authorization_policy_provider.h",
443    "include/grpcpp/security/tls_certificate_verifier.h",
444    "include/grpcpp/security/tls_credentials_options.h",
445    "include/grpcpp/server.h",
446    "include/grpcpp/server_builder.h",
447    "include/grpcpp/server_context.h",
448    "include/grpcpp/server_interface.h",
449    "include/grpcpp/server_posix.h",
450    "include/grpcpp/version_info.h",
451    "include/grpcpp/support/async_stream.h",
452    "include/grpcpp/support/async_unary_call.h",
453    "include/grpcpp/support/byte_buffer.h",
454    "include/grpcpp/support/callback_common.h",
455    "include/grpcpp/support/channel_arguments.h",
456    "include/grpcpp/support/client_callback.h",
457    "include/grpcpp/support/client_interceptor.h",
458    "include/grpcpp/support/config.h",
459    "include/grpcpp/support/interceptor.h",
460    "include/grpcpp/support/message_allocator.h",
461    "include/grpcpp/support/method_handler.h",
462    "include/grpcpp/support/proto_buffer_reader.h",
463    "include/grpcpp/support/proto_buffer_writer.h",
464    "include/grpcpp/support/server_callback.h",
465    "include/grpcpp/support/server_interceptor.h",
466    "include/grpcpp/support/slice.h",
467    "include/grpcpp/support/status.h",
468    "include/grpcpp/support/status_code_enum.h",
469    "include/grpcpp/support/string_ref.h",
470    "include/grpcpp/support/stub_options.h",
471    "include/grpcpp/support/sync_stream.h",
472    "include/grpcpp/support/time.h",
473    "include/grpcpp/support/validate_service_config.h",
474    "include/grpc++/impl/codegen/async_stream.h",
475    "include/grpc++/impl/codegen/async_unary_call.h",
476    "include/grpc++/impl/codegen/byte_buffer.h",
477    "include/grpc++/impl/codegen/call_hook.h",
478    "include/grpc++/impl/codegen/call.h",
479    "include/grpc++/impl/codegen/channel_interface.h",
480    "include/grpc++/impl/codegen/client_context.h",
481    "include/grpc++/impl/codegen/client_unary_call.h",
482    "include/grpc++/impl/codegen/completion_queue_tag.h",
483    "include/grpc++/impl/codegen/completion_queue.h",
484    "include/grpc++/impl/codegen/config.h",
485    "include/grpc++/impl/codegen/create_auth_context.h",
486    "include/grpc++/impl/codegen/metadata_map.h",
487    "include/grpc++/impl/codegen/method_handler_impl.h",
488    "include/grpc++/impl/codegen/rpc_method.h",
489    "include/grpc++/impl/codegen/rpc_service_method.h",
490    "include/grpc++/impl/codegen/security/auth_context.h",
491    "include/grpc++/impl/codegen/serialization_traits.h",
492    "include/grpc++/impl/codegen/server_context.h",
493    "include/grpc++/impl/codegen/server_interface.h",
494    "include/grpc++/impl/codegen/service_type.h",
495    "include/grpc++/impl/codegen/slice.h",
496    "include/grpc++/impl/codegen/status_code_enum.h",
497    "include/grpc++/impl/codegen/status.h",
498    "include/grpc++/impl/codegen/string_ref.h",
499    "include/grpc++/impl/codegen/stub_options.h",
500    "include/grpc++/impl/codegen/sync_stream.h",
501    "include/grpc++/impl/codegen/time.h",
502    "include/grpcpp/impl/codegen/async_generic_service.h",
503    "include/grpcpp/impl/codegen/async_stream.h",
504    "include/grpcpp/impl/codegen/async_unary_call.h",
505    "include/grpcpp/impl/codegen/byte_buffer.h",
506    "include/grpcpp/impl/codegen/call_hook.h",
507    "include/grpcpp/impl/codegen/call_op_set_interface.h",
508    "include/grpcpp/impl/codegen/call_op_set.h",
509    "include/grpcpp/impl/codegen/call.h",
510    "include/grpcpp/impl/codegen/callback_common.h",
511    "include/grpcpp/impl/codegen/channel_interface.h",
512    "include/grpcpp/impl/codegen/client_callback.h",
513    "include/grpcpp/impl/codegen/client_context.h",
514    "include/grpcpp/impl/codegen/client_interceptor.h",
515    "include/grpcpp/impl/codegen/client_unary_call.h",
516    "include/grpcpp/impl/codegen/completion_queue_tag.h",
517    "include/grpcpp/impl/codegen/completion_queue.h",
518    "include/grpcpp/impl/codegen/config.h",
519    "include/grpcpp/impl/codegen/create_auth_context.h",
520    "include/grpcpp/impl/codegen/delegating_channel.h",
521    "include/grpcpp/impl/codegen/intercepted_channel.h",
522    "include/grpcpp/impl/codegen/interceptor_common.h",
523    "include/grpcpp/impl/codegen/interceptor.h",
524    "include/grpcpp/impl/codegen/message_allocator.h",
525    "include/grpcpp/impl/codegen/metadata_map.h",
526    "include/grpcpp/impl/codegen/method_handler_impl.h",
527    "include/grpcpp/impl/codegen/method_handler.h",
528    "include/grpcpp/impl/codegen/rpc_method.h",
529    "include/grpcpp/impl/codegen/rpc_service_method.h",
530    "include/grpcpp/impl/codegen/security/auth_context.h",
531    "include/grpcpp/impl/codegen/serialization_traits.h",
532    "include/grpcpp/impl/codegen/server_callback_handlers.h",
533    "include/grpcpp/impl/codegen/server_callback.h",
534    "include/grpcpp/impl/codegen/server_context.h",
535    "include/grpcpp/impl/codegen/server_interceptor.h",
536    "include/grpcpp/impl/codegen/server_interface.h",
537    "include/grpcpp/impl/codegen/service_type.h",
538    "include/grpcpp/impl/codegen/slice.h",
539    "include/grpcpp/impl/codegen/status_code_enum.h",
540    "include/grpcpp/impl/codegen/status.h",
541    "include/grpcpp/impl/codegen/string_ref.h",
542    "include/grpcpp/impl/codegen/stub_options.h",
543    "include/grpcpp/impl/codegen/sync_stream.h",
544    "include/grpcpp/impl/codegen/time.h",
545    "include/grpcpp/impl/codegen/sync.h",
546]
547
548grpc_cc_library(
549    name = "grpc_unsecure",
550    srcs = [
551        "//src/core:lib/surface/init.cc",
552        "//src/core:plugin_registry/grpc_plugin_registry.cc",
553        "//src/core:plugin_registry/grpc_plugin_registry_noextra.cc",
554    ],
555    defines = ["GRPC_NO_XDS"],
556    external_deps = [
557        "absl/base:core_headers",
558        "absl/log:log",
559        "absl/status",
560        "absl/status:statusor",
561        "absl/strings",
562        "absl/time:time",
563        "address_sorting",
564    ],
565    language = "c++",
566    public_hdrs = GRPC_PUBLIC_HDRS,
567    tags = [
568        "nofixdeps",
569    ],
570    visibility = ["@grpc:public"],
571    deps = [
572        "channel_arg_names",
573        "channel_stack_builder",
574        "config",
575        "exec_ctx",
576        "gpr",
577        "grpc_base",
578        "grpc_client_channel",
579        "grpc_common",
580        "grpc_core_credentials_header",
581        "grpc_http_filters",
582        "grpc_security_base",
583        "grpc_trace",
584        "http_connect_handshaker",
585        "iomgr_timer",
586        "server",
587        "//src/core:channel_args",
588        "//src/core:channel_init",
589        "//src/core:channel_stack_type",
590        "//src/core:client_channel_backup_poller",
591        "//src/core:default_event_engine",
592        "//src/core:endpoint_info_handshaker",
593        "//src/core:experiments",
594        "//src/core:forkable",
595        "//src/core:grpc_authorization_base",
596        "//src/core:http_proxy_mapper",
597        "//src/core:init_internally",
598        "//src/core:posix_event_engine_timer_manager",
599        "//src/core:server_call_tracer_filter",
600        "//src/core:service_config_channel_arg_filter",
601        "//src/core:slice",
602        "//src/core:tcp_connect_handshaker",
603    ],
604)
605
606GRPC_XDS_TARGETS = [
607    "//src/core:grpc_lb_policy_cds",
608    "//src/core:grpc_lb_policy_xds_cluster_impl",
609    "//src/core:grpc_lb_policy_xds_cluster_manager",
610    "//src/core:grpc_lb_policy_xds_override_host",
611    "//src/core:grpc_lb_policy_xds_wrr_locality",
612    "//src/core:grpc_lb_policy_ring_hash",
613    "//src/core:grpc_resolver_xds",
614    "//src/core:grpc_resolver_c2p",
615    "//src/core:grpc_xds_server_config_fetcher",
616    "//src/core:grpc_stateful_session_filter",
617    "//src/core:xds_http_proxy_mapper",
618
619    # Not xDS-specific but currently only used by xDS.
620    "//src/core:channel_creds_registry_init",
621]
622
623grpc_cc_library(
624    name = "grpc",
625    srcs = [
626        "//src/core:lib/surface/init.cc",
627        "//src/core:plugin_registry/grpc_plugin_registry.cc",
628        "//src/core:plugin_registry/grpc_plugin_registry_extra.cc",
629    ],
630    defines = select({
631        ":grpc_no_xds": ["GRPC_NO_XDS"],
632        "//conditions:default": [],
633    }),
634    external_deps = [
635        "absl/base:core_headers",
636        "absl/log:log",
637        "absl/status",
638        "absl/status:statusor",
639        "absl/strings",
640        "absl/time:time",
641        "address_sorting",
642    ],
643    language = "c++",
644    public_hdrs = GRPC_PUBLIC_HDRS,
645    select_deps = [
646        {
647            ":grpc_no_xds": [],
648            "//conditions:default": GRPC_XDS_TARGETS,
649        },
650    ],
651    tags = [
652        "nofixdeps",
653    ],
654    visibility = [
655        "@grpc:public",
656    ],
657    deps = [
658        "channel_arg_names",
659        "channel_stack_builder",
660        "config",
661        "exec_ctx",
662        "gpr",
663        "grpc_alts_credentials",
664        "grpc_base",
665        "grpc_client_channel",
666        "grpc_common",
667        "grpc_core_credentials_header",
668        "grpc_credentials_util",
669        "grpc_http_filters",
670        "grpc_jwt_credentials",
671        "grpc_public_hdrs",
672        "grpc_security_base",
673        "grpc_trace",
674        "http_connect_handshaker",
675        "httpcli",
676        "iomgr_timer",
677        "promise",
678        "ref_counted_ptr",
679        "server",
680        "sockaddr_utils",
681        "tsi_base",
682        "uri",
683        "//src/core:channel_args",
684        "//src/core:channel_init",
685        "//src/core:channel_stack_type",
686        "//src/core:client_channel_backup_poller",
687        "//src/core:default_event_engine",
688        "//src/core:endpoint_info_handshaker",
689        "//src/core:experiments",
690        "//src/core:forkable",
691        "//src/core:grpc_authorization_base",
692        "//src/core:grpc_external_account_credentials",
693        "//src/core:grpc_fake_credentials",
694        "//src/core:grpc_google_default_credentials",
695        "//src/core:grpc_iam_credentials",
696        "//src/core:grpc_insecure_credentials",
697        "//src/core:grpc_local_credentials",
698        "//src/core:grpc_oauth2_credentials",
699        "//src/core:grpc_ssl_credentials",
700        "//src/core:grpc_tls_credentials",
701        "//src/core:grpc_transport_chttp2_alpn",
702        "//src/core:http_proxy_mapper",
703        "//src/core:httpcli_ssl_credentials",
704        "//src/core:init_internally",
705        "//src/core:json",
706        "//src/core:posix_event_engine_timer_manager",
707        "//src/core:ref_counted",
708        "//src/core:server_call_tracer_filter",
709        "//src/core:service_config_channel_arg_filter",
710        "//src/core:slice",
711        "//src/core:slice_refcount",
712        "//src/core:tcp_connect_handshaker",
713        "//src/core:useful",
714    ],
715)
716
717grpc_cc_library(
718    name = "gpr",
719    srcs = [
720        "//src/core:util/alloc.cc",
721        "//src/core:util/crash.cc",
722        "//src/core:util/fork.cc",
723        "//src/core:util/gpr_time.cc",
724        "//src/core:util/host_port.cc",
725        "//src/core:util/iphone/cpu.cc",
726        "//src/core:util/linux/cpu.cc",
727        "//src/core:util/log.cc",
728        "//src/core:util/mpscq.cc",
729        "//src/core:util/msys/tmpfile.cc",
730        "//src/core:util/posix/cpu.cc",
731        "//src/core:util/posix/stat.cc",
732        "//src/core:util/posix/string.cc",
733        "//src/core:util/posix/sync.cc",
734        "//src/core:util/posix/thd.cc",
735        "//src/core:util/posix/time.cc",
736        "//src/core:util/posix/tmpfile.cc",
737        "//src/core:util/string.cc",
738        "//src/core:util/sync.cc",
739        "//src/core:util/sync_abseil.cc",
740        "//src/core:util/time_precise.cc",
741        "//src/core:util/time_util.cc",
742        "//src/core:util/windows/cpu.cc",
743        "//src/core:util/windows/stat.cc",
744        "//src/core:util/windows/string.cc",
745        "//src/core:util/windows/string_util.cc",
746        "//src/core:util/windows/sync.cc",
747        "//src/core:util/windows/thd.cc",
748        "//src/core:util/windows/time.cc",
749        "//src/core:util/windows/tmpfile.cc",
750    ],
751    hdrs = [
752        "//src/core:util/alloc.h",
753        "//src/core:util/crash.h",
754        "//src/core:util/fork.h",
755        "//src/core:util/host_port.h",
756        "//src/core:util/memory.h",
757        "//src/core:util/mpscq.h",
758        "//src/core:util/stat.h",
759        "//src/core:util/string.h",
760        "//src/core:util/sync.h",
761        "//src/core:util/thd.h",
762        "//src/core:util/time_precise.h",
763        "//src/core:util/time_util.h",
764        "//src/core:util/tmpfile.h",
765    ],
766    external_deps = [
767        "absl/base",
768        "absl/base:core_headers",
769        "absl/base:log_severity",
770        "absl/functional:any_invocable",
771        "absl/log:check",
772        "absl/log:globals",
773        "absl/log:log",
774        "absl/memory",
775        "absl/random",
776        "absl/status",
777        "absl/strings",
778        "absl/strings:cord",
779        "absl/strings:str_format",
780        "absl/synchronization",
781        "absl/time:time",
782        "absl/types:optional",
783        "absl/types:variant",
784    ],
785    language = "c++",
786    public_hdrs = GPR_PUBLIC_HDRS,
787    tags = [
788        "nofixdeps",
789    ],
790    visibility = ["@grpc:public"],
791    deps = [
792        "config_vars",
793        "debug_location",
794        "//src/core:construct_destruct",
795        "//src/core:env",
796        "//src/core:event_engine_thread_local",
797        "//src/core:examine_stack",
798        "//src/core:gpr_atm",
799        "//src/core:no_destruct",
800        "//src/core:strerror",
801        "//src/core:tchar",
802        "//src/core:useful",
803    ],
804)
805
806grpc_cc_library(
807    name = "gpr_public_hdrs",
808    hdrs = GPR_PUBLIC_HDRS,
809    external_deps = [
810        "absl/strings",
811        "absl/types:variant",
812    ],
813    tags = [
814        "avoid_dep",
815        "nofixdeps",
816    ],
817    visibility = ["@grpc:gpr_public_hdrs"],
818)
819
820grpc_cc_library(
821    name = "cpp_impl_of",
822    hdrs = ["//src/core:util/cpp_impl_of.h"],
823    language = "c++",
824)
825
826grpc_cc_library(
827    name = "grpc_common",
828    defines = select({
829        "grpc_no_rls": ["GRPC_NO_RLS"],
830        "//conditions:default": [],
831    }),
832    language = "c++",
833    select_deps = [
834        {
835            "grpc_no_rls": [],
836            "//conditions:default": ["//src/core:grpc_lb_policy_rls"],
837        },
838    ],
839    tags = ["nofixdeps"],
840    deps = [
841        "grpc_base",
842        # standard plugins
843        "census",
844        "//src/core:grpc_backend_metric_filter",
845        "//src/core:grpc_client_authority_filter",
846        "//src/core:grpc_lb_policy_grpclb",
847        "//src/core:grpc_lb_policy_outlier_detection",
848        "//src/core:grpc_lb_policy_pick_first",
849        "//src/core:grpc_lb_policy_priority",
850        "//src/core:grpc_lb_policy_round_robin",
851        "//src/core:grpc_lb_policy_weighted_round_robin",
852        "//src/core:grpc_lb_policy_weighted_target",
853        "//src/core:grpc_channel_idle_filter",
854        "//src/core:grpc_message_size_filter",
855        "grpc_resolver_dns_ares",
856        "grpc_resolver_fake",
857        "//src/core:grpc_resolver_dns_native",
858        "//src/core:grpc_resolver_sockaddr",
859        "//src/core:grpc_transport_chttp2_client_connector",
860        "//src/core:grpc_transport_chttp2_server",
861        "//src/core:grpc_transport_inproc",
862        "//src/core:grpc_fault_injection_filter",
863        "//src/core:grpc_resolver_dns_plugin",
864    ],
865)
866
867grpc_cc_library(
868    name = "grpc_public_hdrs",
869    hdrs = GRPC_PUBLIC_HDRS + GRPC_PUBLIC_EVENT_ENGINE_HDRS,
870    external_deps = [
871        "absl/status:statusor",
872        "absl/strings",
873    ],
874    tags = [
875        "avoid_dep",
876        "nofixdeps",
877    ],
878    visibility = ["@grpc:grpc_public_hdrs"],
879    deps = [
880        "channel_arg_names",
881        "gpr_public_hdrs",
882    ],
883)
884
885grpc_cc_library(
886    name = "grpc++_public_hdrs",
887    hdrs = GRPCXX_PUBLIC_HDRS,
888    external_deps = [
889        "absl/log:check",
890        "absl/log:log",
891        "absl/log:absl_check",
892        "absl/log:absl_log",
893        "absl/status:statusor",
894        "absl/strings:cord",
895        "absl/synchronization",
896        "protobuf_headers",
897        "protobuf",
898    ],
899    tags = [
900        "avoid_dep",
901        "nofixdeps",
902    ],
903    visibility = ["@grpc:grpc++_public_hdrs"],
904    deps = [
905        "global_callback_hook",
906        "grpc_public_hdrs",
907        "//src/core:gpr_atm",
908    ],
909)
910
911grpc_cc_library(
912    name = "channel_arg_names",
913    hdrs = ["include/grpc/impl/channel_arg_names.h"],
914)
915
916grpc_cc_library(
917    name = "grpc_slice",
918    hdrs = [
919        "include/grpc/slice.h",
920        "include/grpc/slice_buffer.h",
921    ],
922    visibility = ["@grpc:public"],
923    deps = [
924        "//src/core:slice",
925        "//src/core:slice_buffer",
926    ],
927)
928
929grpc_cc_library(
930    name = "grpc++",
931    hdrs = [
932        "src/cpp/client/secure_credentials.h",
933        "src/cpp/common/secure_auth_context.h",
934        "src/cpp/server/secure_server_credentials.h",
935    ],
936    external_deps = [
937        "absl/log:check",
938        "absl/log:log",
939        "absl/log:absl_check",
940        "absl/log:absl_log",
941        "absl/strings:cord",
942    ],
943    language = "c++",
944    public_hdrs = GRPCXX_PUBLIC_HDRS,
945    select_deps = [
946        {
947            ":grpc_no_xds": [],
948            "//conditions:default": [
949                "grpc++_xds_client",
950                "grpc++_xds_server",
951            ],
952        },
953    ],
954    tags = ["nofixdeps"],
955    visibility = ["@grpc:public"],
956    deps = [
957        "global_callback_hook",
958        "grpc++_base",
959        "//src/core:gpr_atm",
960        "//src/core:slice",
961    ],
962)
963
964grpc_cc_library(
965    name = "grpc_cronet_hdrs",
966    hdrs = [
967        "include/grpc/grpc_cronet.h",
968    ],
969    deps = [
970        "gpr_public_hdrs",
971        "grpc_base",
972    ],
973)
974
975grpc_cc_library(
976    name = "grpc++_cronet_credentials",
977    srcs = [
978        "src/cpp/client/cronet_credentials.cc",
979    ],
980    hdrs = [
981        "include/grpcpp/security/cronet_credentials.h",
982    ],
983    language = "c++",
984    deps = [
985        "grpc++_base",
986        "grpc_cronet_hdrs",
987        "grpc_public_hdrs",
988    ],
989)
990
991# This target pulls in a dependency on RE2 and should not be linked into grpc by default for binary-size reasons.
992grpc_cc_library(
993    name = "grpc_authorization_provider",
994    srcs = [
995        "//src/core:lib/security/authorization/grpc_authorization_policy_provider.cc",
996        "//src/core:lib/security/authorization/rbac_translator.cc",
997    ],
998    hdrs = [
999        "//src/core:lib/security/authorization/grpc_authorization_policy_provider.h",
1000        "//src/core:lib/security/authorization/rbac_translator.h",
1001    ],
1002    external_deps = [
1003        "absl/base:core_headers",
1004        "absl/log:check",
1005        "absl/log:log",
1006        "absl/status",
1007        "absl/status:statusor",
1008        "absl/strings",
1009        "absl/strings:str_format",
1010        "absl/types:optional",
1011    ],
1012    language = "c++",
1013    deps = [
1014        "gpr",
1015        "grpc_base",
1016        "grpc_public_hdrs",
1017        "grpc_trace",
1018        "ref_counted_ptr",
1019        "//src/core:error",
1020        "//src/core:grpc_audit_logging",
1021        "//src/core:grpc_authorization_base",
1022        "//src/core:grpc_matchers",
1023        "//src/core:grpc_rbac_engine",
1024        "//src/core:json",
1025        "//src/core:json_reader",
1026        "//src/core:load_file",
1027        "//src/core:slice",
1028        "//src/core:slice_refcount",
1029        "//src/core:status_helper",
1030        "//src/core:useful",
1031    ],
1032)
1033
1034# This target pulls in a dependency on RE2 and should not be linked into grpc by default for binary-size reasons.
1035grpc_cc_library(
1036    name = "grpc++_authorization_provider",
1037    srcs = [
1038        "src/cpp/server/authorization_policy_provider.cc",
1039    ],
1040    hdrs = [
1041        "include/grpcpp/security/authorization_policy_provider.h",
1042    ],
1043    language = "c++",
1044    tags = ["nofixdeps"],
1045    deps = [
1046        "gpr",
1047        "grpc++",
1048        "grpc++_public_hdrs",
1049        "grpc_authorization_provider",
1050        "grpc_public_hdrs",
1051    ],
1052)
1053
1054# This target pulls in a dependency on RE2 and should not be linked into grpc by default for binary-size reasons.
1055grpc_cc_library(
1056    name = "grpc_cel_engine",
1057    srcs = [
1058        "//src/core:lib/security/authorization/cel_authorization_engine.cc",
1059    ],
1060    hdrs = [
1061        "//src/core:lib/security/authorization/cel_authorization_engine.h",
1062    ],
1063    external_deps = [
1064        "absl/container:flat_hash_set",
1065        "absl/log:log",
1066        "absl/strings",
1067        "absl/types:optional",
1068        "absl/types:span",
1069        "@com_google_protobuf//upb:base",
1070        "@com_google_protobuf//upb:mem",
1071        "@com_google_protobuf//upb:message",
1072    ],
1073    language = "c++",
1074    deps = [
1075        "envoy_config_rbac_upb",
1076        "google_api_expr_v1alpha1_syntax_upb",
1077        "gpr",
1078        "grpc_mock_cel",
1079        "//src/core:grpc_authorization_base",
1080    ],
1081)
1082
1083grpc_cc_library(
1084    name = "grpc++_xds_client",
1085    srcs = [
1086        "src/cpp/client/xds_credentials.cc",
1087    ],
1088    hdrs = [
1089        "src/cpp/client/secure_credentials.h",
1090    ],
1091    external_deps = [
1092        "absl/log:check",
1093        "absl/strings",
1094    ],
1095    language = "c++",
1096    deps = [
1097        "exec_ctx",
1098        "gpr",
1099        "grpc",
1100        "grpc++_base",
1101        "grpc_base",
1102        "grpc_public_hdrs",
1103        "grpc_security_base",
1104    ],
1105)
1106
1107grpc_cc_library(
1108    name = "grpc++_xds_server",
1109    srcs = [
1110        "src/cpp/server/xds_server_builder.cc",
1111        "src/cpp/server/xds_server_credentials.cc",
1112    ],
1113    hdrs = [
1114        "src/cpp/server/secure_server_credentials.h",
1115    ],
1116    external_deps = [
1117        "absl/log:check",
1118    ],
1119    language = "c++",
1120    public_hdrs = [
1121        "include/grpcpp/xds_server_builder.h",
1122    ],
1123    visibility = ["@grpc:xds"],
1124    deps = [
1125        "channel_arg_names",
1126        "gpr",
1127        "grpc",
1128        "grpc++_base",
1129        "//src/core:xds_enabled_server",
1130    ],
1131)
1132
1133# TODO(hork): restructure the grpc++_unsecure and grpc++ build targets in a
1134# similar way to how the grpc_unsecure and grpc targets were restructured in
1135# #25586
1136grpc_cc_library(
1137    name = "grpc++_unsecure",
1138    srcs = [
1139        "src/cpp/client/insecure_credentials.cc",
1140        "src/cpp/common/insecure_create_auth_context.cc",
1141        "src/cpp/server/insecure_server_credentials.cc",
1142    ],
1143    external_deps = [
1144        "absl/functional:any_invocable",
1145        "absl/log:check",
1146        "absl/log:log",
1147        "absl/log:absl_check",
1148        "absl/log:absl_log",
1149        "absl/status",
1150        "absl/status:statusor",
1151        "absl/strings",
1152        "absl/strings:cord",
1153        "absl/synchronization",
1154    ],
1155    language = "c++",
1156    public_hdrs = GRPCXX_PUBLIC_HDRS,
1157    tags = [
1158        "avoid_dep",
1159        "nofixdeps",
1160    ],
1161    visibility = ["@grpc:public"],
1162    deps = [
1163        "channel_arg_names",
1164        "generic_stub_internal",
1165        "global_callback_hook",
1166        "gpr",
1167        "grpc++_base_unsecure",
1168        "grpc++_codegen_proto",
1169        "grpc++_config_proto",
1170        "grpc_core_credentials_header",
1171        "grpc_public_hdrs",
1172        "grpc_security_base",
1173        "grpc_unsecure",
1174        "//src/core:gpr_atm",
1175        "//src/core:grpc_insecure_credentials",
1176    ],
1177)
1178
1179grpc_cc_library(
1180    name = "grpc++_error_details",
1181    srcs = [
1182        "src/cpp/util/error_details.cc",
1183    ],
1184    hdrs = [
1185        "include/grpc++/support/error_details.h",
1186        "include/grpcpp/support/error_details.h",
1187    ],
1188    language = "c++",
1189    standalone = True,
1190    visibility = ["@grpc:public"],
1191    deps = ["grpc++"],
1192)
1193
1194grpc_cc_library(
1195    name = "grpc++_alts",
1196    srcs = [
1197        "src/cpp/common/alts_context.cc",
1198        "src/cpp/common/alts_util.cc",
1199    ],
1200    hdrs = [
1201        "include/grpcpp/security/alts_context.h",
1202        "include/grpcpp/security/alts_util.h",
1203    ],
1204    external_deps = [
1205        "absl/log:log",
1206        "@com_google_protobuf//upb:base",
1207        "@com_google_protobuf//upb:mem",
1208        "@com_google_protobuf//upb:message",
1209    ],
1210    language = "c++",
1211    standalone = True,
1212    visibility = ["@grpc:public"],
1213    deps = [
1214        "alts_upb",
1215        "gpr",
1216        "grpc++",
1217        "grpc_base",
1218        "tsi_alts_credentials",
1219    ],
1220)
1221
1222grpc_cc_library(
1223    name = "census",
1224    srcs = [
1225        "//src/core:ext/filters/census/grpc_context.cc",
1226    ],
1227    language = "c++",
1228    public_hdrs = [
1229        "include/grpc/census.h",
1230    ],
1231    visibility = ["@grpc:public"],
1232    deps = [
1233        "gpr",
1234        "grpc_base",
1235        "grpc_public_hdrs",
1236        "grpc_trace",
1237        "//src/core:arena",
1238    ],
1239)
1240
1241# A library that vends only port_platform, so that libraries that don't need
1242# anything else from gpr can still be portable!
1243grpc_cc_library(
1244    name = "gpr_platform",
1245    language = "c++",
1246    public_hdrs = [
1247        "include/grpc/impl/codegen/port_platform.h",
1248        "include/grpc/support/port_platform.h",
1249    ],
1250)
1251
1252grpc_cc_library(
1253    name = "event_engine_base_hdrs",
1254    hdrs = GRPC_PUBLIC_EVENT_ENGINE_HDRS + GRPC_PUBLIC_HDRS,
1255    external_deps = [
1256        "absl/status",
1257        "absl/status:statusor",
1258        "absl/time",
1259        "absl/types:optional",
1260        "absl/functional:any_invocable",
1261    ],
1262    tags = [
1263        "nofixdeps",
1264    ],
1265    visibility = ["@grpc:event_engine_base_hdrs"],
1266    deps = [
1267        "channel_arg_names",
1268        "gpr",
1269    ],
1270)
1271
1272grpc_cc_library(
1273    name = "channelz",
1274    srcs = [
1275        "//src/core:channelz/channel_trace.cc",
1276        "//src/core:channelz/channelz.cc",
1277        "//src/core:channelz/channelz_registry.cc",
1278    ],
1279    hdrs = [
1280        "//src/core:channelz/channel_trace.h",
1281        "//src/core:channelz/channelz.h",
1282        "//src/core:channelz/channelz_registry.h",
1283    ],
1284    external_deps = [
1285        "absl/base:core_headers",
1286        "absl/log:check",
1287        "absl/log:log",
1288        "absl/status:statusor",
1289        "absl/strings",
1290        "absl/types:optional",
1291    ],
1292    language = "c++",
1293    deps = [
1294        "exec_ctx",
1295        "gpr",
1296        "grpc_public_hdrs",
1297        "parse_address",
1298        "ref_counted_ptr",
1299        "sockaddr_utils",
1300        "uri",
1301        "//src/core:channel_args",
1302        "//src/core:connectivity_state",
1303        "//src/core:json",
1304        "//src/core:json_writer",
1305        "//src/core:per_cpu",
1306        "//src/core:ref_counted",
1307        "//src/core:resolved_address",
1308        "//src/core:slice",
1309        "//src/core:time",
1310        "//src/core:useful",
1311    ],
1312)
1313
1314grpc_cc_library(
1315    name = "dynamic_annotations",
1316    hdrs = [
1317        "//src/core:lib/iomgr/dynamic_annotations.h",
1318    ],
1319    language = "c++",
1320    deps = [
1321        "gpr_public_hdrs",
1322    ],
1323)
1324
1325grpc_cc_library(
1326    name = "call_combiner",
1327    srcs = [
1328        "//src/core:lib/iomgr/call_combiner.cc",
1329    ],
1330    hdrs = [
1331        "//src/core:lib/iomgr/call_combiner.h",
1332    ],
1333    external_deps = [
1334        "absl/container:inlined_vector",
1335        "absl/log:check",
1336        "absl/log:log",
1337    ],
1338    language = "c++",
1339    deps = [
1340        "dynamic_annotations",
1341        "exec_ctx",
1342        "gpr",
1343        "ref_counted_ptr",
1344        "stats",
1345        "//src/core:closure",
1346        "//src/core:gpr_atm",
1347        "//src/core:ref_counted",
1348        "//src/core:stats_data",
1349    ],
1350)
1351
1352grpc_cc_library(
1353    name = "resource_quota_api",
1354    srcs = [
1355        "//src/core:lib/resource_quota/api.cc",
1356    ],
1357    hdrs = [
1358        "//src/core:lib/resource_quota/api.h",
1359    ],
1360    external_deps = [
1361        "absl/strings",
1362    ],
1363    language = "c++",
1364    visibility = ["@grpc:alt_grpc_base_legacy"],
1365    deps = [
1366        "channel_arg_names",
1367        "config",
1368        "event_engine_base_hdrs",
1369        "exec_ctx",
1370        "gpr_public_hdrs",
1371        "grpc_public_hdrs",
1372        "ref_counted_ptr",
1373        "//src/core:channel_args",
1374        "//src/core:memory_quota",
1375        "//src/core:resource_quota",
1376        "//src/core:thread_quota",
1377    ],
1378)
1379
1380grpc_cc_library(
1381    name = "byte_buffer",
1382    srcs = [
1383        "//src/core:lib/surface/byte_buffer.cc",
1384        "//src/core:lib/surface/byte_buffer_reader.cc",
1385    ],
1386    external_deps = [
1387        "absl/log:check",
1388    ],
1389    language = "c++",
1390    deps = [
1391        "exec_ctx",
1392        "gpr_public_hdrs",
1393        "grpc_public_hdrs",
1394        "//src/core:compression",
1395        "//src/core:slice",
1396    ],
1397)
1398
1399grpc_cc_library(
1400    name = "iomgr",
1401    srcs = [
1402        "//src/core:lib/iomgr/cfstream_handle.cc",
1403        "//src/core:lib/iomgr/dualstack_socket_posix.cc",
1404        "//src/core:lib/iomgr/endpoint.cc",
1405        "//src/core:lib/iomgr/endpoint_cfstream.cc",
1406        "//src/core:lib/iomgr/endpoint_pair_posix.cc",
1407        "//src/core:lib/iomgr/endpoint_pair_windows.cc",
1408        "//src/core:lib/iomgr/error_cfstream.cc",
1409        "//src/core:lib/iomgr/ev_apple.cc",
1410        "//src/core:lib/iomgr/ev_epoll1_linux.cc",
1411        "//src/core:lib/iomgr/ev_poll_posix.cc",
1412        "//src/core:lib/iomgr/ev_posix.cc",
1413        "//src/core:lib/iomgr/fork_posix.cc",
1414        "//src/core:lib/iomgr/fork_windows.cc",
1415        "//src/core:lib/iomgr/iocp_windows.cc",
1416        "//src/core:lib/iomgr/iomgr.cc",
1417        "//src/core:lib/iomgr/iomgr_posix.cc",
1418        "//src/core:lib/iomgr/iomgr_posix_cfstream.cc",
1419        "//src/core:lib/iomgr/iomgr_windows.cc",
1420        "//src/core:lib/iomgr/lockfree_event.cc",
1421        "//src/core:lib/iomgr/polling_entity.cc",
1422        "//src/core:lib/iomgr/pollset.cc",
1423        "//src/core:lib/iomgr/pollset_set_windows.cc",
1424        "//src/core:lib/iomgr/pollset_windows.cc",
1425        "//src/core:lib/iomgr/resolve_address.cc",
1426        "//src/core:lib/iomgr/resolve_address_posix.cc",
1427        "//src/core:lib/iomgr/resolve_address_windows.cc",
1428        "//src/core:lib/iomgr/socket_factory_posix.cc",
1429        "//src/core:lib/iomgr/socket_utils_common_posix.cc",
1430        "//src/core:lib/iomgr/socket_utils_linux.cc",
1431        "//src/core:lib/iomgr/socket_utils_posix.cc",
1432        "//src/core:lib/iomgr/socket_windows.cc",
1433        "//src/core:lib/iomgr/systemd_utils.cc",
1434        "//src/core:lib/iomgr/tcp_client.cc",
1435        "//src/core:lib/iomgr/tcp_client_cfstream.cc",
1436        "//src/core:lib/iomgr/tcp_client_posix.cc",
1437        "//src/core:lib/iomgr/tcp_client_windows.cc",
1438        "//src/core:lib/iomgr/tcp_posix.cc",
1439        "//src/core:lib/iomgr/tcp_server.cc",
1440        "//src/core:lib/iomgr/tcp_server_posix.cc",
1441        "//src/core:lib/iomgr/tcp_server_utils_posix_common.cc",
1442        "//src/core:lib/iomgr/tcp_server_utils_posix_ifaddrs.cc",
1443        "//src/core:lib/iomgr/tcp_server_utils_posix_noifaddrs.cc",
1444        "//src/core:lib/iomgr/tcp_server_windows.cc",
1445        "//src/core:lib/iomgr/tcp_windows.cc",
1446        "//src/core:lib/iomgr/unix_sockets_posix.cc",
1447        "//src/core:lib/iomgr/unix_sockets_posix_noop.cc",
1448        "//src/core:lib/iomgr/vsock.cc",
1449        "//src/core:lib/iomgr/wakeup_fd_eventfd.cc",
1450        "//src/core:lib/iomgr/wakeup_fd_nospecial.cc",
1451        "//src/core:lib/iomgr/wakeup_fd_pipe.cc",
1452        "//src/core:lib/iomgr/wakeup_fd_posix.cc",
1453        "//src/core:util/gethostname_fallback.cc",
1454        "//src/core:util/gethostname_host_name_max.cc",
1455        "//src/core:util/gethostname_sysconf.cc",
1456    ] +
1457    # TODO(vigneshbabu): remove these
1458    # These headers used to be vended by this target, but they have to be
1459    # removed after landing EventEngine.
1460    [
1461        "//src/core:lib/iomgr/event_engine_shims/closure.cc",
1462        "//src/core:lib/iomgr/event_engine_shims/endpoint.cc",
1463        "//src/core:lib/iomgr/event_engine_shims/tcp_client.cc",
1464    ],
1465    hdrs = [
1466        "//src/core:lib/iomgr/block_annotate.h",
1467        "//src/core:lib/iomgr/cfstream_handle.h",
1468        "//src/core:lib/iomgr/endpoint.h",
1469        "//src/core:lib/iomgr/endpoint_cfstream.h",
1470        "//src/core:lib/iomgr/endpoint_pair.h",
1471        "//src/core:lib/iomgr/error_cfstream.h",
1472        "//src/core:lib/iomgr/ev_apple.h",
1473        "//src/core:lib/iomgr/ev_epoll1_linux.h",
1474        "//src/core:lib/iomgr/ev_poll_posix.h",
1475        "//src/core:lib/iomgr/ev_posix.h",
1476        "//src/core:lib/iomgr/iocp_windows.h",
1477        "//src/core:lib/iomgr/iomgr.h",
1478        "//src/core:lib/iomgr/lockfree_event.h",
1479        "//src/core:lib/iomgr/nameser.h",
1480        "//src/core:lib/iomgr/polling_entity.h",
1481        "//src/core:lib/iomgr/pollset.h",
1482        "//src/core:lib/iomgr/pollset_set_windows.h",
1483        "//src/core:lib/iomgr/pollset_windows.h",
1484        "//src/core:lib/iomgr/python_util.h",
1485        "//src/core:lib/iomgr/resolve_address.h",
1486        "//src/core:lib/iomgr/resolve_address_impl.h",
1487        "//src/core:lib/iomgr/resolve_address_posix.h",
1488        "//src/core:lib/iomgr/resolve_address_windows.h",
1489        "//src/core:lib/iomgr/sockaddr.h",
1490        "//src/core:lib/iomgr/sockaddr_posix.h",
1491        "//src/core:lib/iomgr/sockaddr_windows.h",
1492        "//src/core:lib/iomgr/socket_factory_posix.h",
1493        "//src/core:lib/iomgr/socket_utils_posix.h",
1494        "//src/core:lib/iomgr/socket_windows.h",
1495        "//src/core:lib/iomgr/systemd_utils.h",
1496        "//src/core:lib/iomgr/tcp_client.h",
1497        "//src/core:lib/iomgr/tcp_client_posix.h",
1498        "//src/core:lib/iomgr/tcp_posix.h",
1499        "//src/core:lib/iomgr/tcp_server.h",
1500        "//src/core:lib/iomgr/tcp_server_utils_posix.h",
1501        "//src/core:lib/iomgr/tcp_windows.h",
1502        "//src/core:lib/iomgr/unix_sockets_posix.h",
1503        "//src/core:lib/iomgr/vsock.h",
1504        "//src/core:lib/iomgr/wakeup_fd_pipe.h",
1505        "//src/core:lib/iomgr/wakeup_fd_posix.h",
1506        "//src/core:util/gethostname.h",
1507    ] +
1508    # TODO(vigneshbabu): remove these
1509    # These headers used to be vended by this target, but they have to be
1510    # removed after landing EventEngine.
1511    [
1512        "//src/core:lib/iomgr/event_engine_shims/closure.h",
1513        "//src/core:lib/iomgr/event_engine_shims/endpoint.h",
1514        "//src/core:lib/iomgr/event_engine_shims/tcp_client.h",
1515    ],
1516    defines = select({
1517        "systemd": ["HAVE_LIBSYSTEMD"],
1518        "//conditions:default": [],
1519    }),
1520    external_deps = [
1521        "absl/base:core_headers",
1522        "absl/container:flat_hash_map",
1523        "absl/container:flat_hash_set",
1524        "absl/functional:any_invocable",
1525        "absl/log",
1526        "absl/log:check",
1527        "absl/status",
1528        "absl/status:statusor",
1529        "absl/strings",
1530        "absl/strings:str_format",
1531        "absl/time",
1532        "absl/types:optional",
1533        "absl/utility",
1534    ],
1535    language = "c++",
1536    linkopts = select({
1537        "systemd": ["-lsystemd"],
1538        "//conditions:default": [],
1539    }),
1540    public_hdrs = GRPC_PUBLIC_HDRS + GRPC_PUBLIC_EVENT_ENGINE_HDRS,
1541    visibility = ["@grpc:alt_grpc_base_legacy"],
1542    deps = [
1543        "byte_buffer",
1544        "channel_arg_names",
1545        "config_vars",
1546        "debug_location",
1547        "exec_ctx",
1548        "gpr",
1549        "grpc_core_credentials_header",
1550        "grpc_public_hdrs",
1551        "grpc_trace",
1552        "iomgr_buffer_list",
1553        "iomgr_internal_errqueue",
1554        "iomgr_timer",
1555        "orphanable",
1556        "parse_address",
1557        "resource_quota_api",
1558        "sockaddr_utils",
1559        "stats",
1560        "//src/core:channel_args",
1561        "//src/core:channel_args_endpoint_config",
1562        "//src/core:closure",
1563        "//src/core:construct_destruct",
1564        "//src/core:context",
1565        "//src/core:default_event_engine",
1566        "//src/core:error",
1567        "//src/core:error_utils",
1568        "//src/core:event_engine_common",
1569        "//src/core:event_engine_extensions",
1570        "//src/core:event_engine_memory_allocator_factory",
1571        "//src/core:event_engine_query_extensions",
1572        "//src/core:event_engine_shim",
1573        "//src/core:event_engine_tcp_socket_utils",
1574        "//src/core:event_log",
1575        "//src/core:experiments",
1576        "//src/core:gpr_atm",
1577        "//src/core:gpr_manual_constructor",
1578        "//src/core:grpc_sockaddr",
1579        "//src/core:init_internally",
1580        "//src/core:iomgr_fwd",
1581        "//src/core:iomgr_port",
1582        "//src/core:memory_quota",
1583        "//src/core:no_destruct",
1584        "//src/core:pollset_set",
1585        "//src/core:posix_event_engine_base_hdrs",
1586        "//src/core:posix_event_engine_endpoint",
1587        "//src/core:resolved_address",
1588        "//src/core:resource_quota",
1589        "//src/core:slice",
1590        "//src/core:slice_buffer",
1591        "//src/core:slice_cast",
1592        "//src/core:slice_refcount",
1593        "//src/core:socket_mutator",
1594        "//src/core:stats_data",
1595        "//src/core:strerror",
1596        "//src/core:time",
1597        "//src/core:useful",
1598        "//src/core:windows_event_engine",
1599        "//src/core:windows_event_engine_listener",
1600    ],
1601)
1602
1603grpc_cc_library(
1604    name = "call_tracer",
1605    srcs = [
1606        "//src/core:telemetry/call_tracer.cc",
1607    ],
1608    hdrs = [
1609        "//src/core:telemetry/call_tracer.h",
1610    ],
1611    external_deps = [
1612        "absl/log:check",
1613        "absl/status",
1614        "absl/strings",
1615        "absl/types:optional",
1616    ],
1617    language = "c++",
1618    visibility = ["@grpc:alt_grpc_base_legacy"],
1619    deps = [
1620        "gpr",
1621        "tcp_tracer",
1622        "//src/core:arena",
1623        "//src/core:call_final_info",
1624        "//src/core:channel_args",
1625        "//src/core:context",
1626        "//src/core:error",
1627        "//src/core:metadata_batch",
1628        "//src/core:ref_counted_string",
1629        "//src/core:slice_buffer",
1630    ],
1631)
1632
1633grpc_cc_library(
1634    name = "channel",
1635    srcs = [
1636        "//src/core:lib/surface/channel.cc",
1637    ],
1638    hdrs = [
1639        "//src/core:lib/surface/channel.h",
1640    ],
1641    external_deps = [
1642        "absl/base:core_headers",
1643        "absl/log:check",
1644        "absl/status:statusor",
1645        "absl/strings",
1646        "absl/types:optional",
1647    ],
1648    language = "c++",
1649    visibility = ["@grpc:alt_grpc_base_legacy"],
1650    deps = [
1651        "channel_arg_names",
1652        "channelz",
1653        "cpp_impl_of",
1654        "event_engine_base_hdrs",
1655        "exec_ctx",
1656        "gpr",
1657        "grpc_public_hdrs",
1658        "grpc_trace",
1659        "ref_counted_ptr",
1660        "stats",
1661        "//src/core:arena",
1662        "//src/core:call_arena_allocator",
1663        "//src/core:call_destination",
1664        "//src/core:channel_args",
1665        "//src/core:channel_stack_type",
1666        "//src/core:compression",
1667        "//src/core:connectivity_state",
1668        "//src/core:iomgr_fwd",
1669        "//src/core:ref_counted",
1670        "//src/core:resource_quota",
1671        "//src/core:slice",
1672        "//src/core:stats_data",
1673        "//src/core:time",
1674    ],
1675)
1676
1677grpc_cc_library(
1678    name = "legacy_channel",
1679    srcs = [
1680        "//src/core:lib/surface/legacy_channel.cc",
1681    ],
1682    hdrs = [
1683        "//src/core:lib/surface/legacy_channel.h",
1684    ],
1685    external_deps = [
1686        "absl/base:core_headers",
1687        "absl/log:check",
1688        "absl/log:log",
1689        "absl/status",
1690        "absl/status:statusor",
1691        "absl/types:optional",
1692    ],
1693    language = "c++",
1694    visibility = ["@grpc:alt_grpc_base_legacy"],
1695    deps = [
1696        "channel",
1697        "channelz",
1698        "config",
1699        "exec_ctx",
1700        "gpr",
1701        "grpc_base",
1702        "grpc_client_channel",
1703        "ref_counted_ptr",
1704        "stats",
1705        "//src/core:arena",
1706        "//src/core:call_arena_allocator",
1707        "//src/core:channel_args",
1708        "//src/core:channel_args_endpoint_config",
1709        "//src/core:channel_fwd",
1710        "//src/core:channel_init",
1711        "//src/core:channel_stack_type",
1712        "//src/core:closure",
1713        "//src/core:dual_ref_counted",
1714        "//src/core:error",
1715        "//src/core:init_internally",
1716        "//src/core:iomgr_fwd",
1717        "//src/core:metrics",
1718        "//src/core:resource_quota",
1719        "//src/core:slice",
1720        "//src/core:stats_data",
1721        "//src/core:time",
1722    ],
1723)
1724
1725grpc_cc_library(
1726    name = "channel_create",
1727    srcs = [
1728        "//src/core:lib/surface/channel_create.cc",
1729    ],
1730    hdrs = [
1731        "//src/core:lib/surface/channel_create.h",
1732    ],
1733    external_deps = [
1734        "absl/base:core_headers",
1735        "absl/log:check",
1736        "absl/status:statusor",
1737        "absl/strings",
1738        "absl/types:optional",
1739    ],
1740    language = "c++",
1741    visibility = ["@grpc:alt_grpc_base_legacy"],
1742    deps = [
1743        "channel",
1744        "channel_arg_names",
1745        "channelz",
1746        "config",
1747        "gpr",
1748        "grpc_base",
1749        "grpc_client_channel",
1750        "grpc_public_hdrs",
1751        "legacy_channel",
1752        "ref_counted_ptr",
1753        "stats",
1754        "//src/core:arena",
1755        "//src/core:channel_args",
1756        "//src/core:channel_stack_type",
1757        "//src/core:direct_channel",
1758        "//src/core:experiments",
1759        "//src/core:iomgr_fwd",
1760        "//src/core:ref_counted",
1761        "//src/core:slice",
1762        "//src/core:stats_data",
1763    ],
1764)
1765
1766grpc_cc_library(
1767    name = "server",
1768    srcs = [
1769        "//src/core:server/server.cc",
1770    ],
1771    hdrs = [
1772        "//src/core:server/server.h",
1773    ],
1774    external_deps = [
1775        "absl/base:core_headers",
1776        "absl/cleanup",
1777        "absl/container:flat_hash_map",
1778        "absl/container:flat_hash_set",
1779        "absl/hash",
1780        "absl/log",
1781        "absl/log:check",
1782        "absl/random",
1783        "absl/status",
1784        "absl/status:statusor",
1785        "absl/strings",
1786        "absl/types:optional",
1787    ],
1788    language = "c++",
1789    visibility = ["@grpc:alt_grpc_base_legacy"],
1790    deps = [
1791        "call_combiner",
1792        "call_tracer",
1793        "channel",
1794        "channel_arg_names",
1795        "channelz",
1796        "config",
1797        "cpp_impl_of",
1798        "debug_location",
1799        "exec_ctx",
1800        "gpr",
1801        "grpc_base",
1802        "grpc_public_hdrs",
1803        "grpc_security_base",
1804        "grpc_trace",
1805        "iomgr",
1806        "legacy_channel",
1807        "orphanable",
1808        "promise",
1809        "ref_counted_ptr",
1810        "sockaddr_utils",
1811        "stats",
1812        "//src/core:activity",
1813        "//src/core:arena_promise",
1814        "//src/core:cancel_callback",
1815        "//src/core:channel_args",
1816        "//src/core:channel_args_preconditioning",
1817        "//src/core:channel_fwd",
1818        "//src/core:channel_stack_type",
1819        "//src/core:closure",
1820        "//src/core:connection_quota",
1821        "//src/core:connectivity_state",
1822        "//src/core:context",
1823        "//src/core:dual_ref_counted",
1824        "//src/core:error",
1825        "//src/core:error_utils",
1826        "//src/core:experiments",
1827        "//src/core:interception_chain",
1828        "//src/core:iomgr_fwd",
1829        "//src/core:map",
1830        "//src/core:metadata_batch",
1831        "//src/core:pipe",
1832        "//src/core:poll",
1833        "//src/core:pollset_set",
1834        "//src/core:random_early_detection",
1835        "//src/core:resolved_address",
1836        "//src/core:seq",
1837        "//src/core:server_interface",
1838        "//src/core:slice",
1839        "//src/core:slice_buffer",
1840        "//src/core:status_helper",
1841        "//src/core:time",
1842        "//src/core:try_join",
1843        "//src/core:try_seq",
1844        "//src/core:useful",
1845    ],
1846)
1847
1848grpc_cc_library(
1849    name = "grpc_base",
1850    srcs = [
1851        "//src/core:lib/channel/channel_stack.cc",
1852        "//src/core:lib/channel/channel_stack_builder_impl.cc",
1853        "//src/core:lib/channel/connected_channel.cc",
1854        "//src/core:lib/channel/promise_based_filter.cc",
1855        "//src/core:lib/channel/status_util.cc",
1856        "//src/core:lib/compression/message_compress.cc",
1857        "//src/core:lib/surface/call.cc",
1858        "//src/core:lib/surface/call_details.cc",
1859        "//src/core:lib/surface/call_log_batch.cc",
1860        "//src/core:lib/surface/call_utils.cc",
1861        "//src/core:lib/surface/client_call.cc",
1862        "//src/core:lib/surface/completion_queue.cc",
1863        "//src/core:lib/surface/completion_queue_factory.cc",
1864        "//src/core:lib/surface/event_string.cc",
1865        "//src/core:lib/surface/filter_stack_call.cc",
1866        "//src/core:lib/surface/lame_client.cc",
1867        "//src/core:lib/surface/metadata_array.cc",
1868        "//src/core:lib/surface/server_call.cc",
1869        "//src/core:lib/surface/validate_metadata.cc",
1870        "//src/core:lib/surface/version.cc",
1871        "//src/core:lib/transport/transport.cc",
1872        "//src/core:lib/transport/transport_op_string.cc",
1873    ],
1874    hdrs = [
1875        "//src/core:lib/channel/channel_stack.h",
1876        "//src/core:lib/channel/channel_stack_builder_impl.h",
1877        "//src/core:lib/channel/connected_channel.h",
1878        "//src/core:lib/channel/promise_based_filter.h",
1879        "//src/core:lib/channel/status_util.h",
1880        "//src/core:lib/compression/message_compress.h",
1881        "//src/core:lib/surface/call.h",
1882        "//src/core:lib/surface/call_test_only.h",
1883        "//src/core:lib/surface/call_utils.h",
1884        "//src/core:lib/surface/client_call.h",
1885        "//src/core:lib/surface/completion_queue.h",
1886        "//src/core:lib/surface/completion_queue_factory.h",
1887        "//src/core:lib/surface/event_string.h",
1888        "//src/core:lib/surface/filter_stack_call.h",
1889        "//src/core:lib/surface/init.h",
1890        "//src/core:lib/surface/lame_client.h",
1891        "//src/core:lib/surface/server_call.h",
1892        "//src/core:lib/surface/validate_metadata.h",
1893        "//src/core:lib/transport/transport.h",
1894    ],
1895    defines = select({
1896        "systemd": ["HAVE_LIBSYSTEMD"],
1897        "//conditions:default": [],
1898    }),
1899    external_deps = [
1900        "absl/base:core_headers",
1901        "absl/container:flat_hash_map",
1902        "absl/container:inlined_vector",
1903        "absl/functional:any_invocable",
1904        "absl/functional:function_ref",
1905        "absl/log",
1906        "absl/log:check",
1907        "absl/meta:type_traits",
1908        "absl/status",
1909        "absl/status:statusor",
1910        "absl/strings",
1911        "absl/strings:str_format",
1912        "absl/time",
1913        "absl/types:optional",
1914        "absl/utility",
1915        "madler_zlib",
1916    ],
1917    language = "c++",
1918    linkopts = select({
1919        "systemd": ["-lsystemd"],
1920        "//conditions:default": [],
1921    }),
1922    public_hdrs = GRPC_PUBLIC_HDRS + GRPC_PUBLIC_EVENT_ENGINE_HDRS,
1923    visibility = ["@grpc:alt_grpc_base_legacy"],
1924    deps = [
1925        "call_combiner",
1926        "call_tracer",
1927        "channel",
1928        "channel_arg_names",
1929        "channel_stack_builder",
1930        "channelz",
1931        "config",
1932        "cpp_impl_of",
1933        "debug_location",
1934        "exec_ctx",
1935        "gpr",
1936        "grpc_core_credentials_header",
1937        "grpc_public_hdrs",
1938        "grpc_trace",
1939        "iomgr",
1940        "iomgr_timer",
1941        "orphanable",
1942        "promise",
1943        "ref_counted_ptr",
1944        "stats",
1945        "//src/core:1999",
1946        "//src/core:activity",
1947        "//src/core:all_ok",
1948        "//src/core:arena",
1949        "//src/core:arena_promise",
1950        "//src/core:atomic_utils",
1951        "//src/core:bitset",
1952        "//src/core:blackboard",
1953        "//src/core:call_destination",
1954        "//src/core:call_filters",
1955        "//src/core:call_final_info",
1956        "//src/core:call_finalization",
1957        "//src/core:call_spine",
1958        "//src/core:cancel_callback",
1959        "//src/core:channel_args",
1960        "//src/core:channel_args_preconditioning",
1961        "//src/core:channel_fwd",
1962        "//src/core:channel_init",
1963        "//src/core:channel_stack_type",
1964        "//src/core:closure",
1965        "//src/core:compression",
1966        "//src/core:connectivity_state",
1967        "//src/core:context",
1968        "//src/core:default_event_engine",
1969        "//src/core:error",
1970        "//src/core:error_utils",
1971        "//src/core:event_engine_common",
1972        "//src/core:event_engine_context",
1973        "//src/core:experiments",
1974        "//src/core:filter_args",
1975        "//src/core:for_each",
1976        "//src/core:gpr_atm",
1977        "//src/core:gpr_manual_constructor",
1978        "//src/core:gpr_spinlock",
1979        "//src/core:if",
1980        "//src/core:iomgr_fwd",
1981        "//src/core:latch",
1982        "//src/core:latent_see",
1983        "//src/core:loop",
1984        "//src/core:map",
1985        "//src/core:match",
1986        "//src/core:message",
1987        "//src/core:metadata",
1988        "//src/core:metadata_batch",
1989        "//src/core:metrics",
1990        "//src/core:no_destruct",
1991        "//src/core:pipe",
1992        "//src/core:poll",
1993        "//src/core:promise_status",
1994        "//src/core:race",
1995        "//src/core:ref_counted",
1996        "//src/core:seq",
1997        "//src/core:server_interface",
1998        "//src/core:single_set_ptr",
1999        "//src/core:slice",
2000        "//src/core:slice_buffer",
2001        "//src/core:slice_cast",
2002        "//src/core:slice_refcount",
2003        "//src/core:stats_data",
2004        "//src/core:status_flag",
2005        "//src/core:status_helper",
2006        "//src/core:time",
2007        "//src/core:transport_fwd",
2008        "//src/core:try_seq",
2009        "//src/core:unique_type_name",
2010        "//src/core:useful",
2011    ],
2012)
2013
2014grpc_cc_library(
2015    name = "lb_load_data_store",
2016    srcs = [
2017        "src/cpp/server/load_reporter/load_data_store.cc",
2018    ],
2019    hdrs = [
2020        "src/cpp/server/load_reporter/constants.h",
2021        "src/cpp/server/load_reporter/load_data_store.h",
2022    ],
2023    external_deps = [
2024        "absl/log:check",
2025        "absl/log:log",
2026    ],
2027    language = "c++",
2028    deps = [
2029        "gpr",
2030        "gpr_platform",
2031        "grpc++",
2032        "//src/core:grpc_sockaddr",
2033    ],
2034)
2035
2036grpc_cc_library(
2037    name = "lb_server_load_reporting_service_server_builder_plugin",
2038    srcs = [
2039        "src/cpp/server/load_reporter/load_reporting_service_server_builder_plugin.cc",
2040    ],
2041    hdrs = [
2042        "src/cpp/server/load_reporter/load_reporting_service_server_builder_plugin.h",
2043    ],
2044    language = "c++",
2045    deps = [
2046        "gpr_platform",
2047        "grpc++",
2048        "lb_load_reporter_service",
2049    ],
2050)
2051
2052grpc_cc_library(
2053    name = "grpcpp_server_load_reporting",
2054    srcs = [
2055        "src/cpp/server/load_reporter/load_reporting_service_server_builder_option.cc",
2056        "src/cpp/server/load_reporter/util.cc",
2057    ],
2058    external_deps = [
2059        "absl/log:log",
2060    ],
2061    language = "c++",
2062    public_hdrs = [
2063        "include/grpcpp/ext/server_load_reporting.h",
2064    ],
2065    tags = ["nofixdeps"],
2066    deps = [
2067        "channel_arg_names",
2068        "gpr",
2069        "gpr_platform",
2070        "grpc",
2071        "grpc++",
2072        "grpc++_public_hdrs",
2073        "grpc_public_hdrs",
2074        "lb_server_load_reporting_service_server_builder_plugin",
2075        "//src/core:lb_server_load_reporting_filter",
2076    ],
2077)
2078
2079grpc_cc_library(
2080    name = "lb_load_reporter_service",
2081    srcs = [
2082        "src/cpp/server/load_reporter/load_reporter_async_service_impl.cc",
2083    ],
2084    hdrs = [
2085        "src/cpp/server/load_reporter/load_reporter_async_service_impl.h",
2086    ],
2087    external_deps = [
2088        "absl/log:check",
2089        "absl/log:log",
2090        "absl/memory",
2091        "protobuf_headers",
2092    ],
2093    language = "c++",
2094    tags = ["nofixdeps"],
2095    deps = [
2096        ":gpr",
2097        ":grpc++",
2098        ":lb_load_reporter",
2099        "//src/proto/grpc/lb/v1:load_reporter_cc_grpc",
2100    ],
2101)
2102
2103grpc_cc_library(
2104    name = "lb_get_cpu_stats",
2105    srcs = [
2106        "src/cpp/server/load_reporter/get_cpu_stats_linux.cc",
2107        "src/cpp/server/load_reporter/get_cpu_stats_macos.cc",
2108        "src/cpp/server/load_reporter/get_cpu_stats_unsupported.cc",
2109        "src/cpp/server/load_reporter/get_cpu_stats_windows.cc",
2110    ],
2111    hdrs = [
2112        "src/cpp/server/load_reporter/get_cpu_stats.h",
2113    ],
2114    external_deps = [
2115        "absl/log:log",
2116    ],
2117    language = "c++",
2118    deps = [
2119        "gpr",
2120        "gpr_platform",
2121    ],
2122)
2123
2124grpc_cc_library(
2125    name = "lb_load_reporter",
2126    srcs = [
2127        "src/cpp/server/load_reporter/load_reporter.cc",
2128    ],
2129    hdrs = [
2130        "src/cpp/server/load_reporter/constants.h",
2131        "src/cpp/server/load_reporter/load_reporter.h",
2132    ],
2133    external_deps = [
2134        "absl/log:check",
2135        "absl/log:log",
2136        "opencensus-stats",
2137        "opencensus-tags",
2138        "protobuf_headers",
2139    ],
2140    language = "c++",
2141    tags = ["nofixdeps"],
2142    deps = [
2143        "gpr",
2144        "lb_get_cpu_stats",
2145        "lb_load_data_store",
2146        "//src/proto/grpc/lb/v1:load_reporter_cc_grpc",
2147    ],
2148)
2149
2150grpc_cc_library(
2151    name = "grpc_security_base",
2152    srcs = [
2153        "//src/core:handshaker/security/secure_endpoint.cc",
2154        "//src/core:handshaker/security/security_handshaker.cc",
2155        "//src/core:lib/security/context/security_context.cc",
2156        "//src/core:lib/security/credentials/call_creds_util.cc",
2157        "//src/core:lib/security/credentials/composite/composite_credentials.cc",
2158        "//src/core:lib/security/credentials/credentials.cc",
2159        "//src/core:lib/security/credentials/plugin/plugin_credentials.cc",
2160        "//src/core:lib/security/security_connector/security_connector.cc",
2161        "//src/core:lib/security/transport/client_auth_filter.cc",
2162        "//src/core:lib/security/transport/server_auth_filter.cc",
2163    ],
2164    hdrs = [
2165        "//src/core:handshaker/security/secure_endpoint.h",
2166        "//src/core:handshaker/security/security_handshaker.h",
2167        "//src/core:lib/security/context/security_context.h",
2168        "//src/core:lib/security/credentials/call_creds_util.h",
2169        "//src/core:lib/security/credentials/composite/composite_credentials.h",
2170        "//src/core:lib/security/credentials/credentials.h",
2171        "//src/core:lib/security/credentials/plugin/plugin_credentials.h",
2172        "//src/core:lib/security/security_connector/security_connector.h",
2173        "//src/core:lib/security/transport/auth_filters.h",
2174    ],
2175    external_deps = [
2176        "absl/base:core_headers",
2177        "absl/container:inlined_vector",
2178        "absl/functional:any_invocable",
2179        "absl/log:check",
2180        "absl/log:log",
2181        "absl/status",
2182        "absl/status:statusor",
2183        "absl/strings",
2184        "absl/types:optional",
2185    ],
2186    language = "c++",
2187    public_hdrs = GRPC_PUBLIC_HDRS,
2188    visibility = ["@grpc:public"],
2189    deps = [
2190        "channel_arg_names",
2191        "channelz",
2192        "config",
2193        "debug_location",
2194        "exec_ctx",
2195        "gpr",
2196        "grpc_base",
2197        "grpc_core_credentials_header",
2198        "grpc_public_hdrs",
2199        "grpc_trace",
2200        "handshaker",
2201        "iomgr",
2202        "orphanable",
2203        "promise",
2204        "ref_counted_ptr",
2205        "resource_quota_api",
2206        "stats",
2207        "tsi_base",
2208        "//src/core:activity",
2209        "//src/core:arena",
2210        "//src/core:arena_promise",
2211        "//src/core:channel_args",
2212        "//src/core:channel_fwd",
2213        "//src/core:closure",
2214        "//src/core:connection_context",
2215        "//src/core:context",
2216        "//src/core:error",
2217        "//src/core:event_engine_memory_allocator",
2218        "//src/core:gpr_atm",
2219        "//src/core:handshaker_factory",
2220        "//src/core:handshaker_registry",
2221        "//src/core:iomgr_fwd",
2222        "//src/core:memory_quota",
2223        "//src/core:metadata_batch",
2224        "//src/core:poll",
2225        "//src/core:ref_counted",
2226        "//src/core:resource_quota",
2227        "//src/core:seq",
2228        "//src/core:slice",
2229        "//src/core:slice_refcount",
2230        "//src/core:stats_data",
2231        "//src/core:status_helper",
2232        "//src/core:try_seq",
2233        "//src/core:unique_type_name",
2234        "//src/core:useful",
2235    ],
2236)
2237
2238grpc_cc_library(
2239    name = "tsi_base",
2240    srcs = [
2241        "//src/core:tsi/transport_security.cc",
2242        "//src/core:tsi/transport_security_grpc.cc",
2243    ],
2244    hdrs = [
2245        "//src/core:tsi/transport_security.h",
2246        "//src/core:tsi/transport_security_grpc.h",
2247        "//src/core:tsi/transport_security_interface.h",
2248    ],
2249    language = "c++",
2250    tags = ["nofixdeps"],
2251    visibility = ["@grpc:tsi_interface"],
2252    deps = [
2253        "gpr",
2254        "grpc_public_hdrs",
2255        "grpc_trace",
2256    ],
2257)
2258
2259# TODO(hork): split credentials types into their own source files and targets.
2260grpc_cc_library(
2261    name = "grpc_core_credentials_header",
2262    hdrs = ["include/grpc/credentials.h"],
2263    language = "c++",
2264    visibility = ["@grpc:core_credentials"],
2265)
2266
2267grpc_cc_library(
2268    name = "alts_util",
2269    srcs = [
2270        "//src/core:lib/security/credentials/alts/check_gcp_environment.cc",
2271        "//src/core:lib/security/credentials/alts/check_gcp_environment_linux.cc",
2272        "//src/core:lib/security/credentials/alts/check_gcp_environment_no_op.cc",
2273        "//src/core:lib/security/credentials/alts/check_gcp_environment_windows.cc",
2274        "//src/core:lib/security/credentials/alts/grpc_alts_credentials_client_options.cc",
2275        "//src/core:lib/security/credentials/alts/grpc_alts_credentials_options.cc",
2276        "//src/core:lib/security/credentials/alts/grpc_alts_credentials_server_options.cc",
2277        "//src/core:tsi/alts/handshaker/transport_security_common_api.cc",
2278    ],
2279    hdrs = [
2280        "include/grpc/grpc_security.h",
2281        "//src/core:lib/security/credentials/alts/check_gcp_environment.h",
2282        "//src/core:lib/security/credentials/alts/grpc_alts_credentials_options.h",
2283        "//src/core:tsi/alts/handshaker/transport_security_common_api.h",
2284    ],
2285    external_deps = [
2286        "absl/log:log",
2287        "@com_google_protobuf//upb:base",
2288        "@com_google_protobuf//upb:mem",
2289    ],
2290    language = "c++",
2291    visibility = ["@grpc:tsi"],
2292    deps = [
2293        "alts_upb",
2294        "gpr",
2295        "grpc_core_credentials_header",
2296        "grpc_public_hdrs",
2297    ],
2298)
2299
2300grpc_cc_library(
2301    name = "tsi",
2302    external_deps = [
2303        "libssl",
2304        "libcrypto",
2305        "absl/strings",
2306        "@com_google_protobuf//upb:base",
2307        "@com_google_protobuf//upb:mem",
2308    ],
2309    language = "c++",
2310    tags = ["nofixdeps"],
2311    visibility = ["@grpc:tsi"],
2312    deps = [
2313        "gpr",
2314        "tsi_alts_frame_protector",
2315        "tsi_base",
2316        "tsi_fake_credentials",
2317        "//src/core:tsi_local_credentials",
2318        "//src/core:useful",
2319    ],
2320)
2321
2322grpc_cc_library(
2323    name = "grpc++_base",
2324    srcs = GRPCXX_SRCS + [
2325        "src/cpp/client/insecure_credentials.cc",
2326        "src/cpp/client/secure_credentials.cc",
2327        "src/cpp/common/auth_property_iterator.cc",
2328        "src/cpp/common/secure_auth_context.cc",
2329        "src/cpp/common/secure_create_auth_context.cc",
2330        "src/cpp/common/tls_certificate_provider.cc",
2331        "src/cpp/common/tls_certificate_verifier.cc",
2332        "src/cpp/common/tls_credentials_options.cc",
2333        "src/cpp/server/insecure_server_credentials.cc",
2334        "src/cpp/server/secure_server_credentials.cc",
2335    ],
2336    hdrs = GRPCXX_HDRS + [
2337        "src/cpp/client/secure_credentials.h",
2338        "src/cpp/common/secure_auth_context.h",
2339        "src/cpp/server/secure_server_credentials.h",
2340    ],
2341    external_deps = [
2342        "absl/base:core_headers",
2343        "absl/functional:any_invocable",
2344        "absl/log:check",
2345        "absl/log:log",
2346        "absl/log:absl_check",
2347        "absl/log:absl_log",
2348        "absl/status",
2349        "absl/status:statusor",
2350        "absl/strings",
2351        "absl/strings:cord",
2352        "absl/strings:str_format",
2353        "absl/synchronization",
2354        "absl/memory",
2355        "absl/types:optional",
2356        "@com_google_protobuf//upb:base",
2357        "@com_google_protobuf//upb:mem",
2358        "protobuf_headers",
2359        "absl/container:inlined_vector",
2360    ],
2361    language = "c++",
2362    public_hdrs = GRPCXX_PUBLIC_HDRS,
2363    tags = ["nofixdeps"],
2364    visibility = ["@grpc:alt_grpc++_base_legacy"],
2365    deps = [
2366        "channel_arg_names",
2367        "channel_stack_builder",
2368        "config",
2369        "exec_ctx",
2370        "generic_stub_internal",
2371        "global_callback_hook",
2372        "gpr",
2373        "grpc",
2374        "grpc++_codegen_proto",
2375        "grpc++_config_proto",
2376        "grpc_base",
2377        "grpc_core_credentials_header",
2378        "grpc_credentials_util",
2379        "grpc_health_upb",
2380        "grpc_public_hdrs",
2381        "grpc_security_base",
2382        "grpc_service_config_impl",
2383        "grpc_trace",
2384        "grpcpp_backend_metric_recorder",
2385        "grpcpp_call_metric_recorder",
2386        "grpcpp_status",
2387        "iomgr",
2388        "iomgr_timer",
2389        "ref_counted_ptr",
2390        "resource_quota_api",
2391        "server",
2392        "//src/core:arena",
2393        "//src/core:channel_args",
2394        "//src/core:channel_fwd",
2395        "//src/core:channel_init",
2396        "//src/core:channel_stack_type",
2397        "//src/core:closure",
2398        "//src/core:default_event_engine",
2399        "//src/core:env",
2400        "//src/core:error",
2401        "//src/core:experiments",
2402        "//src/core:gpr_atm",
2403        "//src/core:gpr_manual_constructor",
2404        "//src/core:grpc_audit_logging",
2405        "//src/core:grpc_backend_metric_provider",
2406        "//src/core:grpc_crl_provider",
2407        "//src/core:grpc_service_config",
2408        "//src/core:grpc_tls_credentials",
2409        "//src/core:grpc_transport_chttp2_server",
2410        "//src/core:grpc_transport_inproc",
2411        "//src/core:json",
2412        "//src/core:json_reader",
2413        "//src/core:load_file",
2414        "//src/core:ref_counted",
2415        "//src/core:resource_quota",
2416        "//src/core:slice",
2417        "//src/core:slice_buffer",
2418        "//src/core:slice_refcount",
2419        "//src/core:socket_mutator",
2420        "//src/core:status_helper",
2421        "//src/core:thread_quota",
2422        "//src/core:time",
2423        "//src/core:useful",
2424    ],
2425)
2426
2427# TODO(chengyuc): Give it another try to merge this to `grpc++_base` after
2428# codegen files are removed.
2429grpc_cc_library(
2430    name = "grpc++_base_unsecure",
2431    srcs = GRPCXX_SRCS,
2432    hdrs = GRPCXX_HDRS,
2433    external_deps = [
2434        "absl/base:core_headers",
2435        "absl/functional:any_invocable",
2436        "absl/log:check",
2437        "absl/log:log",
2438        "absl/status",
2439        "absl/status:statusor",
2440        "absl/strings",
2441        "absl/strings:cord",
2442        "absl/synchronization",
2443        "absl/log:absl_check",
2444        "absl/log:absl_log",
2445        "absl/types:optional",
2446        "absl/memory",
2447        "@com_google_protobuf//upb:base",
2448        "@com_google_protobuf//upb:mem",
2449        "absl/strings:str_format",
2450        "protobuf_headers",
2451    ],
2452    language = "c++",
2453    public_hdrs = GRPCXX_PUBLIC_HDRS,
2454    tags = [
2455        "avoid_dep",
2456        "nofixdeps",
2457    ],
2458    visibility = ["@grpc:alt_grpc++_base_unsecure_legacy"],
2459    deps = [
2460        "channel_arg_names",
2461        "channel_stack_builder",
2462        "config",
2463        "exec_ctx",
2464        "generic_stub_internal",
2465        "global_callback_hook",
2466        "gpr",
2467        "grpc_base",
2468        "grpc_core_credentials_header",
2469        "grpc_health_upb",
2470        "grpc_public_hdrs",
2471        "grpc_security_base",
2472        "grpc_service_config_impl",
2473        "grpc_trace",
2474        "grpc_transport_chttp2",
2475        "grpc_unsecure",
2476        "grpcpp_backend_metric_recorder",
2477        "grpcpp_call_metric_recorder",
2478        "grpcpp_status",
2479        "iomgr",
2480        "iomgr_timer",
2481        "ref_counted_ptr",
2482        "resource_quota_api",
2483        "server",
2484        "//src/core:arena",
2485        "//src/core:channel_args",
2486        "//src/core:channel_init",
2487        "//src/core:closure",
2488        "//src/core:default_event_engine",
2489        "//src/core:error",
2490        "//src/core:experiments",
2491        "//src/core:gpr_atm",
2492        "//src/core:gpr_manual_constructor",
2493        "//src/core:grpc_backend_metric_provider",
2494        "//src/core:grpc_insecure_credentials",
2495        "//src/core:grpc_service_config",
2496        "//src/core:grpc_transport_chttp2_server",
2497        "//src/core:grpc_transport_inproc",
2498        "//src/core:ref_counted",
2499        "//src/core:resource_quota",
2500        "//src/core:slice",
2501        "//src/core:socket_mutator",
2502        "//src/core:thread_quota",
2503        "//src/core:time",
2504        "//src/core:useful",
2505    ],
2506)
2507
2508grpc_cc_library(
2509    name = "grpc++_codegen_proto",
2510    hdrs = ["include/grpcpp/impl/generic_serialize.h"],
2511    external_deps = [
2512        "absl/strings:cord",
2513        "protobuf_headers",
2514        "protobuf",
2515    ],
2516    language = "c++",
2517    public_hdrs = [
2518        "include/grpc++/impl/codegen/proto_utils.h",
2519        "include/grpcpp/impl/codegen/proto_buffer_reader.h",
2520        "include/grpcpp/impl/codegen/proto_buffer_writer.h",
2521        "include/grpcpp/impl/codegen/proto_utils.h",
2522        "include/grpcpp/impl/proto_utils.h",
2523    ],
2524    tags = ["nofixdeps"],
2525    visibility = ["@grpc:public"],
2526    deps = [
2527        "grpc++_config_proto",
2528        "grpc++_public_hdrs",
2529        "grpcpp_status",
2530    ],
2531)
2532
2533grpc_cc_library(
2534    name = "grpc++_config_proto",
2535    external_deps = [
2536        "absl/status",
2537        "protobuf_headers",
2538        "protobuf",
2539    ],
2540    language = "c++",
2541    public_hdrs = [
2542        "include/grpc++/impl/codegen/config_protobuf.h",
2543        "include/grpcpp/impl/codegen/config_protobuf.h",
2544    ],
2545    tags = ["nofixdeps"],
2546    visibility = ["@grpc:public"],
2547)
2548
2549grpc_cc_library(
2550    name = "grpc++_reflection",
2551    srcs = [
2552        "src/cpp/ext/proto_server_reflection.cc",
2553        "src/cpp/ext/proto_server_reflection_plugin.cc",
2554    ],
2555    hdrs = [
2556        "src/cpp/ext/proto_server_reflection.h",
2557    ],
2558    external_deps = [
2559        "protobuf_headers",
2560    ],
2561    language = "c++",
2562    public_hdrs = [
2563        "include/grpc++/ext/proto_server_reflection_plugin.h",
2564        "include/grpcpp/ext/proto_server_reflection_plugin.h",
2565    ],
2566    tags = ["nofixdeps"],
2567    visibility = ["@grpc:public"],
2568    deps = [
2569        "config_vars",
2570        "grpc++",
2571        "grpc++_config_proto",
2572        "//src/proto/grpc/reflection/v1:reflection_proto",
2573        "//src/proto/grpc/reflection/v1alpha:reflection_proto",
2574    ],
2575    alwayslink = 1,
2576)
2577
2578grpc_cc_library(
2579    name = "grpcpp_call_metric_recorder",
2580    external_deps = [
2581        "absl/strings",
2582        "absl/types:optional",
2583    ],
2584    language = "c++",
2585    public_hdrs = [
2586        "include/grpcpp/ext/call_metric_recorder.h",
2587    ],
2588    visibility = ["@grpc:public"],
2589    deps = ["grpc++_public_hdrs"],
2590)
2591
2592grpc_cc_library(
2593    name = "grpcpp_backend_metric_recorder",
2594    srcs = [
2595        "src/cpp/server/backend_metric_recorder.cc",
2596    ],
2597    hdrs = [
2598        "src/cpp/server/backend_metric_recorder.h",
2599    ],
2600    external_deps = [
2601        "absl/base:core_headers",
2602        "absl/log:log",
2603        "absl/strings",
2604    ],
2605    language = "c++",
2606    public_hdrs = [
2607        "include/grpcpp/ext/server_metric_recorder.h",
2608    ],
2609    visibility = ["@grpc:public"],
2610    deps = [
2611        "gpr",
2612        "grpc++_public_hdrs",
2613        "grpc_trace",
2614        "grpcpp_call_metric_recorder",
2615        "//src/core:grpc_backend_metric_data",
2616        "//src/core:grpc_backend_metric_provider",
2617    ],
2618)
2619
2620grpc_cc_library(
2621    name = "grpcpp_orca_service",
2622    srcs = [
2623        "src/cpp/server/orca/orca_service.cc",
2624    ],
2625    hdrs = [
2626        "src/cpp/server/orca/orca_service.h",
2627    ],
2628    external_deps = [
2629        "absl/base:core_headers",
2630        "absl/log:check",
2631        "absl/log:log",
2632        "absl/strings",
2633        "absl/time",
2634        "absl/types:optional",
2635        "@com_google_protobuf//upb:base",
2636        "@com_google_protobuf//upb:mem",
2637    ],
2638    language = "c++",
2639    public_hdrs = [
2640        "include/grpcpp/ext/orca_service.h",
2641    ],
2642    visibility = ["@grpc:public"],
2643    deps = [
2644        "debug_location",
2645        "exec_ctx",
2646        "gpr",
2647        "grpc++",
2648        "grpc_base",
2649        "grpcpp_backend_metric_recorder",
2650        "protobuf_duration_upb",
2651        "ref_counted_ptr",
2652        "xds_orca_service_upb",
2653        "xds_orca_upb",
2654        "//src/core:default_event_engine",
2655        "//src/core:grpc_backend_metric_data",
2656        "//src/core:ref_counted",
2657        "//src/core:time",
2658    ],
2659    alwayslink = 1,
2660)
2661
2662grpc_cc_library(
2663    name = "grpcpp_channelz",
2664    srcs = [
2665        "src/cpp/server/channelz/channelz_service.cc",
2666        "src/cpp/server/channelz/channelz_service_plugin.cc",
2667    ],
2668    hdrs = [
2669        "src/cpp/server/channelz/channelz_service.h",
2670    ],
2671    external_deps = [
2672        "protobuf_headers",
2673    ],
2674    language = "c++",
2675    public_hdrs = [
2676        "include/grpcpp/ext/channelz_service_plugin.h",
2677    ],
2678    tags = ["nofixdeps"],
2679    visibility = ["@grpc:channelz"],
2680    deps = [
2681        "gpr",
2682        "grpc",
2683        "grpc++",
2684        "grpc++_config_proto",
2685        "//src/proto/grpc/channelz:channelz_proto",
2686    ],
2687    alwayslink = 1,
2688)
2689
2690grpc_cc_library(
2691    name = "grpcpp_csds",
2692    srcs = [
2693        "src/cpp/server/csds/csds.cc",
2694    ],
2695    hdrs = [
2696        "src/cpp/server/csds/csds.h",
2697    ],
2698    external_deps = [
2699        "absl/status",
2700        "absl/status:statusor",
2701    ],
2702    language = "c++",
2703    tags = ["nofixdeps"],
2704    deps = [
2705        "gpr",
2706        "grpc",
2707        "grpc++_base",
2708        "//src/proto/grpc/testing/xds/v3:csds_cc_grpc",
2709    ],
2710    alwayslink = 1,
2711)
2712
2713grpc_cc_library(
2714    name = "grpcpp_admin",
2715    srcs = [
2716        "src/cpp/server/admin/admin_services.cc",
2717    ],
2718    hdrs = [],
2719    defines = select({
2720        ":grpc_no_xds": ["GRPC_NO_XDS"],
2721        "//conditions:default": [],
2722    }),
2723    external_deps = [
2724        "absl/memory",
2725    ],
2726    language = "c++",
2727    public_hdrs = [
2728        "include/grpcpp/ext/admin_services.h",
2729    ],
2730    select_deps = [{
2731        ":grpc_no_xds": [],
2732        "//conditions:default": ["//:grpcpp_csds"],
2733    }],
2734    deps = [
2735        "gpr",
2736        "grpc++",
2737        "grpcpp_channelz",
2738    ],
2739    alwayslink = 1,
2740)
2741
2742grpc_cc_library(
2743    name = "grpc++_test",
2744    testonly = True,
2745    srcs = [
2746        "src/cpp/client/channel_test_peer.cc",
2747    ],
2748    external_deps = ["gtest"],
2749    public_hdrs = [
2750        "include/grpc++/test/mock_stream.h",
2751        "include/grpc++/test/server_context_test_spouse.h",
2752        "include/grpcpp/test/channel_test_peer.h",
2753        "include/grpcpp/test/client_context_test_peer.h",
2754        "include/grpcpp/test/default_reactor_test_peer.h",
2755        "include/grpcpp/test/mock_stream.h",
2756        "include/grpcpp/test/server_context_test_spouse.h",
2757    ],
2758    visibility = ["@grpc:public"],
2759    deps = [
2760        "channel",
2761        "grpc++",
2762        "grpc_base",
2763    ],
2764)
2765
2766grpc_cc_library(
2767    name = "grpc_opencensus_plugin",
2768    srcs = [
2769        "src/cpp/ext/filters/census/client_filter.cc",
2770        "src/cpp/ext/filters/census/context.cc",
2771        "src/cpp/ext/filters/census/grpc_plugin.cc",
2772        "src/cpp/ext/filters/census/measures.cc",
2773        "src/cpp/ext/filters/census/rpc_encoding.cc",
2774        "src/cpp/ext/filters/census/server_call_tracer.cc",
2775        "src/cpp/ext/filters/census/views.cc",
2776    ],
2777    hdrs = [
2778        "include/grpcpp/opencensus.h",
2779        "src/cpp/ext/filters/census/client_filter.h",
2780        "src/cpp/ext/filters/census/context.h",
2781        "src/cpp/ext/filters/census/grpc_plugin.h",
2782        "src/cpp/ext/filters/census/measures.h",
2783        "src/cpp/ext/filters/census/open_census_call_tracer.h",
2784        "src/cpp/ext/filters/census/rpc_encoding.h",
2785        "src/cpp/ext/filters/census/server_call_tracer.h",
2786    ],
2787    external_deps = [
2788        "absl/base:core_headers",
2789        "absl/base:endian",
2790        "absl/log:check",
2791        "absl/status",
2792        "absl/status:statusor",
2793        "absl/strings",
2794        "absl/strings:str_format",
2795        "absl/time",
2796        "absl/types:optional",
2797        "opencensus-stats",
2798        "opencensus-tags",
2799        "opencensus-tags-context_util",
2800        "opencensus-trace",
2801        "opencensus-trace-context_util",
2802        "opencensus-trace-propagation",
2803        "opencensus-trace-span_context",
2804    ],
2805    language = "c++",
2806    visibility = ["@grpc:grpc_opencensus_plugin"],
2807    deps = [
2808        "call_tracer",
2809        "config",
2810        "gpr",
2811        "grpc++_base",
2812        "grpc_base",
2813        "grpc_public_hdrs",
2814        "tcp_tracer",
2815        "//src/core:arena",
2816        "//src/core:arena_promise",
2817        "//src/core:channel_args",
2818        "//src/core:channel_fwd",
2819        "//src/core:channel_stack_type",
2820        "//src/core:context",
2821        "//src/core:error",
2822        "//src/core:experiments",
2823        "//src/core:logging_filter",
2824        "//src/core:metadata_batch",
2825        "//src/core:slice",
2826        "//src/core:slice_buffer",
2827        "//src/core:slice_refcount",
2828    ],
2829)
2830
2831# This is an EXPERIMENTAL target subject to change.
2832grpc_cc_library(
2833    name = "grpcpp_gcp_observability",
2834    hdrs = [
2835        "include/grpcpp/ext/gcp_observability.h",
2836    ],
2837    language = "c++",
2838    tags = ["nofixdeps"],
2839    visibility = ["@grpc:grpcpp_gcp_observability"],
2840    deps = [
2841        "//src/cpp/ext/gcp:observability",
2842    ],
2843)
2844
2845# This is an EXPERIMENTAL target subject to change.
2846grpc_cc_library(
2847    name = "grpcpp_csm_observability",
2848    hdrs = [
2849        "include/grpcpp/ext/csm_observability.h",
2850    ],
2851    language = "c++",
2852    tags = ["nofixdeps"],
2853    deps = [
2854        ":grpcpp_otel_plugin",
2855        "//src/cpp/ext/csm:csm_observability",
2856    ],
2857)
2858
2859# This is an EXPERIMENTAL target subject to change.
2860grpc_cc_library(
2861    name = "grpcpp_otel_plugin",
2862    hdrs = [
2863        "include/grpcpp/ext/otel_plugin.h",
2864    ],
2865    language = "c++",
2866    deps = [
2867        ":grpc++",
2868        "//src/cpp/ext/otel:otel_plugin",
2869    ],
2870)
2871
2872grpc_cc_library(
2873    name = "generic_stub_internal",
2874    hdrs = [
2875        "include/grpcpp/impl/generic_stub_internal.h",
2876    ],
2877    language = "c++",
2878    deps = [
2879        "grpc++_public_hdrs",
2880    ],
2881)
2882
2883grpc_cc_library(
2884    name = "generic_stub",
2885    hdrs = [
2886        "include/grpcpp/generic/generic_stub.h",
2887    ],
2888    language = "c++",
2889    visibility = ["@grpc:public"],
2890    deps = [
2891        "generic_stub_internal",
2892    ],
2893)
2894
2895grpc_cc_library(
2896    name = "generic_stub_callback",
2897    hdrs = [
2898        "include/grpcpp/generic/generic_stub_callback.h",
2899    ],
2900    language = "c++",
2901    visibility = ["@grpc:public"],
2902    deps = [
2903        "generic_stub_internal",
2904    ],
2905)
2906
2907grpc_cc_library(
2908    name = "async_generic_service",
2909    hdrs = [
2910        "include/grpcpp/generic/async_generic_service.h",
2911    ],
2912    language = "c++",
2913    visibility = ["@grpc:public"],
2914    deps = [
2915        "grpc++_public_hdrs",
2916    ],
2917)
2918
2919grpc_cc_library(
2920    name = "callback_generic_service",
2921    hdrs = [
2922        "include/grpcpp/generic/callback_generic_service.h",
2923    ],
2924    language = "c++",
2925    visibility = ["@grpc:public"],
2926    deps = [
2927        "grpc++_public_hdrs",
2928    ],
2929)
2930
2931grpc_cc_library(
2932    name = "work_serializer",
2933    srcs = [
2934        "//src/core:util/work_serializer.cc",
2935    ],
2936    hdrs = [
2937        "//src/core:util/work_serializer.h",
2938    ],
2939    external_deps = [
2940        "absl/base:core_headers",
2941        "absl/container:inlined_vector",
2942        "absl/log",
2943        "absl/log:check",
2944    ],
2945    language = "c++",
2946    visibility = ["@grpc:client_channel"],
2947    deps = [
2948        "debug_location",
2949        "event_engine_base_hdrs",
2950        "exec_ctx",
2951        "gpr",
2952        "grpc_trace",
2953        "orphanable",
2954        "stats",
2955        "//src/core:experiments",
2956        "//src/core:latent_see",
2957        "//src/core:stats_data",
2958    ],
2959)
2960
2961grpc_cc_library(
2962    name = "grpc_trace",
2963    srcs = [
2964        "//src/core:lib/debug/trace.cc",
2965        "//src/core:lib/debug/trace_flags.cc",
2966    ],
2967    hdrs = [
2968        "//src/core:lib/debug/trace.h",
2969        "//src/core:lib/debug/trace_flags.h",
2970        "//src/core:lib/debug/trace_impl.h",
2971    ],
2972    external_deps = [
2973        "absl/log",
2974        "absl/strings",
2975        "absl/container:flat_hash_map",
2976    ],
2977    language = "c++",
2978    visibility = ["@grpc:trace"],
2979    deps = [
2980        "config_vars",
2981        "gpr",
2982        "grpc_public_hdrs",
2983        "//src/core:glob",
2984        "//src/core:no_destruct",
2985    ],
2986)
2987
2988grpc_filegroup(
2989    name = "trace_flag_files",
2990    srcs = ["//src/core:lib/debug/trace_flags.yaml"],
2991)
2992
2993grpc_cc_library(
2994    name = "load_config",
2995    srcs = [
2996        "//src/core:config/load_config.cc",
2997    ],
2998    hdrs = [
2999        "//src/core:config/load_config.h",
3000    ],
3001    external_deps = [
3002        "absl/flags:flag",
3003        "absl/flags:marshalling",
3004        "absl/log:check",
3005        "absl/strings",
3006        "absl/types:optional",
3007    ],
3008    deps = [
3009        "gpr_platform",
3010        "//src/core:env",
3011    ],
3012)
3013
3014grpc_cc_library(
3015    name = "config_vars",
3016    srcs = [
3017        "//src/core:config/config_vars.cc",
3018        "//src/core:config/config_vars_non_generated.cc",
3019    ],
3020    hdrs = [
3021        "//src/core:config/config_vars.h",
3022    ],
3023    external_deps = [
3024        "absl/flags:flag",
3025        "absl/strings",
3026        "absl/types:optional",
3027    ],
3028    deps = [
3029        "gpr_platform",
3030        "load_config",
3031    ],
3032)
3033
3034grpc_cc_library(
3035    name = "config",
3036    srcs = [
3037        "//src/core:config/core_configuration.cc",
3038    ],
3039    external_deps = [
3040        "absl/functional:any_invocable",
3041        "absl/log:check",
3042    ],
3043    language = "c++",
3044    public_hdrs = [
3045        "//src/core:config/core_configuration.h",
3046    ],
3047    visibility = ["@grpc:client_channel"],
3048    deps = [
3049        "gpr",
3050        "grpc_resolver",
3051        "//src/core:certificate_provider_registry",
3052        "//src/core:channel_args_preconditioning",
3053        "//src/core:channel_creds_registry",
3054        "//src/core:channel_init",
3055        "//src/core:handshaker_registry",
3056        "//src/core:lb_policy_registry",
3057        "//src/core:proxy_mapper_registry",
3058        "//src/core:service_config_parser",
3059    ],
3060)
3061
3062grpc_cc_library(
3063    name = "debug_location",
3064    external_deps = ["absl/strings"],
3065    language = "c++",
3066    public_hdrs = ["//src/core:util/debug_location.h"],
3067    visibility = ["@grpc:debug_location"],
3068    deps = ["gpr_platform"],
3069)
3070
3071grpc_cc_library(
3072    name = "orphanable",
3073    language = "c++",
3074    public_hdrs = ["//src/core:util/orphanable.h"],
3075    visibility = [
3076        "@grpc:client_channel",
3077        "@grpc:xds_client_core",
3078    ],
3079    deps = [
3080        "debug_location",
3081        "gpr_platform",
3082        "ref_counted_ptr",
3083        "//src/core:down_cast",
3084        "//src/core:ref_counted",
3085    ],
3086)
3087
3088grpc_cc_library(
3089    name = "promise",
3090    external_deps = [
3091        "absl/functional:any_invocable",
3092        "absl/status",
3093        "absl/types:optional",
3094    ],
3095    language = "c++",
3096    public_hdrs = [
3097        "//src/core:lib/promise/promise.h",
3098    ],
3099    visibility = ["@grpc:alt_grpc_base_legacy"],
3100    deps = [
3101        "gpr_platform",
3102        "//src/core:poll",
3103        "//src/core:promise_like",
3104    ],
3105)
3106
3107grpc_cc_library(
3108    name = "ref_counted_ptr",
3109    external_deps = ["absl/hash"],
3110    language = "c++",
3111    public_hdrs = ["//src/core:util/ref_counted_ptr.h"],
3112    visibility = ["@grpc:ref_counted_ptr"],
3113    deps = [
3114        "debug_location",
3115        "gpr_platform",
3116        "//src/core:down_cast",
3117    ],
3118)
3119
3120grpc_cc_library(
3121    name = "handshaker",
3122    srcs = [
3123        "//src/core:handshaker/handshaker.cc",
3124    ],
3125    external_deps = [
3126        "absl/base:core_headers",
3127        "absl/container:inlined_vector",
3128        "absl/functional:any_invocable",
3129        "absl/log:check",
3130        "absl/log:log",
3131        "absl/status",
3132        "absl/status:statusor",
3133        "absl/strings:str_format",
3134    ],
3135    language = "c++",
3136    public_hdrs = [
3137        "//src/core:handshaker/handshaker.h",
3138    ],
3139    visibility = ["@grpc:alt_grpc_base_legacy"],
3140    deps = [
3141        "debug_location",
3142        "event_engine_base_hdrs",
3143        "exec_ctx",
3144        "gpr",
3145        "grpc_base",
3146        "grpc_public_hdrs",
3147        "grpc_trace",
3148        "iomgr",
3149        "orphanable",
3150        "ref_counted_ptr",
3151        "//src/core:channel_args",
3152        "//src/core:closure",
3153        "//src/core:error",
3154        "//src/core:ref_counted",
3155        "//src/core:slice",
3156        "//src/core:slice_buffer",
3157        "//src/core:status_helper",
3158        "//src/core:time",
3159    ],
3160)
3161
3162grpc_cc_library(
3163    name = "http_connect_handshaker",
3164    srcs = [
3165        "//src/core:handshaker/http_connect/http_connect_handshaker.cc",
3166    ],
3167    external_deps = [
3168        "absl/base:core_headers",
3169        "absl/log:log",
3170        "absl/status",
3171        "absl/strings",
3172        "absl/types:optional",
3173    ],
3174    language = "c++",
3175    public_hdrs = [
3176        "//src/core:handshaker/http_connect/http_connect_handshaker.h",
3177    ],
3178    visibility = ["@grpc:alt_grpc_base_legacy"],
3179    deps = [
3180        "config",
3181        "debug_location",
3182        "exec_ctx",
3183        "gpr",
3184        "grpc_base",
3185        "handshaker",
3186        "httpcli",
3187        "iomgr",
3188        "ref_counted_ptr",
3189        "//src/core:channel_args",
3190        "//src/core:closure",
3191        "//src/core:error",
3192        "//src/core:handshaker_factory",
3193        "//src/core:handshaker_registry",
3194        "//src/core:iomgr_fwd",
3195        "//src/core:slice",
3196        "//src/core:slice_buffer",
3197    ],
3198)
3199
3200grpc_cc_library(
3201    name = "exec_ctx",
3202    srcs = [
3203        "//src/core:lib/iomgr/combiner.cc",
3204        "//src/core:lib/iomgr/exec_ctx.cc",
3205        "//src/core:lib/iomgr/executor.cc",
3206        "//src/core:lib/iomgr/iomgr_internal.cc",
3207    ],
3208    hdrs = [
3209        "//src/core:lib/iomgr/combiner.h",
3210        "//src/core:lib/iomgr/exec_ctx.h",
3211        "//src/core:lib/iomgr/executor.h",
3212        "//src/core:lib/iomgr/iomgr_internal.h",
3213    ],
3214    external_deps = [
3215        "absl/log:check",
3216        "absl/log:log",
3217        "absl/strings:str_format",
3218    ],
3219    visibility = [
3220        "@grpc:alt_grpc_base_legacy",
3221        "@grpc:exec_ctx",
3222    ],
3223    deps = [
3224        "debug_location",
3225        "gpr",
3226        "grpc_public_hdrs",
3227        "grpc_trace",
3228        "//src/core:closure",
3229        "//src/core:error",
3230        "//src/core:experiments",
3231        "//src/core:gpr_atm",
3232        "//src/core:gpr_spinlock",
3233        "//src/core:latent_see",
3234        "//src/core:time",
3235        "//src/core:useful",
3236    ],
3237)
3238
3239grpc_cc_library(
3240    name = "sockaddr_utils",
3241    srcs = [
3242        "//src/core:lib/address_utils/sockaddr_utils.cc",
3243    ],
3244    hdrs = [
3245        "//src/core:lib/address_utils/sockaddr_utils.h",
3246    ],
3247    external_deps = [
3248        "absl/log:check",
3249        "absl/log:log",
3250        "absl/status",
3251        "absl/status:statusor",
3252        "absl/strings",
3253        "absl/strings:str_format",
3254    ],
3255    visibility = ["@grpc:alt_grpc_base_legacy"],
3256    deps = [
3257        "gpr",
3258        "uri",
3259        "//src/core:grpc_sockaddr",
3260        "//src/core:iomgr_port",
3261        "//src/core:resolved_address",
3262    ],
3263)
3264
3265grpc_cc_library(
3266    name = "iomgr_timer",
3267    srcs = [
3268        "//src/core:lib/iomgr/timer.cc",
3269        "//src/core:lib/iomgr/timer_generic.cc",
3270        "//src/core:lib/iomgr/timer_heap.cc",
3271        "//src/core:lib/iomgr/timer_manager.cc",
3272    ],
3273    hdrs = [
3274        "//src/core:lib/iomgr/timer.h",
3275        "//src/core:lib/iomgr/timer_generic.h",
3276        "//src/core:lib/iomgr/timer_heap.h",
3277        "//src/core:lib/iomgr/timer_manager.h",
3278    ] + [
3279        # TODO(hork): deduplicate
3280        "//src/core:lib/iomgr/iomgr.h",
3281    ],
3282    external_deps = [
3283        "absl/log:check",
3284        "absl/log:log",
3285        "absl/strings",
3286        "absl/strings:str_format",
3287    ],
3288    tags = ["nofixdeps"],
3289    deps = [
3290        "event_engine_base_hdrs",
3291        "exec_ctx",
3292        "gpr",
3293        "gpr_platform",
3294        "grpc_trace",
3295        "//src/core:closure",
3296        "//src/core:gpr_manual_constructor",
3297        "//src/core:gpr_spinlock",
3298        "//src/core:iomgr_port",
3299        "//src/core:time",
3300        "//src/core:time_averaged_stats",
3301        "//src/core:useful",
3302    ],
3303)
3304
3305grpc_cc_library(
3306    name = "iomgr_internal_errqueue",
3307    srcs = [
3308        "//src/core:lib/iomgr/internal_errqueue.cc",
3309    ],
3310    hdrs = [
3311        "//src/core:lib/iomgr/internal_errqueue.h",
3312    ],
3313    external_deps = [
3314        "absl/log:log",
3315    ],
3316    tags = ["nofixdeps"],
3317    visibility = ["@grpc:iomgr_internal_errqueue"],
3318    deps = [
3319        "gpr",
3320        "//src/core:iomgr_port",
3321        "//src/core:strerror",
3322    ],
3323)
3324
3325grpc_cc_library(
3326    name = "iomgr_buffer_list",
3327    srcs = [
3328        "//src/core:lib/iomgr/buffer_list.cc",
3329    ],
3330    hdrs = [
3331        "//src/core:lib/iomgr/buffer_list.h",
3332    ],
3333    external_deps = [
3334        "absl/log:log",
3335        "absl/strings",
3336        "absl/strings:str_format",
3337        "absl/types:optional",
3338    ],
3339    tags = ["nofixdeps"],
3340    visibility = ["@grpc:iomgr_buffer_list"],
3341    deps = [
3342        "gpr",
3343        "iomgr_internal_errqueue",
3344        "//src/core:error",
3345        "//src/core:iomgr_port",
3346    ],
3347)
3348
3349grpc_cc_library(
3350    name = "uri",
3351    srcs = [
3352        "//src/core:util/uri.cc",
3353    ],
3354    hdrs = [
3355        "//src/core:util/uri.h",
3356    ],
3357    external_deps = [
3358        "absl/log:check",
3359        "absl/status",
3360        "absl/status:statusor",
3361        "absl/strings",
3362        "absl/strings:str_format",
3363    ],
3364    visibility = ["@grpc:alt_grpc_base_legacy"],
3365    deps = ["gpr"],
3366)
3367
3368grpc_cc_library(
3369    name = "parse_address",
3370    srcs = [
3371        "//src/core:lib/address_utils/parse_address.cc",
3372        "//src/core:util/grpc_if_nametoindex_posix.cc",
3373        "//src/core:util/grpc_if_nametoindex_unsupported.cc",
3374    ],
3375    hdrs = [
3376        "//src/core:lib/address_utils/parse_address.h",
3377        "//src/core:util/grpc_if_nametoindex.h",
3378    ],
3379    external_deps = [
3380        "absl/log:check",
3381        "absl/log:log",
3382        "absl/status",
3383        "absl/status:statusor",
3384        "absl/strings",
3385    ],
3386    visibility = ["@grpc:alt_grpc_base_legacy"],
3387    deps = [
3388        "gpr",
3389        "uri",
3390        "//src/core:error",
3391        "//src/core:grpc_sockaddr",
3392        "//src/core:iomgr_port",
3393        "//src/core:resolved_address",
3394        "//src/core:status_helper",
3395    ],
3396)
3397
3398grpc_cc_library(
3399    name = "backoff",
3400    srcs = [
3401        "//src/core:util/backoff.cc",
3402    ],
3403    hdrs = [
3404        "//src/core:util/backoff.h",
3405    ],
3406    external_deps = ["absl/random"],
3407    language = "c++",
3408    visibility = ["@grpc:alt_grpc_base_legacy"],
3409    deps = [
3410        "gpr_platform",
3411        "//src/core:experiments",
3412        "//src/core:time",
3413    ],
3414)
3415
3416grpc_cc_library(
3417    name = "stats",
3418    srcs = [
3419        "//src/core:telemetry/stats.cc",
3420    ],
3421    hdrs = [
3422        "//src/core:telemetry/stats.h",
3423    ],
3424    external_deps = [
3425        "absl/strings",
3426        "absl/types:span",
3427    ],
3428    visibility = [
3429        "@grpc:alt_grpc_base_legacy",
3430    ],
3431    deps = [
3432        "gpr",
3433        "//src/core:histogram_view",
3434        "//src/core:no_destruct",
3435        "//src/core:stats_data",
3436    ],
3437)
3438
3439grpc_cc_library(
3440    name = "channel_stack_builder",
3441    srcs = [
3442        "//src/core:lib/channel/channel_stack_builder.cc",
3443    ],
3444    hdrs = [
3445        "//src/core:lib/channel/channel_stack_builder.h",
3446    ],
3447    external_deps = [
3448        "absl/status:statusor",
3449        "absl/strings",
3450    ],
3451    language = "c++",
3452    visibility = ["@grpc:alt_grpc_base_legacy"],
3453    deps = [
3454        "gpr",
3455        "ref_counted_ptr",
3456        "//src/core:channel_args",
3457        "//src/core:channel_fwd",
3458        "//src/core:channel_stack_type",
3459    ],
3460)
3461
3462grpc_cc_library(
3463    name = "grpc_service_config_impl",
3464    srcs = [
3465        "//src/core:service_config/service_config_impl.cc",
3466    ],
3467    hdrs = [
3468        "//src/core:service_config/service_config_impl.h",
3469    ],
3470    external_deps = [
3471        "absl/log:check",
3472        "absl/status",
3473        "absl/status:statusor",
3474        "absl/strings",
3475        "absl/types:optional",
3476    ],
3477    language = "c++",
3478    visibility = ["@grpc:client_channel"],
3479    deps = [
3480        "config",
3481        "gpr",
3482        "ref_counted_ptr",
3483        "//src/core:channel_args",
3484        "//src/core:grpc_service_config",
3485        "//src/core:json",
3486        "//src/core:json_args",
3487        "//src/core:json_object_loader",
3488        "//src/core:json_reader",
3489        "//src/core:json_writer",
3490        "//src/core:service_config_parser",
3491        "//src/core:slice",
3492        "//src/core:slice_refcount",
3493        "//src/core:validation_errors",
3494    ],
3495)
3496
3497grpc_cc_library(
3498    name = "endpoint_addresses",
3499    srcs = [
3500        "//src/core:resolver/endpoint_addresses.cc",
3501    ],
3502    hdrs = [
3503        "//src/core:resolver/endpoint_addresses.h",
3504    ],
3505    external_deps = [
3506        "absl/functional:function_ref",
3507        "absl/log:check",
3508        "absl/status",
3509        "absl/status:statusor",
3510        "absl/strings",
3511    ],
3512    language = "c++",
3513    visibility = ["@grpc:client_channel"],
3514    deps = [
3515        "gpr",
3516        "gpr_platform",
3517        "sockaddr_utils",
3518        "//src/core:channel_args",
3519        "//src/core:resolved_address",
3520        "//src/core:useful",
3521    ],
3522)
3523
3524grpc_cc_library(
3525    name = "server_address",
3526    hdrs = [
3527        "//src/core:resolver/server_address.h",
3528    ],
3529    language = "c++",
3530    visibility = ["@grpc:client_channel"],
3531    deps = [
3532        "endpoint_addresses",
3533        "gpr_public_hdrs",
3534    ],
3535)
3536
3537grpc_cc_library(
3538    name = "grpc_resolver",
3539    srcs = [
3540        "//src/core:resolver/resolver.cc",
3541        "//src/core:resolver/resolver_registry.cc",
3542    ],
3543    hdrs = [
3544        "//src/core:resolver/resolver.h",
3545        "//src/core:resolver/resolver_factory.h",
3546        "//src/core:resolver/resolver_registry.h",
3547    ],
3548    external_deps = [
3549        "absl/log:check",
3550        "absl/log:log",
3551        "absl/status",
3552        "absl/status:statusor",
3553        "absl/strings",
3554        "absl/strings:str_format",
3555    ],
3556    language = "c++",
3557    visibility = ["@grpc:client_channel"],
3558    deps = [
3559        "endpoint_addresses",
3560        "gpr",
3561        "grpc_trace",
3562        "orphanable",
3563        "ref_counted_ptr",
3564        "server_address",
3565        "uri",
3566        "//src/core:channel_args",
3567        "//src/core:grpc_service_config",
3568        "//src/core:iomgr_fwd",
3569    ],
3570)
3571
3572grpc_cc_library(
3573    name = "oob_backend_metric",
3574    srcs = [
3575        "//src/core:load_balancing/oob_backend_metric.cc",
3576    ],
3577    hdrs = [
3578        "//src/core:load_balancing/oob_backend_metric.h",
3579        "//src/core:load_balancing/oob_backend_metric_internal.h",
3580    ],
3581    external_deps = [
3582        "absl/base:core_headers",
3583        "absl/log:check",
3584        "absl/log:log",
3585        "absl/status",
3586        "absl/strings",
3587        "@com_google_protobuf//upb:base",
3588        "@com_google_protobuf//upb:mem",
3589    ],
3590    language = "c++",
3591    deps = [
3592        "channelz",
3593        "debug_location",
3594        "exec_ctx",
3595        "gpr",
3596        "grpc_client_channel",
3597        "grpc_public_hdrs",
3598        "grpc_trace",
3599        "orphanable",
3600        "protobuf_duration_upb",
3601        "ref_counted_ptr",
3602        "xds_orca_service_upb",
3603        "xds_orca_upb",
3604        "//src/core:backend_metric_parser",
3605        "//src/core:closure",
3606        "//src/core:error",
3607        "//src/core:grpc_backend_metric_data",
3608        "//src/core:iomgr_fwd",
3609        "//src/core:pollset_set",
3610        "//src/core:slice",
3611        "//src/core:subchannel_interface",
3612        "//src/core:time",
3613        "//src/core:unique_type_name",
3614    ],
3615)
3616
3617grpc_cc_library(
3618    name = "lb_child_policy_handler",
3619    srcs = [
3620        "//src/core:load_balancing/child_policy_handler.cc",
3621    ],
3622    hdrs = [
3623        "//src/core:load_balancing/child_policy_handler.h",
3624    ],
3625    external_deps = [
3626        "absl/log:check",
3627        "absl/log:log",
3628        "absl/status",
3629        "absl/strings",
3630    ],
3631    language = "c++",
3632    deps = [
3633        "config",
3634        "debug_location",
3635        "gpr_public_hdrs",
3636        "grpc_public_hdrs",
3637        "grpc_trace",
3638        "orphanable",
3639        "ref_counted_ptr",
3640        "//src/core:channel_args",
3641        "//src/core:connectivity_state",
3642        "//src/core:delegating_helper",
3643        "//src/core:lb_policy",
3644        "//src/core:lb_policy_registry",
3645        "//src/core:pollset_set",
3646        "//src/core:resolved_address",
3647        "//src/core:subchannel_interface",
3648    ],
3649)
3650
3651grpc_cc_library(
3652    name = "grpc_client_channel",
3653    srcs = [
3654        "//src/core:client_channel/client_channel.cc",
3655        "//src/core:client_channel/client_channel_factory.cc",
3656        "//src/core:client_channel/client_channel_filter.cc",
3657        "//src/core:client_channel/client_channel_plugin.cc",
3658        "//src/core:client_channel/dynamic_filters.cc",
3659        "//src/core:client_channel/global_subchannel_pool.cc",
3660        "//src/core:client_channel/load_balanced_call_destination.cc",
3661        "//src/core:client_channel/local_subchannel_pool.cc",
3662        "//src/core:client_channel/retry_filter.cc",
3663        "//src/core:client_channel/retry_filter_legacy_call_data.cc",
3664        "//src/core:client_channel/subchannel.cc",
3665        "//src/core:client_channel/subchannel_stream_client.cc",
3666    ],
3667    hdrs = [
3668        "//src/core:client_channel/client_channel.h",
3669        "//src/core:client_channel/client_channel_factory.h",
3670        "//src/core:client_channel/client_channel_filter.h",
3671        "//src/core:client_channel/dynamic_filters.h",
3672        "//src/core:client_channel/global_subchannel_pool.h",
3673        "//src/core:client_channel/load_balanced_call_destination.h",
3674        "//src/core:client_channel/local_subchannel_pool.h",
3675        "//src/core:client_channel/retry_filter.h",
3676        "//src/core:client_channel/retry_filter_legacy_call_data.h",
3677        "//src/core:client_channel/subchannel.h",
3678        "//src/core:client_channel/subchannel_interface_internal.h",
3679        "//src/core:client_channel/subchannel_stream_client.h",
3680    ],
3681    external_deps = [
3682        "absl/base:core_headers",
3683        "absl/cleanup",
3684        "absl/container:flat_hash_set",
3685        "absl/container:inlined_vector",
3686        "absl/functional:any_invocable",
3687        "absl/log",
3688        "absl/log:check",
3689        "absl/status",
3690        "absl/status:statusor",
3691        "absl/strings",
3692        "absl/strings:cord",
3693        "absl/types:optional",
3694        "absl/types:variant",
3695    ],
3696    language = "c++",
3697    visibility = ["@grpc:client_channel"],
3698    deps = [
3699        "backoff",
3700        "call_combiner",
3701        "call_tracer",
3702        "channel",
3703        "channel_arg_names",
3704        "channelz",
3705        "config",
3706        "debug_location",
3707        "endpoint_addresses",
3708        "exec_ctx",
3709        "gpr",
3710        "grpc_base",
3711        "grpc_public_hdrs",
3712        "grpc_resolver",
3713        "grpc_security_base",
3714        "grpc_service_config_impl",
3715        "grpc_trace",
3716        "iomgr",
3717        "lb_child_policy_handler",
3718        "orphanable",
3719        "promise",
3720        "ref_counted_ptr",
3721        "sockaddr_utils",
3722        "stats",
3723        "uri",
3724        "work_serializer",
3725        "//src/core:arena",
3726        "//src/core:arena_promise",
3727        "//src/core:backend_metric_parser",
3728        "//src/core:blackboard",
3729        "//src/core:call_destination",
3730        "//src/core:call_filters",
3731        "//src/core:call_spine",
3732        "//src/core:cancel_callback",
3733        "//src/core:channel_args",
3734        "//src/core:channel_args_endpoint_config",
3735        "//src/core:channel_fwd",
3736        "//src/core:channel_init",
3737        "//src/core:channel_stack_type",
3738        "//src/core:client_channel_args",
3739        "//src/core:client_channel_backup_poller",
3740        "//src/core:client_channel_internal_header",
3741        "//src/core:client_channel_service_config",
3742        "//src/core:closure",
3743        "//src/core:config_selector",
3744        "//src/core:connectivity_state",
3745        "//src/core:construct_destruct",
3746        "//src/core:context",
3747        "//src/core:dual_ref_counted",
3748        "//src/core:error",
3749        "//src/core:error_utils",
3750        "//src/core:exec_ctx_wakeup_scheduler",
3751        "//src/core:experiments",
3752        "//src/core:gpr_manual_constructor",
3753        "//src/core:grpc_backend_metric_data",
3754        "//src/core:grpc_channel_idle_filter",
3755        "//src/core:grpc_service_config",
3756        "//src/core:idle_filter_state",
3757        "//src/core:init_internally",
3758        "//src/core:interception_chain",
3759        "//src/core:iomgr_fwd",
3760        "//src/core:json",
3761        "//src/core:latch",
3762        "//src/core:lb_metadata",
3763        "//src/core:lb_policy",
3764        "//src/core:lb_policy_registry",
3765        "//src/core:loop",
3766        "//src/core:map",
3767        "//src/core:memory_quota",
3768        "//src/core:metadata",
3769        "//src/core:metadata_batch",
3770        "//src/core:metrics",
3771        "//src/core:observable",
3772        "//src/core:pipe",
3773        "//src/core:poll",
3774        "//src/core:pollset_set",
3775        "//src/core:proxy_mapper_registry",
3776        "//src/core:ref_counted",
3777        "//src/core:resolved_address",
3778        "//src/core:resource_quota",
3779        "//src/core:retry_interceptor",
3780        "//src/core:retry_service_config",
3781        "//src/core:retry_throttle",
3782        "//src/core:seq",
3783        "//src/core:single_set_ptr",
3784        "//src/core:sleep",
3785        "//src/core:slice",
3786        "//src/core:slice_buffer",
3787        "//src/core:slice_refcount",
3788        "//src/core:stats_data",
3789        "//src/core:status_helper",
3790        "//src/core:subchannel_connector",
3791        "//src/core:subchannel_interface",
3792        "//src/core:subchannel_pool_interface",
3793        "//src/core:time",
3794        "//src/core:try_seq",
3795        "//src/core:unique_type_name",
3796        "//src/core:useful",
3797    ],
3798)
3799
3800grpc_cc_library(
3801    name = "grpc_resolver_dns_ares",
3802    srcs = [
3803        "//src/core:resolver/dns/c_ares/dns_resolver_ares.cc",
3804        "//src/core:resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc",
3805        "//src/core:resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc",
3806        "//src/core:resolver/dns/c_ares/grpc_ares_wrapper.cc",
3807        "//src/core:resolver/dns/c_ares/grpc_ares_wrapper_posix.cc",
3808        "//src/core:resolver/dns/c_ares/grpc_ares_wrapper_windows.cc",
3809    ],
3810    hdrs = [
3811        "//src/core:resolver/dns/c_ares/dns_resolver_ares.h",
3812        "//src/core:resolver/dns/c_ares/grpc_ares_ev_driver.h",
3813        "//src/core:resolver/dns/c_ares/grpc_ares_wrapper.h",
3814    ],
3815    external_deps = [
3816        "absl/base:core_headers",
3817        "absl/functional:any_invocable",
3818        "absl/log:check",
3819        "absl/log:log",
3820        "absl/status",
3821        "absl/status:statusor",
3822        "absl/strings",
3823        "absl/strings:str_format",
3824        "absl/types:optional",
3825        "address_sorting",
3826        "cares",
3827    ],
3828    language = "c++",
3829    deps = [
3830        "backoff",
3831        "channel_arg_names",
3832        "config",
3833        "config_vars",
3834        "debug_location",
3835        "endpoint_addresses",
3836        "exec_ctx",
3837        "gpr",
3838        "grpc_base",
3839        "grpc_grpclb_balancer_addresses",
3840        "grpc_resolver",
3841        "grpc_service_config_impl",
3842        "grpc_trace",
3843        "iomgr",
3844        "iomgr_timer",
3845        "orphanable",
3846        "parse_address",
3847        "ref_counted_ptr",
3848        "sockaddr_utils",
3849        "uri",
3850        "//src/core:channel_args",
3851        "//src/core:closure",
3852        "//src/core:error",
3853        "//src/core:error_utils",
3854        "//src/core:grpc_service_config",
3855        "//src/core:grpc_sockaddr",
3856        "//src/core:iomgr_fwd",
3857        "//src/core:iomgr_port",
3858        "//src/core:polling_resolver",
3859        "//src/core:pollset_set",
3860        "//src/core:resolved_address",
3861        "//src/core:service_config_helper",
3862        "//src/core:slice",
3863        "//src/core:status_helper",
3864        "//src/core:time",
3865    ],
3866)
3867
3868grpc_cc_library(
3869    name = "httpcli",
3870    srcs = [
3871        "//src/core:util/http_client/format_request.cc",
3872        "//src/core:util/http_client/httpcli.cc",
3873        "//src/core:util/http_client/parser.cc",
3874    ],
3875    hdrs = [
3876        "//src/core:util/http_client/format_request.h",
3877        "//src/core:util/http_client/httpcli.h",
3878        "//src/core:util/http_client/parser.h",
3879    ],
3880    external_deps = [
3881        "absl/base:core_headers",
3882        "absl/functional:bind_front",
3883        "absl/log:check",
3884        "absl/log:log",
3885        "absl/status",
3886        "absl/status:statusor",
3887        "absl/strings",
3888        "absl/strings:str_format",
3889        "absl/types:optional",
3890    ],
3891    language = "c++",
3892    visibility = ["@grpc:httpcli"],
3893    deps = [
3894        "config",
3895        "debug_location",
3896        "event_engine_base_hdrs",
3897        "exec_ctx",
3898        "gpr",
3899        "grpc_base",
3900        "grpc_public_hdrs",
3901        "grpc_security_base",
3902        "grpc_trace",
3903        "handshaker",
3904        "iomgr",
3905        "orphanable",
3906        "ref_counted_ptr",
3907        "resource_quota_api",
3908        "uri",
3909        "//src/core:channel_args",
3910        "//src/core:channel_args_preconditioning",
3911        "//src/core:closure",
3912        "//src/core:error",
3913        "//src/core:error_utils",
3914        "//src/core:event_engine_common",
3915        "//src/core:event_engine_tcp_socket_utils",
3916        "//src/core:handshaker_registry",
3917        "//src/core:iomgr_fwd",
3918        "//src/core:pollset_set",
3919        "//src/core:resource_quota",
3920        "//src/core:slice",
3921        "//src/core:slice_refcount",
3922        "//src/core:status_helper",
3923        "//src/core:tcp_connect_handshaker",
3924        "//src/core:time",
3925    ],
3926)
3927
3928grpc_cc_library(
3929    name = "grpc_alts_credentials",
3930    srcs = [
3931        "//src/core:lib/security/credentials/alts/alts_credentials.cc",
3932        "//src/core:lib/security/security_connector/alts/alts_security_connector.cc",
3933    ],
3934    hdrs = [
3935        "//src/core:lib/security/credentials/alts/alts_credentials.h",
3936        "//src/core:lib/security/security_connector/alts/alts_security_connector.h",
3937    ],
3938    external_deps = [
3939        "absl/log:check",
3940        "absl/log:log",
3941        "absl/status",
3942        "absl/strings",
3943        "absl/types:optional",
3944    ],
3945    language = "c++",
3946    visibility = ["@grpc:public"],
3947    deps = [
3948        "alts_util",
3949        "channel_arg_names",
3950        "debug_location",
3951        "exec_ctx",
3952        "gpr",
3953        "grpc_base",
3954        "grpc_core_credentials_header",
3955        "grpc_public_hdrs",
3956        "grpc_security_base",
3957        "handshaker",
3958        "iomgr",
3959        "promise",
3960        "ref_counted_ptr",
3961        "tsi_alts_credentials",
3962        "tsi_base",
3963        "//src/core:arena_promise",
3964        "//src/core:channel_args",
3965        "//src/core:closure",
3966        "//src/core:error",
3967        "//src/core:iomgr_fwd",
3968        "//src/core:slice",
3969        "//src/core:slice_refcount",
3970        "//src/core:unique_type_name",
3971        "//src/core:useful",
3972    ],
3973)
3974
3975grpc_cc_library(
3976    name = "tsi_fake_credentials",
3977    srcs = [
3978        "//src/core:tsi/fake_transport_security.cc",
3979    ],
3980    hdrs = [
3981        "//src/core:tsi/fake_transport_security.h",
3982    ],
3983    external_deps = [
3984        "absl/log:check",
3985        "absl/log:log",
3986    ],
3987    language = "c++",
3988    visibility = [
3989        "@grpc:public",
3990    ],
3991    deps = [
3992        "gpr",
3993        "tsi_base",
3994        "//src/core:dump_args",
3995        "//src/core:slice",
3996        "//src/core:useful",
3997    ],
3998)
3999
4000grpc_cc_library(
4001    name = "grpc_jwt_credentials",
4002    srcs = [
4003        "//src/core:lib/security/credentials/jwt/json_token.cc",
4004        "//src/core:lib/security/credentials/jwt/jwt_credentials.cc",
4005        "//src/core:lib/security/credentials/jwt/jwt_verifier.cc",
4006    ],
4007    hdrs = [
4008        "//src/core:lib/security/credentials/jwt/json_token.h",
4009        "//src/core:lib/security/credentials/jwt/jwt_credentials.h",
4010        "//src/core:lib/security/credentials/jwt/jwt_verifier.h",
4011    ],
4012    external_deps = [
4013        "absl/log:check",
4014        "absl/log:log",
4015        "absl/status",
4016        "absl/status:statusor",
4017        "absl/strings",
4018        "absl/strings:str_format",
4019        "absl/time",
4020        "absl/types:optional",
4021        "libcrypto",
4022        "libssl",
4023    ],
4024    language = "c++",
4025    visibility = ["@grpc:public"],
4026    deps = [
4027        "exec_ctx",
4028        "gpr",
4029        "grpc_base",
4030        "grpc_core_credentials_header",
4031        "grpc_credentials_util",
4032        "grpc_security_base",
4033        "grpc_trace",
4034        "httpcli",
4035        "iomgr",
4036        "orphanable",
4037        "promise",
4038        "ref_counted_ptr",
4039        "uri",
4040        "//src/core:arena_promise",
4041        "//src/core:closure",
4042        "//src/core:error",
4043        "//src/core:gpr_manual_constructor",
4044        "//src/core:httpcli_ssl_credentials",
4045        "//src/core:iomgr_fwd",
4046        "//src/core:json",
4047        "//src/core:json_reader",
4048        "//src/core:json_writer",
4049        "//src/core:metadata_batch",
4050        "//src/core:slice",
4051        "//src/core:slice_refcount",
4052        "//src/core:time",
4053        "//src/core:tsi_ssl_types",
4054        "//src/core:unique_type_name",
4055        "//src/core:useful",
4056    ],
4057)
4058
4059grpc_cc_library(
4060    name = "grpc_credentials_util",
4061    srcs = [
4062        "//src/core:lib/security/credentials/tls/tls_utils.cc",
4063        "//src/core:lib/security/security_connector/load_system_roots_fallback.cc",
4064        "//src/core:lib/security/security_connector/load_system_roots_supported.cc",
4065        "//src/core:lib/security/security_connector/load_system_roots_windows.cc",
4066        "//src/core:lib/security/util/json_util.cc",
4067    ],
4068    hdrs = [
4069        "//src/core:lib/security/credentials/tls/tls_utils.h",
4070        "//src/core:lib/security/security_connector/load_system_roots.h",
4071        "//src/core:lib/security/security_connector/load_system_roots_supported.h",
4072        "//src/core:lib/security/util/json_util.h",
4073    ],
4074    external_deps = [
4075        "absl/log:log",
4076        "absl/strings",
4077    ],
4078    language = "c++",
4079    visibility = ["@grpc:public"],
4080    deps = [
4081        "config_vars",
4082        "gpr",
4083        "grpc_base",
4084        "grpc_security_base",
4085        "//src/core:error",
4086        "//src/core:json",
4087        "//src/core:load_file",
4088        "//src/core:useful",
4089    ],
4090)
4091
4092grpc_cc_library(
4093    name = "tsi_alts_credentials",
4094    srcs = [
4095        "//src/core:tsi/alts/handshaker/alts_handshaker_client.cc",
4096        "//src/core:tsi/alts/handshaker/alts_shared_resource.cc",
4097        "//src/core:tsi/alts/handshaker/alts_tsi_handshaker.cc",
4098        "//src/core:tsi/alts/handshaker/alts_tsi_utils.cc",
4099    ],
4100    hdrs = [
4101        "//src/core:tsi/alts/handshaker/alts_handshaker_client.h",
4102        "//src/core:tsi/alts/handshaker/alts_shared_resource.h",
4103        "//src/core:tsi/alts/handshaker/alts_tsi_handshaker.h",
4104        "//src/core:tsi/alts/handshaker/alts_tsi_handshaker_private.h",
4105        "//src/core:tsi/alts/handshaker/alts_tsi_utils.h",
4106    ],
4107    external_deps = [
4108        "absl/log:check",
4109        "absl/log:log",
4110        "absl/strings",
4111        "@com_google_protobuf//upb:base",
4112        "@com_google_protobuf//upb:mem",
4113    ],
4114    language = "c++",
4115    visibility = ["@grpc:public"],
4116    deps = [
4117        "alts_upb",
4118        "alts_util",
4119        "channel",
4120        "channel_create",
4121        "exec_ctx",
4122        "gpr",
4123        "grpc_base",
4124        "grpc_core_credentials_header",
4125        "grpc_security_base",
4126        "tsi_alts_frame_protector",
4127        "tsi_base",
4128        "//src/core:channel_args",
4129        "//src/core:closure",
4130        "//src/core:env",
4131        "//src/core:pollset_set",
4132        "//src/core:slice",
4133    ],
4134)
4135
4136grpc_cc_library(
4137    name = "tsi_alts_frame_protector",
4138    srcs = [
4139        "//src/core:tsi/alts/crypt/aes_gcm.cc",
4140        "//src/core:tsi/alts/crypt/gsec.cc",
4141        "//src/core:tsi/alts/frame_protector/alts_counter.cc",
4142        "//src/core:tsi/alts/frame_protector/alts_crypter.cc",
4143        "//src/core:tsi/alts/frame_protector/alts_frame_protector.cc",
4144        "//src/core:tsi/alts/frame_protector/alts_record_protocol_crypter_common.cc",
4145        "//src/core:tsi/alts/frame_protector/alts_seal_privacy_integrity_crypter.cc",
4146        "//src/core:tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc",
4147        "//src/core:tsi/alts/frame_protector/frame_handler.cc",
4148        "//src/core:tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc",
4149        "//src/core:tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc",
4150        "//src/core:tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc",
4151        "//src/core:tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc",
4152        "//src/core:tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc",
4153    ],
4154    hdrs = [
4155        "//src/core:tsi/alts/crypt/gsec.h",
4156        "//src/core:tsi/alts/frame_protector/alts_counter.h",
4157        "//src/core:tsi/alts/frame_protector/alts_crypter.h",
4158        "//src/core:tsi/alts/frame_protector/alts_frame_protector.h",
4159        "//src/core:tsi/alts/frame_protector/alts_record_protocol_crypter_common.h",
4160        "//src/core:tsi/alts/frame_protector/frame_handler.h",
4161        "//src/core:tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.h",
4162        "//src/core:tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.h",
4163        "//src/core:tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol.h",
4164        "//src/core:tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h",
4165        "//src/core:tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.h",
4166        "//src/core:tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.h",
4167    ],
4168    external_deps = [
4169        "absl/log:check",
4170        "absl/log:log",
4171        "absl/types:span",
4172        "libcrypto",
4173        "libssl",
4174    ],
4175    language = "c++",
4176    visibility = ["@grpc:public"],
4177    deps = [
4178        "event_engine_base_hdrs",
4179        "exec_ctx",
4180        "gpr",
4181        "gpr_platform",
4182        "tsi_base",
4183        "//src/core:slice",
4184        "//src/core:slice_buffer",
4185        "//src/core:useful",
4186    ],
4187)
4188
4189grpc_cc_library(
4190    name = "tsi_ssl_session_cache",
4191    srcs = [
4192        "//src/core:tsi/ssl/session_cache/ssl_session_boringssl.cc",
4193        "//src/core:tsi/ssl/session_cache/ssl_session_cache.cc",
4194        "//src/core:tsi/ssl/session_cache/ssl_session_openssl.cc",
4195    ],
4196    hdrs = [
4197        "//src/core:tsi/ssl/session_cache/ssl_session.h",
4198        "//src/core:tsi/ssl/session_cache/ssl_session_cache.h",
4199    ],
4200    external_deps = [
4201        "absl/log:check",
4202        "absl/log:log",
4203        "absl/memory",
4204        "libssl",
4205    ],
4206    language = "c++",
4207    visibility = ["@grpc:public"],
4208    deps = [
4209        "cpp_impl_of",
4210        "gpr",
4211        "grpc_public_hdrs",
4212        "//src/core:ref_counted",
4213        "//src/core:slice",
4214    ],
4215)
4216
4217grpc_cc_library(
4218    name = "tsi_ssl_credentials",
4219    srcs = [
4220        "//src/core:lib/security/security_connector/ssl_utils.cc",
4221        "//src/core:tsi/ssl/key_logging/ssl_key_logging.cc",
4222        "//src/core:tsi/ssl_transport_security.cc",
4223        "//src/core:tsi/ssl_transport_security_utils.cc",
4224    ],
4225    hdrs = [
4226        "//src/core:lib/security/security_connector/ssl_utils.h",
4227        "//src/core:tsi/ssl/key_logging/ssl_key_logging.h",
4228        "//src/core:tsi/ssl_transport_security.h",
4229        "//src/core:tsi/ssl_transport_security_utils.h",
4230    ],
4231    external_deps = [
4232        "absl/base:core_headers",
4233        "absl/log:check",
4234        "absl/log:log",
4235        "absl/status",
4236        "absl/status:statusor",
4237        "absl/strings",
4238        "libcrypto",
4239        "libssl",
4240    ],
4241    language = "c++",
4242    visibility = ["@grpc:public"],
4243    deps = [
4244        "channel_arg_names",
4245        "config_vars",
4246        "gpr",
4247        "grpc_base",
4248        "grpc_core_credentials_header",
4249        "grpc_credentials_util",
4250        "grpc_public_hdrs",
4251        "grpc_security_base",
4252        "ref_counted_ptr",
4253        "tsi_base",
4254        "tsi_ssl_session_cache",
4255        "//src/core:channel_args",
4256        "//src/core:error",
4257        "//src/core:grpc_crl_provider",
4258        "//src/core:grpc_transport_chttp2_alpn",
4259        "//src/core:load_file",
4260        "//src/core:ref_counted",
4261        "//src/core:slice",
4262        "//src/core:tsi_ssl_types",
4263        "//src/core:useful",
4264    ],
4265)
4266
4267grpc_cc_library(
4268    name = "grpc_http_filters",
4269    srcs = [
4270        "//src/core:ext/filters/http/client/http_client_filter.cc",
4271        "//src/core:ext/filters/http/http_filters_plugin.cc",
4272        "//src/core:ext/filters/http/message_compress/compression_filter.cc",
4273        "//src/core:ext/filters/http/server/http_server_filter.cc",
4274    ],
4275    hdrs = [
4276        "//src/core:ext/filters/http/client/http_client_filter.h",
4277        "//src/core:ext/filters/http/message_compress/compression_filter.h",
4278        "//src/core:ext/filters/http/server/http_server_filter.h",
4279    ],
4280    external_deps = [
4281        "absl/base:core_headers",
4282        "absl/log:check",
4283        "absl/log:log",
4284        "absl/status",
4285        "absl/status:statusor",
4286        "absl/strings",
4287        "absl/strings:str_format",
4288        "absl/types:optional",
4289    ],
4290    language = "c++",
4291    visibility = ["@grpc:http"],
4292    deps = [
4293        "call_tracer",
4294        "channel_arg_names",
4295        "config",
4296        "gpr",
4297        "grpc_base",
4298        "grpc_public_hdrs",
4299        "grpc_trace",
4300        "promise",
4301        "//src/core:activity",
4302        "//src/core:arena",
4303        "//src/core:arena_promise",
4304        "//src/core:channel_args",
4305        "//src/core:channel_fwd",
4306        "//src/core:channel_stack_type",
4307        "//src/core:compression",
4308        "//src/core:context",
4309        "//src/core:experiments",
4310        "//src/core:grpc_message_size_filter",
4311        "//src/core:latch",
4312        "//src/core:latent_see",
4313        "//src/core:map",
4314        "//src/core:metadata_batch",
4315        "//src/core:percent_encoding",
4316        "//src/core:pipe",
4317        "//src/core:poll",
4318        "//src/core:prioritized_race",
4319        "//src/core:race",
4320        "//src/core:slice",
4321        "//src/core:slice_buffer",
4322        "//src/core:status_conversion",
4323    ],
4324)
4325
4326grpc_cc_library(
4327    name = "grpc_grpclb_balancer_addresses",
4328    srcs = [
4329        "//src/core:load_balancing/grpclb/grpclb_balancer_addresses.cc",
4330    ],
4331    hdrs = [
4332        "//src/core:load_balancing/grpclb/grpclb_balancer_addresses.h",
4333    ],
4334    language = "c++",
4335    visibility = ["@grpc:grpclb"],
4336    deps = [
4337        "endpoint_addresses",
4338        "gpr_platform",
4339        "grpc_public_hdrs",
4340        "//src/core:channel_args",
4341        "//src/core:useful",
4342    ],
4343)
4344
4345grpc_cc_library(
4346    name = "xds_client",
4347    srcs = [
4348        "//src/core:xds/xds_client/lrs_client.cc",
4349        "//src/core:xds/xds_client/xds_api.cc",
4350        "//src/core:xds/xds_client/xds_bootstrap.cc",
4351        "//src/core:xds/xds_client/xds_client.cc",
4352    ],
4353    hdrs = [
4354        "//src/core:xds/xds_client/lrs_client.h",
4355        "//src/core:xds/xds_client/xds_api.h",
4356        "//src/core:xds/xds_client/xds_bootstrap.h",
4357        "//src/core:xds/xds_client/xds_channel_args.h",
4358        "//src/core:xds/xds_client/xds_client.h",
4359        "//src/core:xds/xds_client/xds_locality.h",
4360        "//src/core:xds/xds_client/xds_metrics.h",
4361        "//src/core:xds/xds_client/xds_resource_type.h",
4362        "//src/core:xds/xds_client/xds_resource_type_impl.h",
4363        "//src/core:xds/xds_client/xds_transport.h",
4364    ],
4365    external_deps = [
4366        "absl/base:core_headers",
4367        "absl/container:flat_hash_set",
4368        "absl/cleanup",
4369        "absl/log:check",
4370        "absl/log:log",
4371        "absl/memory",
4372        "absl/status",
4373        "absl/status:statusor",
4374        "absl/strings",
4375        "absl/strings:str_format",
4376        "absl/types:optional",
4377        "@com_google_protobuf//upb:base",
4378        "@com_google_protobuf//upb:mem",
4379        "@com_google_protobuf//upb:text",
4380        "@com_google_protobuf//upb:json",
4381        "@com_google_protobuf//upb:reflection",
4382    ],
4383    language = "c++",
4384    tags = ["nofixdeps"],
4385    visibility = ["@grpc:xds_client_core"],
4386    deps = [
4387        "backoff",
4388        "call_tracer",
4389        "debug_location",
4390        "endpoint_addresses",
4391        "envoy_admin_upb",
4392        "envoy_config_core_upb",
4393        "envoy_config_endpoint_upb",
4394        "envoy_service_discovery_upb",
4395        "envoy_service_discovery_upbdefs",
4396        "envoy_service_load_stats_upb",
4397        "envoy_service_load_stats_upbdefs",
4398        "envoy_service_status_upb",
4399        "envoy_service_status_upbdefs",
4400        "event_engine_base_hdrs",
4401        "exec_ctx",
4402        "google_rpc_status_upb",
4403        "gpr",
4404        "grpc_trace",
4405        "orphanable",
4406        "protobuf_any_upb",
4407        "protobuf_duration_upb",
4408        "protobuf_struct_upb",
4409        "protobuf_timestamp_upb",
4410        "ref_counted_ptr",
4411        "uri",
4412        "work_serializer",
4413        "//src/core:default_event_engine",
4414        "//src/core:dual_ref_counted",
4415        "//src/core:env",
4416        "//src/core:grpc_backend_metric_data",
4417        "//src/core:json",
4418        "//src/core:per_cpu",
4419        "//src/core:ref_counted",
4420        "//src/core:ref_counted_string",
4421        "//src/core:time",
4422        "//src/core:upb_utils",
4423        "//src/core:useful",
4424        "//src/core:xds_backend_metric_propagation",
4425    ],
4426)
4427
4428grpc_cc_library(
4429    name = "grpc_mock_cel",
4430    hdrs = [
4431        "//src/core:lib/security/authorization/mock_cel/activation.h",
4432        "//src/core:lib/security/authorization/mock_cel/cel_expr_builder_factory.h",
4433        "//src/core:lib/security/authorization/mock_cel/cel_expression.h",
4434        "//src/core:lib/security/authorization/mock_cel/cel_value.h",
4435        "//src/core:lib/security/authorization/mock_cel/evaluator_core.h",
4436        "//src/core:lib/security/authorization/mock_cel/flat_expr_builder.h",
4437    ],
4438    external_deps = [
4439        "absl/status",
4440        "absl/status:statusor",
4441        "absl/strings",
4442        "absl/types:span",
4443    ],
4444    language = "c++",
4445    deps = [
4446        "google_api_expr_v1alpha1_syntax_upb",
4447        "gpr_public_hdrs",
4448    ],
4449)
4450
4451grpc_cc_library(
4452    name = "grpc_resolver_fake",
4453    srcs = ["//src/core:resolver/fake/fake_resolver.cc"],
4454    hdrs = ["//src/core:resolver/fake/fake_resolver.h"],
4455    external_deps = [
4456        "absl/base:core_headers",
4457        "absl/log:check",
4458        "absl/strings",
4459        "absl/time",
4460        "absl/types:optional",
4461    ],
4462    language = "c++",
4463    visibility = [
4464        "//test:__subpackages__",
4465        "@grpc:grpc_resolver_fake",
4466    ],
4467    deps = [
4468        "config",
4469        "debug_location",
4470        "gpr",
4471        "grpc_public_hdrs",
4472        "grpc_resolver",
4473        "orphanable",
4474        "ref_counted_ptr",
4475        "uri",
4476        "work_serializer",
4477        "//src/core:channel_args",
4478        "//src/core:notification",
4479        "//src/core:ref_counted",
4480        "//src/core:useful",
4481    ],
4482)
4483
4484grpc_cc_library(
4485    name = "chttp2_frame",
4486    srcs = [
4487        "//src/core:ext/transport/chttp2/transport/frame.cc",
4488    ],
4489    hdrs = [
4490        "//src/core:ext/transport/chttp2/transport/frame.h",
4491    ],
4492    external_deps = [
4493        "absl/log:check",
4494        "absl/status",
4495        "absl/status:statusor",
4496        "absl/strings",
4497        "absl/types:span",
4498        "absl/types:variant",
4499    ],
4500    deps = [
4501        "gpr",
4502        "//src/core:slice",
4503        "//src/core:slice_buffer",
4504    ],
4505)
4506
4507grpc_cc_library(
4508    name = "chttp2_legacy_frame",
4509    hdrs = [
4510        "//src/core:ext/transport/chttp2/transport/legacy_frame.h",
4511    ],
4512    deps = ["gpr"],
4513)
4514
4515grpc_cc_library(
4516    name = "hpack_parser_table",
4517    srcs = [
4518        "//src/core:ext/transport/chttp2/transport/hpack_parser_table.cc",
4519    ],
4520    hdrs = [
4521        "//src/core:ext/transport/chttp2/transport/hpack_parser_table.h",
4522    ],
4523    external_deps = [
4524        "absl/functional:function_ref",
4525        "absl/log:check",
4526        "absl/log:log",
4527        "absl/status",
4528        "absl/strings",
4529    ],
4530    deps = [
4531        "gpr",
4532        "gpr_platform",
4533        "grpc_trace",
4534        "hpack_parse_result",
4535        "stats",
4536        "//src/core:hpack_constants",
4537        "//src/core:metadata_batch",
4538        "//src/core:no_destruct",
4539        "//src/core:parsed_metadata",
4540        "//src/core:slice",
4541        "//src/core:unique_ptr_with_bitset",
4542    ],
4543)
4544
4545grpc_cc_library(
4546    name = "hpack_parse_result",
4547    srcs = [
4548        "//src/core:ext/transport/chttp2/transport/hpack_parse_result.cc",
4549    ],
4550    hdrs = [
4551        "//src/core:ext/transport/chttp2/transport/hpack_parse_result.h",
4552    ],
4553    external_deps = [
4554        "absl/log:check",
4555        "absl/status",
4556        "absl/strings",
4557        "absl/strings:str_format",
4558        "absl/types:optional",
4559    ],
4560    deps = [
4561        "gpr",
4562        "grpc_base",
4563        "ref_counted_ptr",
4564        "//src/core:error",
4565        "//src/core:hpack_constants",
4566        "//src/core:metadata_batch",
4567        "//src/core:ref_counted",
4568        "//src/core:slice",
4569        "//src/core:status_helper",
4570    ],
4571)
4572
4573grpc_cc_library(
4574    name = "hpack_parser",
4575    srcs = [
4576        "//src/core:ext/transport/chttp2/transport/hpack_parser.cc",
4577    ],
4578    hdrs = [
4579        "//src/core:ext/transport/chttp2/transport/hpack_parser.h",
4580    ],
4581    external_deps = [
4582        "absl/base:core_headers",
4583        "absl/log:check",
4584        "absl/log:log",
4585        "absl/random:bit_gen_ref",
4586        "absl/status",
4587        "absl/strings",
4588        "absl/types:optional",
4589        "absl/types:span",
4590        "absl/types:variant",
4591    ],
4592    deps = [
4593        "call_tracer",
4594        "chttp2_legacy_frame",
4595        "gpr",
4596        "gpr_platform",
4597        "grpc_base",
4598        "grpc_public_hdrs",
4599        "grpc_trace",
4600        "hpack_parse_result",
4601        "hpack_parser_table",
4602        "stats",
4603        "//src/core:decode_huff",
4604        "//src/core:error",
4605        "//src/core:hpack_constants",
4606        "//src/core:match",
4607        "//src/core:metadata_batch",
4608        "//src/core:metadata_info",
4609        "//src/core:parsed_metadata",
4610        "//src/core:random_early_detection",
4611        "//src/core:slice",
4612        "//src/core:slice_refcount",
4613        "//src/core:stats_data",
4614    ],
4615)
4616
4617grpc_cc_library(
4618    name = "hpack_encoder",
4619    srcs = [
4620        "//src/core:ext/transport/chttp2/transport/hpack_encoder.cc",
4621    ],
4622    hdrs = [
4623        "//src/core:ext/transport/chttp2/transport/hpack_encoder.h",
4624    ],
4625    external_deps = [
4626        "absl/log:check",
4627        "absl/log:log",
4628        "absl/strings",
4629    ],
4630    deps = [
4631        "call_tracer",
4632        "chttp2_bin_encoder",
4633        "chttp2_legacy_frame",
4634        "chttp2_varint",
4635        "gpr",
4636        "gpr_platform",
4637        "grpc_base",
4638        "grpc_public_hdrs",
4639        "grpc_trace",
4640        "//src/core:hpack_constants",
4641        "//src/core:hpack_encoder_table",
4642        "//src/core:metadata_batch",
4643        "//src/core:metadata_compression_traits",
4644        "//src/core:slice",
4645        "//src/core:slice_buffer",
4646        "//src/core:time",
4647        "//src/core:timeout_encoding",
4648    ],
4649)
4650
4651grpc_cc_library(
4652    name = "chttp2_bin_encoder",
4653    srcs = [
4654        "//src/core:ext/transport/chttp2/transport/bin_encoder.cc",
4655    ],
4656    hdrs = [
4657        "//src/core:ext/transport/chttp2/transport/bin_encoder.h",
4658    ],
4659    external_deps = [
4660        "absl/log:check",
4661    ],
4662    deps = [
4663        "gpr",
4664        "gpr_platform",
4665        "//src/core:huffsyms",
4666        "//src/core:slice",
4667    ],
4668)
4669
4670grpc_cc_library(
4671    name = "chttp2_varint",
4672    srcs = [
4673        "//src/core:ext/transport/chttp2/transport/varint.cc",
4674    ],
4675    hdrs = [
4676        "//src/core:ext/transport/chttp2/transport/varint.h",
4677    ],
4678    external_deps = [
4679        "absl/base:core_headers",
4680        "absl/log:check",
4681    ],
4682    deps = ["gpr"],
4683)
4684
4685grpc_cc_library(
4686    name = "chttp2_context_list_entry",
4687    hdrs = [
4688        "//src/core:ext/transport/chttp2/transport/context_list_entry.h",
4689    ],
4690    deps = [
4691        "gpr",
4692        "tcp_tracer",
4693    ],
4694)
4695
4696grpc_cc_library(
4697    name = "tcp_tracer",
4698    hdrs = [
4699        "//src/core:telemetry/tcp_tracer.h",
4700    ],
4701    external_deps = [
4702        "absl/time",
4703        "absl/types:optional",
4704    ],
4705    language = "c++",
4706    visibility = ["@grpc:tcp_tracer"],
4707    deps = ["gpr"],
4708)
4709
4710grpc_cc_library(
4711    name = "grpc_http2_client_transport",
4712    srcs = [
4713        "//src/core:ext/transport/chttp2/transport/http2_client_transport.cc",
4714    ],
4715    hdrs = [
4716        "//src/core:ext/transport/chttp2/transport/http2_client_transport.h",
4717    ],
4718    external_deps = [],
4719    language = "c++",
4720    deps = [
4721        "grpc_base",
4722        "hpack_encoder",
4723        "hpack_parser",
4724        "//src/core:grpc_promise_endpoint",
4725    ],
4726)
4727
4728grpc_cc_library(
4729    name = "grpc_http2_server_transport",
4730    srcs = [
4731        "//src/core:ext/transport/chttp2/transport/http2_server_transport.cc",
4732    ],
4733    hdrs = [
4734        "//src/core:ext/transport/chttp2/transport/http2_server_transport.h",
4735    ],
4736    external_deps = [],
4737    language = "c++",
4738    deps = [
4739        "grpc_base",
4740        "hpack_encoder",
4741        "hpack_parser",
4742        "//src/core:grpc_promise_endpoint",
4743    ],
4744)
4745
4746grpc_cc_library(
4747    name = "grpc_transport_chttp2",
4748    srcs = [
4749        "//src/core:ext/transport/chttp2/transport/bin_decoder.cc",
4750        "//src/core:ext/transport/chttp2/transport/call_tracer_wrapper.cc",
4751        "//src/core:ext/transport/chttp2/transport/chttp2_transport.cc",
4752        "//src/core:ext/transport/chttp2/transport/frame_data.cc",
4753        "//src/core:ext/transport/chttp2/transport/frame_goaway.cc",
4754        "//src/core:ext/transport/chttp2/transport/frame_ping.cc",
4755        "//src/core:ext/transport/chttp2/transport/frame_rst_stream.cc",
4756        "//src/core:ext/transport/chttp2/transport/frame_security.cc",
4757        "//src/core:ext/transport/chttp2/transport/frame_settings.cc",
4758        "//src/core:ext/transport/chttp2/transport/frame_window_update.cc",
4759        "//src/core:ext/transport/chttp2/transport/parsing.cc",
4760        "//src/core:ext/transport/chttp2/transport/stream_lists.cc",
4761        "//src/core:ext/transport/chttp2/transport/writing.cc",
4762    ],
4763    hdrs = [
4764        "//src/core:ext/transport/chttp2/transport/bin_decoder.h",
4765        "//src/core:ext/transport/chttp2/transport/call_tracer_wrapper.h",
4766        "//src/core:ext/transport/chttp2/transport/chttp2_transport.h",
4767        "//src/core:ext/transport/chttp2/transport/frame_data.h",
4768        "//src/core:ext/transport/chttp2/transport/frame_goaway.h",
4769        "//src/core:ext/transport/chttp2/transport/frame_ping.h",
4770        "//src/core:ext/transport/chttp2/transport/frame_rst_stream.h",
4771        "//src/core:ext/transport/chttp2/transport/frame_security.h",
4772        "//src/core:ext/transport/chttp2/transport/frame_settings.h",
4773        "//src/core:ext/transport/chttp2/transport/frame_window_update.h",
4774        "//src/core:ext/transport/chttp2/transport/internal.h",
4775        "//src/core:ext/transport/chttp2/transport/stream_lists.h",
4776    ],
4777    external_deps = [
4778        "absl/base:core_headers",
4779        "absl/container:flat_hash_map",
4780        "absl/functional:bind_front",
4781        "absl/hash",
4782        "absl/log:check",
4783        "absl/log:log",
4784        "absl/meta:type_traits",
4785        "absl/random",
4786        "absl/random:bit_gen_ref",
4787        "absl/random:distributions",
4788        "absl/status",
4789        "absl/strings",
4790        "absl/strings:cord",
4791        "absl/strings:str_format",
4792        "absl/types:optional",
4793        "absl/types:variant",
4794    ],
4795    language = "c++",
4796    visibility = ["@grpc:grpclb"],
4797    deps = [
4798        "call_tracer",
4799        "channel_arg_names",
4800        "channelz",
4801        "chttp2_context_list_entry",
4802        "chttp2_legacy_frame",
4803        "chttp2_varint",
4804        "config_vars",
4805        "debug_location",
4806        "exec_ctx",
4807        "gpr",
4808        "grpc_base",
4809        "grpc_public_hdrs",
4810        "grpc_trace",
4811        "hpack_encoder",
4812        "hpack_parser",
4813        "hpack_parser_table",
4814        "httpcli",
4815        "iomgr",
4816        "iomgr_buffer_list",
4817        "ref_counted_ptr",
4818        "stats",
4819        "tcp_tracer",
4820        "//src/core:arena",
4821        "//src/core:bdp_estimator",
4822        "//src/core:bitset",
4823        "//src/core:channel_args",
4824        "//src/core:chttp2_flow_control",
4825        "//src/core:closure",
4826        "//src/core:connectivity_state",
4827        "//src/core:error",
4828        "//src/core:error_utils",
4829        "//src/core:event_engine_extensions",
4830        "//src/core:event_engine_query_extensions",
4831        "//src/core:experiments",
4832        "//src/core:gpr_manual_constructor",
4833        "//src/core:http2_errors",
4834        "//src/core:http2_settings",
4835        "//src/core:init_internally",
4836        "//src/core:iomgr_fwd",
4837        "//src/core:iomgr_port",
4838        "//src/core:match",
4839        "//src/core:memory_quota",
4840        "//src/core:metadata_batch",
4841        "//src/core:metadata_info",
4842        "//src/core:ping_abuse_policy",
4843        "//src/core:ping_callbacks",
4844        "//src/core:ping_rate_policy",
4845        "//src/core:poll",
4846        "//src/core:random_early_detection",
4847        "//src/core:ref_counted",
4848        "//src/core:resource_quota",
4849        "//src/core:slice",
4850        "//src/core:slice_buffer",
4851        "//src/core:slice_refcount",
4852        "//src/core:stats_data",
4853        "//src/core:status_conversion",
4854        "//src/core:status_helper",
4855        "//src/core:time",
4856        "//src/core:transport_framing_endpoint_extension",
4857        "//src/core:useful",
4858        "//src/core:write_size_policy",
4859    ],
4860)
4861
4862grpc_cc_library(
4863    name = "grpcpp_status",
4864    srcs = [
4865        "src/cpp/util/status.cc",
4866    ],
4867    public_hdrs = [
4868        "include/grpc++/support/status.h",
4869        "include/grpcpp/impl/status.h",
4870        "include/grpcpp/support/status.h",
4871        "include/grpc++/impl/codegen/status.h",
4872        "include/grpcpp/impl/codegen/status.h",
4873    ],
4874    deps = [
4875        "gpr_platform",
4876        "grpc++_public_hdrs",
4877        "grpc_public_hdrs",
4878    ],
4879)
4880
4881grpc_cc_library(
4882    name = "grpcpp_chaotic_good",
4883    srcs = [
4884        "src/cpp/ext/chaotic_good.cc",
4885    ],
4886    hdrs = [
4887        "src/cpp/ext/chaotic_good.h",
4888    ],
4889    visibility = ["@grpc:chaotic_good"],
4890    deps = [
4891        "gpr",
4892        "grpc++_base",
4893        "grpc_public_hdrs",
4894        "//src/core:chaotic_good_connector",
4895        "//src/core:chaotic_good_server",
4896    ],
4897)
4898
4899grpc_cc_library(
4900    name = "subprocess",
4901    srcs = [
4902        "//src/core:util/subprocess_posix.cc",
4903        "//src/core:util/subprocess_windows.cc",
4904    ],
4905    hdrs = [
4906        "//src/core:util/subprocess.h",
4907    ],
4908    external_deps = [
4909        "absl/log:check",
4910        "absl/log:log",
4911        "absl/strings",
4912        "absl/types:span",
4913    ],
4914    deps = [
4915        "gpr",
4916        "//src/core:strerror",
4917        "//src/core:tchar",
4918    ],
4919)
4920
4921grpc_cc_library(
4922    name = "global_callback_hook",
4923    srcs = [
4924        "src/cpp/client/global_callback_hook.cc",
4925    ],
4926    hdrs = [
4927        "include/grpcpp/support/global_callback_hook.h",
4928    ],
4929    external_deps = [
4930        "absl/base:no_destructor",
4931        "absl/log:check",
4932        "absl/functional:function_ref",
4933    ],
4934    language = "c++",
4935)
4936
4937# TODO(yashykt): Remove the UPB definitions from here once they are no longer needed
4938### UPB Targets
4939
4940grpc_upb_proto_library(
4941    name = "envoy_admin_upb",
4942    deps = ["@envoy_api//envoy/admin/v3:pkg"],
4943)
4944
4945grpc_upb_proto_library(
4946    name = "envoy_config_cluster_upb",
4947    deps = ["@envoy_api//envoy/config/cluster/v3:pkg"],
4948)
4949
4950grpc_upb_proto_reflection_library(
4951    name = "envoy_config_cluster_upbdefs",
4952    deps = ["@envoy_api//envoy/config/cluster/v3:pkg"],
4953)
4954
4955grpc_upb_proto_library(
4956    name = "envoy_config_core_upb",
4957    deps = ["@envoy_api//envoy/config/core/v3:pkg"],
4958)
4959
4960grpc_upb_proto_reflection_library(
4961    name = "envoy_config_core_upbdefs",
4962    deps = ["@envoy_api//envoy/config/core/v3:pkg"],
4963)
4964
4965grpc_upb_proto_library(
4966    name = "envoy_config_endpoint_upb",
4967    deps = ["@envoy_api//envoy/config/endpoint/v3:pkg"],
4968)
4969
4970grpc_upb_proto_reflection_library(
4971    name = "envoy_config_endpoint_upbdefs",
4972    deps = ["@envoy_api//envoy/config/endpoint/v3:pkg"],
4973)
4974
4975grpc_upb_proto_library(
4976    name = "envoy_config_listener_upb",
4977    deps = ["@envoy_api//envoy/config/listener/v3:pkg"],
4978)
4979
4980grpc_upb_proto_reflection_library(
4981    name = "envoy_config_listener_upbdefs",
4982    deps = ["@envoy_api//envoy/config/listener/v3:pkg"],
4983)
4984
4985grpc_upb_proto_library(
4986    name = "envoy_config_rbac_upb",
4987    deps = ["@envoy_api//envoy/config/rbac/v3:pkg"],
4988)
4989
4990grpc_upb_proto_library(
4991    name = "envoy_config_route_upb",
4992    deps = ["@envoy_api//envoy/config/route/v3:pkg"],
4993)
4994
4995grpc_upb_proto_reflection_library(
4996    name = "envoy_config_route_upbdefs",
4997    deps = ["@envoy_api//envoy/config/route/v3:pkg"],
4998)
4999
5000grpc_upb_proto_library(
5001    name = "envoy_extensions_clusters_aggregate_upb",
5002    deps = ["@envoy_api//envoy/extensions/clusters/aggregate/v3:pkg"],
5003)
5004
5005grpc_upb_proto_reflection_library(
5006    name = "envoy_extensions_clusters_aggregate_upbdefs",
5007    deps = ["@envoy_api//envoy/extensions/clusters/aggregate/v3:pkg"],
5008)
5009
5010grpc_upb_proto_library(
5011    name = "envoy_extensions_filters_common_fault_upb",
5012    deps = ["@envoy_api//envoy/extensions/filters/common/fault/v3:pkg"],
5013)
5014
5015grpc_upb_proto_library(
5016    name = "envoy_extensions_filters_http_fault_upb",
5017    deps = ["@envoy_api//envoy/extensions/filters/http/fault/v3:pkg"],
5018)
5019
5020grpc_upb_proto_reflection_library(
5021    name = "envoy_extensions_filters_http_fault_upbdefs",
5022    deps = ["@envoy_api//envoy/extensions/filters/http/fault/v3:pkg"],
5023)
5024
5025grpc_upb_proto_library(
5026    name = "envoy_extensions_filters_http_gcp_authn_upb",
5027    deps = ["@envoy_api//envoy/extensions/filters/http/gcp_authn/v3:pkg"],
5028)
5029
5030grpc_upb_proto_reflection_library(
5031    name = "envoy_extensions_filters_http_gcp_authn_upbdefs",
5032    deps = ["@envoy_api//envoy/extensions/filters/http/gcp_authn/v3:pkg"],
5033)
5034
5035grpc_upb_proto_library(
5036    name = "envoy_extensions_filters_http_rbac_upb",
5037    deps = ["@envoy_api//envoy/extensions/filters/http/rbac/v3:pkg"],
5038)
5039
5040grpc_upb_proto_reflection_library(
5041    name = "envoy_extensions_filters_http_rbac_upbdefs",
5042    deps = ["@envoy_api//envoy/extensions/filters/http/rbac/v3:pkg"],
5043)
5044
5045grpc_upb_proto_library(
5046    name = "envoy_extensions_filters_http_router_upb",
5047    deps = ["@envoy_api//envoy/extensions/filters/http/router/v3:pkg"],
5048)
5049
5050grpc_upb_proto_reflection_library(
5051    name = "envoy_extensions_filters_http_router_upbdefs",
5052    deps = ["@envoy_api//envoy/extensions/filters/http/router/v3:pkg"],
5053)
5054
5055grpc_upb_proto_library(
5056    name = "envoy_extensions_filters_http_stateful_session_upb",
5057    deps = ["@envoy_api//envoy/extensions/filters/http/stateful_session/v3:pkg"],
5058)
5059
5060grpc_upb_proto_reflection_library(
5061    name = "envoy_extensions_filters_http_stateful_session_upbdefs",
5062    deps = ["@envoy_api//envoy/extensions/filters/http/stateful_session/v3:pkg"],
5063)
5064
5065grpc_upb_proto_library(
5066    name = "envoy_extensions_http_stateful_session_cookie_upb",
5067    deps = ["@envoy_api//envoy/extensions/http/stateful_session/cookie/v3:pkg"],
5068)
5069
5070grpc_upb_proto_reflection_library(
5071    name = "envoy_extensions_http_stateful_session_cookie_upbdefs",
5072    deps = ["@envoy_api//envoy/extensions/http/stateful_session/cookie/v3:pkg"],
5073)
5074
5075grpc_upb_proto_library(
5076    name = "envoy_type_http_upb",
5077    deps = ["@envoy_api//envoy/type/http/v3:pkg"],
5078)
5079
5080grpc_upb_proto_library(
5081    name = "envoy_extensions_load_balancing_policies_client_side_weighted_round_robin_upb",
5082    deps = ["@envoy_api//envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3:pkg"],
5083)
5084
5085grpc_upb_proto_library(
5086    name = "envoy_extensions_load_balancing_policies_pick_first_upb",
5087    deps = ["@envoy_api//envoy/extensions/load_balancing_policies/pick_first/v3:pkg"],
5088)
5089
5090grpc_upb_proto_library(
5091    name = "envoy_extensions_load_balancing_policies_ring_hash_upb",
5092    deps = ["@envoy_api//envoy/extensions/load_balancing_policies/ring_hash/v3:pkg"],
5093)
5094
5095grpc_upb_proto_library(
5096    name = "envoy_extensions_load_balancing_policies_wrr_locality_upb",
5097    deps = ["@envoy_api//envoy/extensions/load_balancing_policies/wrr_locality/v3:pkg"],
5098)
5099
5100grpc_upb_proto_library(
5101    name = "envoy_extensions_filters_network_http_connection_manager_upb",
5102    deps = ["@envoy_api//envoy/extensions/filters/network/http_connection_manager/v3:pkg"],
5103)
5104
5105grpc_upb_proto_reflection_library(
5106    name = "envoy_extensions_filters_network_http_connection_manager_upbdefs",
5107    deps = ["@envoy_api//envoy/extensions/filters/network/http_connection_manager/v3:pkg"],
5108)
5109
5110grpc_upb_proto_library(
5111    name = "envoy_extensions_transport_sockets_tls_upb",
5112    deps = ["@envoy_api//envoy/extensions/transport_sockets/tls/v3:pkg"],
5113)
5114
5115grpc_upb_proto_reflection_library(
5116    name = "envoy_extensions_transport_sockets_tls_upbdefs",
5117    deps = ["@envoy_api//envoy/extensions/transport_sockets/tls/v3:pkg"],
5118)
5119
5120grpc_upb_proto_library(
5121    name = "envoy_extensions_transport_sockets_http_11_proxy_upb",
5122    deps = ["@envoy_api//envoy/extensions/transport_sockets/http_11_proxy/v3:pkg"],
5123)
5124
5125grpc_upb_proto_reflection_library(
5126    name = "envoy_extensions_transport_sockets_http_11_proxy_upbdefs",
5127    deps = ["@envoy_api//envoy/extensions/transport_sockets/http_11_proxy/v3:pkg"],
5128)
5129
5130grpc_upb_proto_library(
5131    name = "envoy_extensions_upstreams_http_upb",
5132    deps = ["@envoy_api//envoy/extensions/upstreams/http/v3:pkg"],
5133)
5134
5135grpc_upb_proto_reflection_library(
5136    name = "envoy_extensions_upstreams_http_upbdefs",
5137    deps = ["@envoy_api//envoy/extensions/upstreams/http/v3:pkg"],
5138)
5139
5140grpc_upb_proto_library(
5141    name = "envoy_service_discovery_upb",
5142    deps = ["@envoy_api//envoy/service/discovery/v3:pkg"],
5143)
5144
5145grpc_upb_proto_reflection_library(
5146    name = "envoy_service_discovery_upbdefs",
5147    deps = ["@envoy_api//envoy/service/discovery/v3:pkg"],
5148)
5149
5150grpc_upb_proto_library(
5151    name = "envoy_service_load_stats_upb",
5152    deps = ["@envoy_api//envoy/service/load_stats/v3:pkg"],
5153)
5154
5155grpc_upb_proto_reflection_library(
5156    name = "envoy_service_load_stats_upbdefs",
5157    deps = ["@envoy_api//envoy/service/load_stats/v3:pkg"],
5158)
5159
5160grpc_upb_proto_library(
5161    name = "envoy_service_status_upb",
5162    deps = ["@envoy_api//envoy/service/status/v3:pkg"],
5163)
5164
5165grpc_upb_proto_reflection_library(
5166    name = "envoy_service_status_upbdefs",
5167    deps = ["@envoy_api//envoy/service/status/v3:pkg"],
5168)
5169
5170grpc_upb_proto_library(
5171    name = "envoy_type_matcher_upb",
5172    deps = ["@envoy_api//envoy/type/matcher/v3:pkg"],
5173)
5174
5175grpc_upb_proto_library(
5176    name = "envoy_type_upb",
5177    deps = ["@envoy_api//envoy/type/v3:pkg"],
5178)
5179
5180grpc_upb_proto_library(
5181    name = "xds_type_upb",
5182    deps = ["@com_github_cncf_xds//xds/type/v3:pkg"],
5183)
5184
5185grpc_upb_proto_reflection_library(
5186    name = "xds_type_upbdefs",
5187    deps = ["@com_github_cncf_xds//xds/type/v3:pkg"],
5188)
5189
5190grpc_upb_proto_library(
5191    name = "xds_orca_upb",
5192    deps = ["@com_github_cncf_xds//xds/data/orca/v3:pkg"],
5193)
5194
5195grpc_upb_proto_library(
5196    name = "xds_orca_service_upb",
5197    deps = ["@com_github_cncf_xds//xds/service/orca/v3:pkg"],
5198)
5199
5200grpc_upb_proto_library(
5201    name = "grpc_health_upb",
5202    deps = ["//src/proto/grpc/health/v1:health_proto"],
5203)
5204
5205grpc_upb_proto_library(
5206    name = "google_rpc_status_upb",
5207    deps = ["@com_google_googleapis//google/rpc:status_proto"],
5208)
5209
5210grpc_upb_proto_reflection_library(
5211    name = "google_rpc_status_upbdefs",
5212    deps = ["@com_google_googleapis//google/rpc:status_proto"],
5213)
5214
5215grpc_upb_proto_library(
5216    name = "google_api_expr_v1alpha1_syntax_upb",
5217    deps = ["@com_google_googleapis//google/api/expr/v1alpha1:syntax_proto"],
5218)
5219
5220grpc_upb_proto_library(
5221    name = "grpc_lb_upb",
5222    deps = ["//src/proto/grpc/lb/v1:load_balancer_proto"],
5223)
5224
5225grpc_upb_proto_library(
5226    name = "alts_upb",
5227    deps = ["//src/proto/grpc/gcp:alts_handshaker_proto"],
5228)
5229
5230grpc_upb_proto_library(
5231    name = "rls_upb",
5232    deps = ["//src/proto/grpc/lookup/v1:rls_proto"],
5233)
5234
5235grpc_upb_proto_library(
5236    name = "rls_config_upb",
5237    deps = ["//src/proto/grpc/lookup/v1:rls_config_proto"],
5238)
5239
5240grpc_upb_proto_reflection_library(
5241    name = "rls_config_upbdefs",
5242    deps = ["//src/proto/grpc/lookup/v1:rls_config_proto"],
5243)
5244
5245WELL_KNOWN_PROTO_TARGETS = [
5246    "any",
5247    "duration",
5248    "empty",
5249    "struct",
5250    "timestamp",
5251    "wrappers",
5252]
5253
5254[grpc_upb_proto_library(
5255    name = "protobuf_" + target + "_upb",
5256    deps = ["@com_google_protobuf//:" + target + "_proto"],
5257) for target in WELL_KNOWN_PROTO_TARGETS]
5258
5259[grpc_upb_proto_reflection_library(
5260    name = "protobuf_" + target + "_upbdefs",
5261    deps = ["@com_google_protobuf//:" + target + "_proto"],
5262) for target in WELL_KNOWN_PROTO_TARGETS]
5263
5264grpc_generate_one_off_targets()
5265
5266filegroup(
5267    name = "root_certificates",
5268    srcs = [
5269        "etc/roots.pem",
5270    ],
5271    visibility = ["//visibility:public"],
5272)
5273