load("//bazel:build.bzl", "redpanda_cc_library")

redpanda_cc_library(
    name = "client",
    srcs = [
        "assignment_plans.cc",
        "broker.cc",
        "brokers.cc",
        "client.cc",
        "client_fetch_batch_reader.cc",
        "config_utils.cc",
        "configuration.cc",
        "consumer.cc",
        "fetch_session.cc",
        "fetcher.cc",
        "partitioners.cc",
        "producer.cc",
        "sasl_client.cc",
        "topic_cache.cc",
    ],
    hdrs = [
        "assignment_plans.h",
        "broker.h",
        "brokers.h",
        "client.h",
        "client_fetch_batch_reader.h",
        "config_utils.h",
        "configuration.h",
        "consumer.h",
        "exceptions.h",
        "fetch_session.h",
        "fetcher.h",
        "fwd.h",
        "logger.h",
        "partitioners.h",
        "produce_batcher.h",
        "produce_partition.h",
        "producer.h",
        "sasl_client.h",
        "topic_cache.h",
        "transport.h",
        "types.h",
        "utils.h",
    ],
    include_prefix = "kafka/client",
    visibility = ["//visibility:public"],
    deps = [
        "//src/v/base",
        "//src/v/bytes:iobuf",
        "//src/v/bytes:iobuf_parser",
        "//src/v/bytes:iostream",
        "//src/v/bytes:scattered_message",
        "//src/v/cluster",
        "//src/v/config",
        "//src/v/container:fragmented_vector",
        "//src/v/hashing:murmur",
        "//src/v/kafka/protocol",
        "//src/v/kafka/protocol:api_versions",
        "//src/v/kafka/protocol:create_topics",
        "//src/v/kafka/protocol:delete_records",
        "//src/v/kafka/protocol:describe_groups",
        "//src/v/kafka/protocol:fetch",
        "//src/v/kafka/protocol:find_coordinator",
        "//src/v/kafka/protocol:flex_versions",
        "//src/v/kafka/protocol:heartbeat",
        "//src/v/kafka/protocol:join_group",
        "//src/v/kafka/protocol:leave_group",
        "//src/v/kafka/protocol:list_offset",
        "//src/v/kafka/protocol:metadata",
        "//src/v/kafka/protocol:offset_commit",
        "//src/v/kafka/protocol:offset_fetch",
        "//src/v/kafka/protocol:offset_for_leader_epoch",
        "//src/v/kafka/protocol:produce",
        "//src/v/kafka/protocol:sasl_authenticate",
        "//src/v/kafka/protocol:sasl_handshake",
        "//src/v/kafka/protocol:sync_group",
        "//src/v/kafka/protocol/schemata:offset_commit_request",
        "//src/v/model",
        "//src/v/net",
        "//src/v/random:generators",
        "//src/v/rpc",
        "//src/v/security",
        "//src/v/ssx:future_util",
        "//src/v/ssx:semaphore",
        "//src/v/storage:record_batch_builder",
        "//src/v/strings:string_switch",
        "//src/v/thirdparty/c-ares",
        "//src/v/utils:mutex",
        "//src/v/utils:retry",
        "//src/v/utils:truncating_logger",
        "//src/v/utils:unresolved_address",
        "@abseil-cpp//absl/container:flat_hash_map",
        "@abseil-cpp//absl/container:flat_hash_set",
        "@abseil-cpp//absl/container:node_hash_map",
        "@abseil-cpp//absl/hash",
        "@fmt",
        "@seastar",
    ],
)
