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