Skip to content

Constants

RD_KAFKA_LOG_PRINT

public RD_KAFKA_LOG_PRINT = 100

RD_KAFKA_LOG_SYSLOG

public RD_KAFKA_LOG_SYSLOG = 101

RD_KAFKA_LOG_SYSLOG_PRINT

public RD_KAFKA_LOG_SYSLOG_PRINT = 102

RD_KAFKA_MSG_PARTITIONER_RANDOM

public RD_KAFKA_MSG_PARTITIONER_RANDOM = 2

RD_KAFKA_MSG_PARTITIONER_CONSISTENT

public RD_KAFKA_MSG_PARTITIONER_CONSISTENT = 3

RD_KAFKA_MSG_PARTITIONER_CONSISTENT_RANDOM

public RD_KAFKA_MSG_PARTITIONER_CONSISTENT_RANDOM = 4

RD_KAFKA_MSG_PARTITIONER_MURMUR2

public RD_KAFKA_MSG_PARTITIONER_MURMUR2 = 5

RD_KAFKA_MSG_PARTITIONER_MURMUR2_RANDOM

public RD_KAFKA_MSG_PARTITIONER_MURMUR2_RANDOM = 6

RD_KAFKA_MSG_PARTITIONER_FNV1A

public RD_KAFKA_MSG_PARTITIONER_FNV1A = 7

RD_KAFKA_MSG_PARTITIONER_FNV1A_RANDOM

public RD_KAFKA_MSG_PARTITIONER_FNV1A_RANDOM = 8

RD_KAFKA_DESTROY_F_NO_CONSUMER_CLOSE

public RD_KAFKA_DESTROY_F_NO_CONSUMER_CLOSE = 8

Flags for rd_kafka_destroy_flags()

Don't call consumer_close() to leave group and commit final offsets.

This also disables consumer callbacks to be called from rd_kafka_destroy*(), such as rebalance_cb.

The consumer group handler is still closed internally, but from an application perspective none of the functionality from consumer_close() is performed.

RD_KAFKA_PARTITION_UA

public RD_KAFKA_PARTITION_UA = -1

Unassigned partition.

The unassigned partition is used by the producer API for messages that should be partitioned using the configured or default partitioner.

RD_KAFKA_OFFSET_BEGINNING

public RD_KAFKA_OFFSET_BEGINNING = -2

Start consuming from beginning of \ kafka partition queue: oldest msg

RD_KAFKA_OFFSET_END

public RD_KAFKA_OFFSET_END = -1

Start consuming from end of kafka \ partition queue: next msg

RD_KAFKA_OFFSET_STORED

public RD_KAFKA_OFFSET_STORED = -1000

Start consuming from offset retrieved \ from offset store

RD_KAFKA_OFFSET_INVALID

public RD_KAFKA_OFFSET_INVALID = -1001

Invalid offset

RD_KAFKA_OFFSET_TAIL_BASE

public RD_KAFKA_OFFSET_TAIL_BASE = -2000
define

RD_KAFKA_MSG_F_FREE

public RD_KAFKA_MSG_F_FREE = 1

Producer message flags.

Delegate freeing of payload to rdkafka. \

RD_KAFKA_MSG_F_COPY

public RD_KAFKA_MSG_F_COPY = 2

rdkafka will make a copy of the payload. \

RD_KAFKA_MSG_F_BLOCK

public RD_KAFKA_MSG_F_BLOCK = 4

Block produce*() on message queue full. \ WARNING: If a delivery report callback \ is used, the application MUST \ call rd_kafka_poll() (or equiv.) \ to make sure delivered messages \ are drained from the internal \ delivery report queue. \ Failure to do so will result \ in indefinitely blocking on \ the produce() call when the \ message queue is full.

RD_KAFKA_MSG_F_PARTITION

public RD_KAFKA_MSG_F_PARTITION = 8

produce_batch() will honor \ per-message partition.

RD_KAFKA_PURGE_F_QUEUE

public RD_KAFKA_PURGE_F_QUEUE = 1

Flags for rd_kafka_purge()

Purge messages in internal queues.

RD_KAFKA_PURGE_F_INFLIGHT

public RD_KAFKA_PURGE_F_INFLIGHT = 2

Purge messages in-flight to or from the broker. Purging these messages will void any future acknowledgements from the broker, making it impossible for the application to know if these messages were successfully delivered or not. Retrying these messages may lead to duplicates.

RD_KAFKA_PURGE_F_NON_BLOCKING

public RD_KAFKA_PURGE_F_NON_BLOCKING = 4

Don't wait for background thread queue purging to finish.

RD_KAFKA_EVENT_NONE

public RD_KAFKA_EVENT_NONE = 0

Unset value

RD_KAFKA_EVENT_DR

public RD_KAFKA_EVENT_DR = 1

Producer Delivery report batch

RD_KAFKA_EVENT_FETCH

public RD_KAFKA_EVENT_FETCH = 2

Fetched message (consumer)

RD_KAFKA_EVENT_LOG

public RD_KAFKA_EVENT_LOG = 4

Log message

RD_KAFKA_EVENT_ERROR

public RD_KAFKA_EVENT_ERROR = 8

Error

RD_KAFKA_EVENT_REBALANCE

public RD_KAFKA_EVENT_REBALANCE = 16

Group rebalance (consumer)

RD_KAFKA_EVENT_OFFSET_COMMIT

public RD_KAFKA_EVENT_OFFSET_COMMIT = 32

Offset commit result

RD_KAFKA_EVENT_STATS

public RD_KAFKA_EVENT_STATS = 64

Stats

RD_KAFKA_EVENT_CREATETOPICS_RESULT

public RD_KAFKA_EVENT_CREATETOPICS_RESULT = 100

CreateTopics_result_t

RD_KAFKA_EVENT_DELETETOPICS_RESULT

public RD_KAFKA_EVENT_DELETETOPICS_RESULT = 101

DeleteTopics_result_t

RD_KAFKA_EVENT_CREATEPARTITIONS_RESULT

public RD_KAFKA_EVENT_CREATEPARTITIONS_RESULT = 102

CreatePartitions_result_t

RD_KAFKA_EVENT_ALTERCONFIGS_RESULT

public RD_KAFKA_EVENT_ALTERCONFIGS_RESULT = 103

AlterConfigs_result_t

RD_KAFKA_EVENT_DESCRIBECONFIGS_RESULT

public RD_KAFKA_EVENT_DESCRIBECONFIGS_RESULT = 104

DescribeConfigs_result_t

RD_KAFKA_PRODUCER

public RD_KAFKA_PRODUCER = 0

Producer client

RD_KAFKA_CONSUMER

public RD_KAFKA_CONSUMER = 1

Consumer client

RD_KAFKA_TIMESTAMP_NOT_AVAILABLE

public RD_KAFKA_TIMESTAMP_NOT_AVAILABLE = 0

Timestamp not available

RD_KAFKA_TIMESTAMP_CREATE_TIME

public RD_KAFKA_TIMESTAMP_CREATE_TIME = 1

Message creation time

RD_KAFKA_TIMESTAMP_LOG_APPEND_TIME

public RD_KAFKA_TIMESTAMP_LOG_APPEND_TIME = 2

Log append time

RD_KAFKA_RESP_ERR__BEGIN

public RD_KAFKA_RESP_ERR__BEGIN = -200

Begin internal error codes

RD_KAFKA_RESP_ERR__BAD_MSG

public RD_KAFKA_RESP_ERR__BAD_MSG = -199

Received message is incorrect

RD_KAFKA_RESP_ERR__BAD_COMPRESSION

public RD_KAFKA_RESP_ERR__BAD_COMPRESSION = -198

Bad/unknown compression

RD_KAFKA_RESP_ERR__DESTROY

public RD_KAFKA_RESP_ERR__DESTROY = -197

Broker is going away

RD_KAFKA_RESP_ERR__FAIL

public RD_KAFKA_RESP_ERR__FAIL = -196

Generic failure

RD_KAFKA_RESP_ERR__TRANSPORT

public RD_KAFKA_RESP_ERR__TRANSPORT = -195

Broker transport failure

RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE

public RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE = -194

Critical system resource

RD_KAFKA_RESP_ERR__RESOLVE

public RD_KAFKA_RESP_ERR__RESOLVE = -193

Failed to resolve broker

RD_KAFKA_RESP_ERR__MSG_TIMED_OUT

public RD_KAFKA_RESP_ERR__MSG_TIMED_OUT = -192

Produced message timed out

RD_KAFKA_RESP_ERR__PARTITION_EOF

public RD_KAFKA_RESP_ERR__PARTITION_EOF = -191

Reached the end of the topic+partition queue on the broker. Not really an error. This event is disabled by default, see the enable.partition.eof configuration property.

RD_KAFKA_RESP_ERR__UNKNOWN_PARTITION

public RD_KAFKA_RESP_ERR__UNKNOWN_PARTITION = -190

Permanent: Partition does not exist in cluster.

RD_KAFKA_RESP_ERR__FS

public RD_KAFKA_RESP_ERR__FS = -189

File or filesystem error

RD_KAFKA_RESP_ERR__UNKNOWN_TOPIC

public RD_KAFKA_RESP_ERR__UNKNOWN_TOPIC = -188

Permanent: Topic does not exist in cluster.

RD_KAFKA_RESP_ERR__ALL_BROKERS_DOWN

public RD_KAFKA_RESP_ERR__ALL_BROKERS_DOWN = -187

All broker connections are down.

RD_KAFKA_RESP_ERR__INVALID_ARG

public RD_KAFKA_RESP_ERR__INVALID_ARG = -186

Invalid argument, or invalid configuration

RD_KAFKA_RESP_ERR__TIMED_OUT

public RD_KAFKA_RESP_ERR__TIMED_OUT = -185

Operation timed out

RD_KAFKA_RESP_ERR__QUEUE_FULL

public RD_KAFKA_RESP_ERR__QUEUE_FULL = -184

Queue is full

RD_KAFKA_RESP_ERR__ISR_INSUFF

public RD_KAFKA_RESP_ERR__ISR_INSUFF = -183

ISR count < required.acks

RD_KAFKA_RESP_ERR__NODE_UPDATE

public RD_KAFKA_RESP_ERR__NODE_UPDATE = -182

Broker node update

RD_KAFKA_RESP_ERR__SSL

public RD_KAFKA_RESP_ERR__SSL = -181

SSL error

RD_KAFKA_RESP_ERR__WAIT_COORD

public RD_KAFKA_RESP_ERR__WAIT_COORD = -180

Waiting for coordinator to become available.

RD_KAFKA_RESP_ERR__UNKNOWN_GROUP

public RD_KAFKA_RESP_ERR__UNKNOWN_GROUP = -179

Unknown client group

RD_KAFKA_RESP_ERR__IN_PROGRESS

public RD_KAFKA_RESP_ERR__IN_PROGRESS = -178

Operation in progress

RD_KAFKA_RESP_ERR__PREV_IN_PROGRESS

public RD_KAFKA_RESP_ERR__PREV_IN_PROGRESS = -177

Previous operation in progress, wait for it to finish.

RD_KAFKA_RESP_ERR__EXISTING_SUBSCRIPTION

public RD_KAFKA_RESP_ERR__EXISTING_SUBSCRIPTION = -176

This operation would interfere with an existing subscription

RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS

public RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS = -175

Assigned partitions (rebalance_cb)

RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS

public RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS = -174

Revoked partitions (rebalance_cb)

RD_KAFKA_RESP_ERR__CONFLICT

public RD_KAFKA_RESP_ERR__CONFLICT = -173

Conflicting use

RD_KAFKA_RESP_ERR__STATE

public RD_KAFKA_RESP_ERR__STATE = -172

Wrong state

RD_KAFKA_RESP_ERR__UNKNOWN_PROTOCOL

public RD_KAFKA_RESP_ERR__UNKNOWN_PROTOCOL = -171

Unknown protocol

RD_KAFKA_RESP_ERR__NOT_IMPLEMENTED

public RD_KAFKA_RESP_ERR__NOT_IMPLEMENTED = -170

Not implemented

RD_KAFKA_RESP_ERR__AUTHENTICATION

public RD_KAFKA_RESP_ERR__AUTHENTICATION = -169

Authentication failure

RD_KAFKA_RESP_ERR__NO_OFFSET

public RD_KAFKA_RESP_ERR__NO_OFFSET = -168

No stored offset

RD_KAFKA_RESP_ERR__OUTDATED

public RD_KAFKA_RESP_ERR__OUTDATED = -167

Outdated

RD_KAFKA_RESP_ERR__TIMED_OUT_QUEUE

public RD_KAFKA_RESP_ERR__TIMED_OUT_QUEUE = -166

Timed out in queue

RD_KAFKA_RESP_ERR__UNSUPPORTED_FEATURE

public RD_KAFKA_RESP_ERR__UNSUPPORTED_FEATURE = -165

Feature not supported by broker

RD_KAFKA_RESP_ERR__WAIT_CACHE

public RD_KAFKA_RESP_ERR__WAIT_CACHE = -164

Awaiting cache update

RD_KAFKA_RESP_ERR__INTR

public RD_KAFKA_RESP_ERR__INTR = -163

Operation interrupted (e.g., due to yield))

RD_KAFKA_RESP_ERR__KEY_SERIALIZATION

public RD_KAFKA_RESP_ERR__KEY_SERIALIZATION = -162

Key serialization error

RD_KAFKA_RESP_ERR__VALUE_SERIALIZATION

public RD_KAFKA_RESP_ERR__VALUE_SERIALIZATION = -161

Value serialization error

RD_KAFKA_RESP_ERR__KEY_DESERIALIZATION

public RD_KAFKA_RESP_ERR__KEY_DESERIALIZATION = -160

Key deserialization error

RD_KAFKA_RESP_ERR__VALUE_DESERIALIZATION

public RD_KAFKA_RESP_ERR__VALUE_DESERIALIZATION = -159

Value deserialization error

RD_KAFKA_RESP_ERR__PARTIAL

public RD_KAFKA_RESP_ERR__PARTIAL = -158

Partial response

RD_KAFKA_RESP_ERR__READ_ONLY

public RD_KAFKA_RESP_ERR__READ_ONLY = -157

Modification attempted on read-only object

RD_KAFKA_RESP_ERR__NOENT

public RD_KAFKA_RESP_ERR__NOENT = -156

No such entry / item not found

RD_KAFKA_RESP_ERR__UNDERFLOW

public RD_KAFKA_RESP_ERR__UNDERFLOW = -155

Read underflow

RD_KAFKA_RESP_ERR__INVALID_TYPE

public RD_KAFKA_RESP_ERR__INVALID_TYPE = -154

Invalid type

RD_KAFKA_RESP_ERR__RETRY

public RD_KAFKA_RESP_ERR__RETRY = -153

Retry operation

RD_KAFKA_RESP_ERR__PURGE_QUEUE

public RD_KAFKA_RESP_ERR__PURGE_QUEUE = -152

Purged in queue

RD_KAFKA_RESP_ERR__PURGE_INFLIGHT

public RD_KAFKA_RESP_ERR__PURGE_INFLIGHT = -151

Purged in flight

RD_KAFKA_RESP_ERR__FATAL

public RD_KAFKA_RESP_ERR__FATAL = -150

Fatal error: see rd_kafka_fatal_error()

RD_KAFKA_RESP_ERR__INCONSISTENT

public RD_KAFKA_RESP_ERR__INCONSISTENT = -149

Inconsistent state

RD_KAFKA_RESP_ERR__GAPLESS_GUARANTEE

public RD_KAFKA_RESP_ERR__GAPLESS_GUARANTEE = -148

Gap-less ordering would not be guaranteed if proceeding

RD_KAFKA_RESP_ERR__MAX_POLL_EXCEEDED

public RD_KAFKA_RESP_ERR__MAX_POLL_EXCEEDED = -147

Maximum poll interval exceeded

RD_KAFKA_RESP_ERR__END

public RD_KAFKA_RESP_ERR__END = -100

End internal error codes

RD_KAFKA_RESP_ERR_UNKNOWN

public RD_KAFKA_RESP_ERR_UNKNOWN = -1

Unknown broker error

RD_KAFKA_RESP_ERR_NO_ERROR

public RD_KAFKA_RESP_ERR_NO_ERROR = 0

Success

RD_KAFKA_RESP_ERR_OFFSET_OUT_OF_RANGE

public RD_KAFKA_RESP_ERR_OFFSET_OUT_OF_RANGE = 1

Offset out of range

RD_KAFKA_RESP_ERR_INVALID_MSG

public RD_KAFKA_RESP_ERR_INVALID_MSG = 2

Invalid message

RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_OR_PART

public RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_OR_PART = 3

Unknown topic or partition

RD_KAFKA_RESP_ERR_INVALID_MSG_SIZE

public RD_KAFKA_RESP_ERR_INVALID_MSG_SIZE = 4

Invalid message size

RD_KAFKA_RESP_ERR_LEADER_NOT_AVAILABLE

public RD_KAFKA_RESP_ERR_LEADER_NOT_AVAILABLE = 5

Leader not available

RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION

public RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION = 6

Not leader for partition

RD_KAFKA_RESP_ERR_REQUEST_TIMED_OUT

public RD_KAFKA_RESP_ERR_REQUEST_TIMED_OUT = 7

Request timed out

RD_KAFKA_RESP_ERR_BROKER_NOT_AVAILABLE

public RD_KAFKA_RESP_ERR_BROKER_NOT_AVAILABLE = 8

Broker not available

RD_KAFKA_RESP_ERR_REPLICA_NOT_AVAILABLE

public RD_KAFKA_RESP_ERR_REPLICA_NOT_AVAILABLE = 9

Replica not available

RD_KAFKA_RESP_ERR_MSG_SIZE_TOO_LARGE

public RD_KAFKA_RESP_ERR_MSG_SIZE_TOO_LARGE = 10

Message size too large

RD_KAFKA_RESP_ERR_STALE_CTRL_EPOCH

public RD_KAFKA_RESP_ERR_STALE_CTRL_EPOCH = 11

StaleControllerEpochCode

RD_KAFKA_RESP_ERR_OFFSET_METADATA_TOO_LARGE

public RD_KAFKA_RESP_ERR_OFFSET_METADATA_TOO_LARGE = 12

Offset metadata string too large

RD_KAFKA_RESP_ERR_NETWORK_EXCEPTION

public RD_KAFKA_RESP_ERR_NETWORK_EXCEPTION = 13

Broker disconnected before response received

RD_KAFKA_RESP_ERR_GROUP_LOAD_IN_PROGRESS

public RD_KAFKA_RESP_ERR_GROUP_LOAD_IN_PROGRESS = 14

Group coordinator load in progress

RD_KAFKA_RESP_ERR_GROUP_COORDINATOR_NOT_AVAILABLE

public RD_KAFKA_RESP_ERR_GROUP_COORDINATOR_NOT_AVAILABLE = 15

Group coordinator not available

RD_KAFKA_RESP_ERR_NOT_COORDINATOR_FOR_GROUP

public RD_KAFKA_RESP_ERR_NOT_COORDINATOR_FOR_GROUP = 16

Not coordinator for group

RD_KAFKA_RESP_ERR_TOPIC_EXCEPTION

public RD_KAFKA_RESP_ERR_TOPIC_EXCEPTION = 17

Invalid topic

RD_KAFKA_RESP_ERR_RECORD_LIST_TOO_LARGE

public RD_KAFKA_RESP_ERR_RECORD_LIST_TOO_LARGE = 18

Message batch larger than configured server segment size

RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS

public RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS = 19

Not enough in-sync replicas

RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS_AFTER_APPEND

public RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS_AFTER_APPEND = 20

Message(s) written to insufficient number of in-sync replicas

RD_KAFKA_RESP_ERR_INVALID_REQUIRED_ACKS

public RD_KAFKA_RESP_ERR_INVALID_REQUIRED_ACKS = 21

Invalid required acks value

RD_KAFKA_RESP_ERR_ILLEGAL_GENERATION

public RD_KAFKA_RESP_ERR_ILLEGAL_GENERATION = 22

Specified group generation id is not valid

RD_KAFKA_RESP_ERR_INCONSISTENT_GROUP_PROTOCOL

public RD_KAFKA_RESP_ERR_INCONSISTENT_GROUP_PROTOCOL = 23

Inconsistent group protocol

RD_KAFKA_RESP_ERR_INVALID_GROUP_ID

public RD_KAFKA_RESP_ERR_INVALID_GROUP_ID = 24

Invalid group.id

RD_KAFKA_RESP_ERR_UNKNOWN_MEMBER_ID

public RD_KAFKA_RESP_ERR_UNKNOWN_MEMBER_ID = 25

Unknown member

RD_KAFKA_RESP_ERR_INVALID_SESSION_TIMEOUT

public RD_KAFKA_RESP_ERR_INVALID_SESSION_TIMEOUT = 26

Invalid session timeout

RD_KAFKA_RESP_ERR_REBALANCE_IN_PROGRESS

public RD_KAFKA_RESP_ERR_REBALANCE_IN_PROGRESS = 27

Group rebalance in progress

RD_KAFKA_RESP_ERR_INVALID_COMMIT_OFFSET_SIZE

public RD_KAFKA_RESP_ERR_INVALID_COMMIT_OFFSET_SIZE = 28

Commit offset data size is not valid

RD_KAFKA_RESP_ERR_TOPIC_AUTHORIZATION_FAILED

public RD_KAFKA_RESP_ERR_TOPIC_AUTHORIZATION_FAILED = 29

Topic authorization failed

RD_KAFKA_RESP_ERR_GROUP_AUTHORIZATION_FAILED

public RD_KAFKA_RESP_ERR_GROUP_AUTHORIZATION_FAILED = 30

Group authorization failed

RD_KAFKA_RESP_ERR_CLUSTER_AUTHORIZATION_FAILED

public RD_KAFKA_RESP_ERR_CLUSTER_AUTHORIZATION_FAILED = 31

Cluster authorization failed

RD_KAFKA_RESP_ERR_INVALID_TIMESTAMP

public RD_KAFKA_RESP_ERR_INVALID_TIMESTAMP = 32

Invalid timestamp

RD_KAFKA_RESP_ERR_UNSUPPORTED_SASL_MECHANISM

public RD_KAFKA_RESP_ERR_UNSUPPORTED_SASL_MECHANISM = 33

Unsupported SASL mechanism

RD_KAFKA_RESP_ERR_ILLEGAL_SASL_STATE

public RD_KAFKA_RESP_ERR_ILLEGAL_SASL_STATE = 34

Illegal SASL state

RD_KAFKA_RESP_ERR_UNSUPPORTED_VERSION

public RD_KAFKA_RESP_ERR_UNSUPPORTED_VERSION = 35

Unuspported version

RD_KAFKA_RESP_ERR_TOPIC_ALREADY_EXISTS

public RD_KAFKA_RESP_ERR_TOPIC_ALREADY_EXISTS = 36

Topic already exists

RD_KAFKA_RESP_ERR_INVALID_PARTITIONS

public RD_KAFKA_RESP_ERR_INVALID_PARTITIONS = 37

Invalid number of partitions

RD_KAFKA_RESP_ERR_INVALID_REPLICATION_FACTOR

public RD_KAFKA_RESP_ERR_INVALID_REPLICATION_FACTOR = 38

Invalid replication factor

RD_KAFKA_RESP_ERR_INVALID_REPLICA_ASSIGNMENT

public RD_KAFKA_RESP_ERR_INVALID_REPLICA_ASSIGNMENT = 39

Invalid replica assignment

RD_KAFKA_RESP_ERR_INVALID_CONFIG

public RD_KAFKA_RESP_ERR_INVALID_CONFIG = 40

Invalid config

RD_KAFKA_RESP_ERR_NOT_CONTROLLER

public RD_KAFKA_RESP_ERR_NOT_CONTROLLER = 41

Not controller for cluster

RD_KAFKA_RESP_ERR_INVALID_REQUEST

public RD_KAFKA_RESP_ERR_INVALID_REQUEST = 42

Invalid request

RD_KAFKA_RESP_ERR_UNSUPPORTED_FOR_MESSAGE_FORMAT

public RD_KAFKA_RESP_ERR_UNSUPPORTED_FOR_MESSAGE_FORMAT = 43

Message format on broker does not support request

RD_KAFKA_RESP_ERR_POLICY_VIOLATION

public RD_KAFKA_RESP_ERR_POLICY_VIOLATION = 44

Policy violation

RD_KAFKA_RESP_ERR_OUT_OF_ORDER_SEQUENCE_NUMBER

public RD_KAFKA_RESP_ERR_OUT_OF_ORDER_SEQUENCE_NUMBER = 45

Broker received an out of order sequence number

RD_KAFKA_RESP_ERR_DUPLICATE_SEQUENCE_NUMBER

public RD_KAFKA_RESP_ERR_DUPLICATE_SEQUENCE_NUMBER = 46

Broker received a duplicate sequence number

RD_KAFKA_RESP_ERR_INVALID_PRODUCER_EPOCH

public RD_KAFKA_RESP_ERR_INVALID_PRODUCER_EPOCH = 47

Producer attempted an operation with an old epoch

RD_KAFKA_RESP_ERR_INVALID_TXN_STATE

public RD_KAFKA_RESP_ERR_INVALID_TXN_STATE = 48

Producer attempted a transactional operation in an invalid state

RD_KAFKA_RESP_ERR_INVALID_PRODUCER_ID_MAPPING

public RD_KAFKA_RESP_ERR_INVALID_PRODUCER_ID_MAPPING = 49

Producer attempted to use a producer id which is not currently assigned to its transactional id

RD_KAFKA_RESP_ERR_INVALID_TRANSACTION_TIMEOUT

public RD_KAFKA_RESP_ERR_INVALID_TRANSACTION_TIMEOUT = 50

Transaction timeout is larger than the maximum value allowed by the broker's max.transaction.timeout.ms

RD_KAFKA_RESP_ERR_CONCURRENT_TRANSACTIONS

public RD_KAFKA_RESP_ERR_CONCURRENT_TRANSACTIONS = 51

Producer attempted to update a transaction while another concurrent operation on the same transaction was ongoing

RD_KAFKA_RESP_ERR_TRANSACTION_COORDINATOR_FENCED

public RD_KAFKA_RESP_ERR_TRANSACTION_COORDINATOR_FENCED = 52

Indicates that the transaction coordinator sending a WriteTxnMarker is no longer the current coordinator for a given producer

RD_KAFKA_RESP_ERR_TRANSACTIONAL_ID_AUTHORIZATION_FAILED

public RD_KAFKA_RESP_ERR_TRANSACTIONAL_ID_AUTHORIZATION_FAILED = 53

Transactional Id authorization failed

RD_KAFKA_RESP_ERR_SECURITY_DISABLED

public RD_KAFKA_RESP_ERR_SECURITY_DISABLED = 54

Security features are disabled

RD_KAFKA_RESP_ERR_OPERATION_NOT_ATTEMPTED

public RD_KAFKA_RESP_ERR_OPERATION_NOT_ATTEMPTED = 55

Operation not attempted

RD_KAFKA_RESP_ERR_KAFKA_STORAGE_ERROR

public RD_KAFKA_RESP_ERR_KAFKA_STORAGE_ERROR = 56

Disk error when trying to access log file on the disk

RD_KAFKA_RESP_ERR_LOG_DIR_NOT_FOUND

public RD_KAFKA_RESP_ERR_LOG_DIR_NOT_FOUND = 57

The user-specified log directory is not found in the broker config

RD_KAFKA_RESP_ERR_SASL_AUTHENTICATION_FAILED

public RD_KAFKA_RESP_ERR_SASL_AUTHENTICATION_FAILED = 58

SASL Authentication failed

RD_KAFKA_RESP_ERR_UNKNOWN_PRODUCER_ID

public RD_KAFKA_RESP_ERR_UNKNOWN_PRODUCER_ID = 59

Unknown Producer Id

RD_KAFKA_RESP_ERR_REASSIGNMENT_IN_PROGRESS

public RD_KAFKA_RESP_ERR_REASSIGNMENT_IN_PROGRESS = 60

Partition reassignment is in progress

RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTH_DISABLED

public RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTH_DISABLED = 61

Delegation Token feature is not enabled

RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_NOT_FOUND

public RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_NOT_FOUND = 62

Delegation Token is not found on server

RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_OWNER_MISMATCH

public RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_OWNER_MISMATCH = 63

Specified Principal is not valid Owner/Renewer

RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_REQUEST_NOT_ALLOWED

public RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_REQUEST_NOT_ALLOWED = 64

Delegation Token requests are not allowed on this connection

RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTHORIZATION_FAILED

public RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTHORIZATION_FAILED = 65

Delegation Token authorization failed

RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_EXPIRED

public RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_EXPIRED = 66

Delegation Token is expired

RD_KAFKA_RESP_ERR_INVALID_PRINCIPAL_TYPE

public RD_KAFKA_RESP_ERR_INVALID_PRINCIPAL_TYPE = 67

Supplied principalType is not supported

RD_KAFKA_RESP_ERR_NON_EMPTY_GROUP

public RD_KAFKA_RESP_ERR_NON_EMPTY_GROUP = 68

The group is not empty

RD_KAFKA_RESP_ERR_GROUP_ID_NOT_FOUND

public RD_KAFKA_RESP_ERR_GROUP_ID_NOT_FOUND = 69

The group id does not exist

RD_KAFKA_RESP_ERR_FETCH_SESSION_ID_NOT_FOUND

public RD_KAFKA_RESP_ERR_FETCH_SESSION_ID_NOT_FOUND = 70

The fetch session ID was not found

RD_KAFKA_RESP_ERR_INVALID_FETCH_SESSION_EPOCH

public RD_KAFKA_RESP_ERR_INVALID_FETCH_SESSION_EPOCH = 71

The fetch session epoch is invalid

RD_KAFKA_RESP_ERR_LISTENER_NOT_FOUND

public RD_KAFKA_RESP_ERR_LISTENER_NOT_FOUND = 72

No matching listener

RD_KAFKA_RESP_ERR_TOPIC_DELETION_DISABLED

public RD_KAFKA_RESP_ERR_TOPIC_DELETION_DISABLED = 73

Topic deletion is disabled

RD_KAFKA_VTYPE_END

public RD_KAFKA_VTYPE_END = 0

va-arg sentinel

RD_KAFKA_VTYPE_TOPIC

public RD_KAFKA_VTYPE_TOPIC = 1

(const char *) Topic name

RD_KAFKA_VTYPE_RKT

public RD_KAFKA_VTYPE_RKT = 2

(rd_kafka_topic_t *) Topic handle

RD_KAFKA_VTYPE_PARTITION

public RD_KAFKA_VTYPE_PARTITION = 3

(int32_t) Partition

RD_KAFKA_VTYPE_VALUE

public RD_KAFKA_VTYPE_VALUE = 4

(void *, size_t) Message value (payload)

RD_KAFKA_VTYPE_KEY

public RD_KAFKA_VTYPE_KEY = 5

(void *, size_t) Message key

RD_KAFKA_VTYPE_OPAQUE

public RD_KAFKA_VTYPE_OPAQUE = 6

(void *) Per-message application opaque value. This is the same as the _private field in rd_kafka_message_t, also known as the msg_opaque.

RD_KAFKA_VTYPE_MSGFLAGS

public RD_KAFKA_VTYPE_MSGFLAGS = 7

(int) RD_KAFKA_MSG_F_.. flags

RD_KAFKA_VTYPE_TIMESTAMP

public RD_KAFKA_VTYPE_TIMESTAMP = 8

(int64_t) Milliseconds since epoch UTC

RD_KAFKA_VTYPE_HEADER

public RD_KAFKA_VTYPE_HEADER = 9

(const char *, const void *, ssize_t) Message Header

RD_KAFKA_VTYPE_HEADERS

public RD_KAFKA_VTYPE_HEADERS = 10

(rd_kafka_headers_t *) Headers list

RD_KAFKA_MSG_STATUS_NOT_PERSISTED

public RD_KAFKA_MSG_STATUS_NOT_PERSISTED = 0

Message was never transmitted to the broker, or failed with an error indicating it was not written to the log. Application retry risks ordering, but not duplication.

RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED

public RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED = 1

Message was transmitted to broker, but no acknowledgement was received. Application retry risks ordering and duplication.

RD_KAFKA_MSG_STATUS_PERSISTED

public RD_KAFKA_MSG_STATUS_PERSISTED = 2

Message was written to the log and acknowledged by the broker. No reason for application to retry. Note: this value should only be trusted with acks=all.

RD_KAFKA_CONF_UNKNOWN

public RD_KAFKA_CONF_UNKNOWN = -2

Unknown configuration name.

RD_KAFKA_CONF_INVALID

public RD_KAFKA_CONF_INVALID = -1

Invalid configuration value or property or value not supported in this build.

RD_KAFKA_CONF_OK

public RD_KAFKA_CONF_OK = 0

Configuration okay

RD_KAFKA_ADMIN_OP_ANY

public RD_KAFKA_ADMIN_OP_ANY = 0

Default value

RD_KAFKA_ADMIN_OP_CREATETOPICS

public RD_KAFKA_ADMIN_OP_CREATETOPICS = 1

CreateTopics

RD_KAFKA_ADMIN_OP_DELETETOPICS

public RD_KAFKA_ADMIN_OP_DELETETOPICS = 2

DeleteTopics

RD_KAFKA_ADMIN_OP_CREATEPARTITIONS

public RD_KAFKA_ADMIN_OP_CREATEPARTITIONS = 3

CreatePartitions

RD_KAFKA_ADMIN_OP_ALTERCONFIGS

public RD_KAFKA_ADMIN_OP_ALTERCONFIGS = 4

AlterConfigs

RD_KAFKA_ADMIN_OP_DESCRIBECONFIGS

public RD_KAFKA_ADMIN_OP_DESCRIBECONFIGS = 5

DescribeConfigs

RD_KAFKA_CONFIG_SOURCE_UNKNOWN_CONFIG

public RD_KAFKA_CONFIG_SOURCE_UNKNOWN_CONFIG = 0

Source unknown, e.g., in the ConfigEntry used for alter requests where source is not set

RD_KAFKA_CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG

public RD_KAFKA_CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG = 1

Dynamic topic config that is configured for a specific topic

RD_KAFKA_CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG

public RD_KAFKA_CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG = 2

Dynamic broker config that is configured for a specific broker

RD_KAFKA_CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG

public RD_KAFKA_CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG = 3

Dynamic broker config that is configured as default for all brokers in the cluster

RD_KAFKA_CONFIG_SOURCE_STATIC_BROKER_CONFIG

public RD_KAFKA_CONFIG_SOURCE_STATIC_BROKER_CONFIG = 4

Static broker config provided as broker properties at startup (e.g. from server.properties file)

RD_KAFKA_CONFIG_SOURCE_DEFAULT_CONFIG

public RD_KAFKA_CONFIG_SOURCE_DEFAULT_CONFIG = 5

Built-in default configuration for configs that have a default value

RD_KAFKA_CONFIG_SOURCE__CNT

public RD_KAFKA_CONFIG_SOURCE__CNT = 6

Number of source types defined

RD_KAFKA_RESOURCE_UNKNOWN

public RD_KAFKA_RESOURCE_UNKNOWN = 0

Unknown

RD_KAFKA_RESOURCE_ANY

public RD_KAFKA_RESOURCE_ANY = 1

Any (used for lookups)

RD_KAFKA_RESOURCE_TOPIC

public RD_KAFKA_RESOURCE_TOPIC = 2

Topic

RD_KAFKA_RESOURCE_GROUP

public RD_KAFKA_RESOURCE_GROUP = 3

Group

RD_KAFKA_RESOURCE_BROKER

public RD_KAFKA_RESOURCE_BROKER = 4

Broker

RD_KAFKA_RESOURCE__CNT

public RD_KAFKA_RESOURCE__CNT = 5

Number of resource types defined

RD_KAFKA_RESP_ERR_FENCED_LEADER_EPOCH

public RD_KAFKA_RESP_ERR_FENCED_LEADER_EPOCH = 74

Leader epoch is older than broker epoch

RD_KAFKA_RESP_ERR_UNKNOWN_LEADER_EPOCH

public RD_KAFKA_RESP_ERR_UNKNOWN_LEADER_EPOCH = 75

Leader epoch is newer than broker epoch

RD_KAFKA_RESP_ERR_STALE_BROKER_EPOCH

public RD_KAFKA_RESP_ERR_STALE_BROKER_EPOCH = 77

Broker epoch has changed

RD_KAFKA_RESP_ERR_OFFSET_NOT_AVAILABLE

public RD_KAFKA_RESP_ERR_OFFSET_NOT_AVAILABLE = 78

Leader high watermark is not caught up

RD_KAFKA_RESP_ERR_MEMBER_ID_REQUIRED

public RD_KAFKA_RESP_ERR_MEMBER_ID_REQUIRED = 79

Group member needs a valid member ID

RD_KAFKA_RESP_ERR_PREFERRED_LEADER_NOT_AVAILABLE

public RD_KAFKA_RESP_ERR_PREFERRED_LEADER_NOT_AVAILABLE = 80

Preferred leader was not available

RD_KAFKA_RESP_ERR_GROUP_MAX_SIZE_REACHED

public RD_KAFKA_RESP_ERR_GROUP_MAX_SIZE_REACHED = 81

Consumer group has reached maximum size

RD_KAFKA_EVENT_OAUTHBEARER_TOKEN_REFRESH

public RD_KAFKA_EVENT_OAUTHBEARER_TOKEN_REFRESH = 256

SASL/OAUTHBEARER token needs to be refreshed

RD_KAFKA_CERT_PUBLIC_KEY

public RD_KAFKA_CERT_PUBLIC_KEY = 0

Client's public key

RD_KAFKA_CERT_PRIVATE_KEY

public RD_KAFKA_CERT_PRIVATE_KEY = 1

Client's private key

RD_KAFKA_CERT_CA

public RD_KAFKA_CERT_CA = 2

CA certificate

RD_KAFKA_CERT__CNT

public RD_KAFKA_CERT__CNT = 3
enum rd_kafka_cert_type_t

RD_KAFKA_CERT_ENC_PKCS12

public RD_KAFKA_CERT_ENC_PKCS12 = 0

PKCS#12

RD_KAFKA_CERT_ENC_DER

public RD_KAFKA_CERT_ENC_DER = 1

DER / binary X.509 ASN1

RD_KAFKA_CERT_ENC_PEM

public RD_KAFKA_CERT_ENC_PEM = 2

PEM

RD_KAFKA_CERT_ENC__CNT

public RD_KAFKA_CERT_ENC__CNT = 3
enum rd_kafka_cert_enc_t

RD_KAFKA_THREAD_MAIN

public RD_KAFKA_THREAD_MAIN = 0

librdkafka's internal main thread

RD_KAFKA_THREAD_BACKGROUND

public RD_KAFKA_THREAD_BACKGROUND = 1

Background thread (if enabled)

RD_KAFKA_THREAD_BROKER

public RD_KAFKA_THREAD_BROKER = 2

Per-broker thread

RD_KAFKA_RESP_ERR__UNKNOWN_BROKER

public RD_KAFKA_RESP_ERR__UNKNOWN_BROKER = -146

Unknown broker

RD_KAFKA_RESP_ERR_COORDINATOR_LOAD_IN_PROGRESS

public RD_KAFKA_RESP_ERR_COORDINATOR_LOAD_IN_PROGRESS = 14

Coordinator load in progress

RD_KAFKA_RESP_ERR_COORDINATOR_NOT_AVAILABLE

public RD_KAFKA_RESP_ERR_COORDINATOR_NOT_AVAILABLE = 15

Coordinator not available

RD_KAFKA_RESP_ERR_NOT_COORDINATOR

public RD_KAFKA_RESP_ERR_NOT_COORDINATOR = 16

Not coordinator

RD_KAFKA_RESP_ERR__NOT_CONFIGURED

public RD_KAFKA_RESP_ERR__NOT_CONFIGURED = -145

Functionality not configured

RD_KAFKA_RESP_ERR__FENCED

public RD_KAFKA_RESP_ERR__FENCED = -144

Instance has been fenced

RD_KAFKA_RESP_ERR__APPLICATION

public RD_KAFKA_RESP_ERR__APPLICATION = -143

Application generated error

RD_KAFKA_RESP_ERR_FENCED_INSTANCE_ID

public RD_KAFKA_RESP_ERR_FENCED_INSTANCE_ID = 82

Static consumer fenced by other consumer with same group.instance.id.

RD_KAFKA_RESP_ERR_ELIGIBLE_LEADERS_NOT_AVAILABLE

public RD_KAFKA_RESP_ERR_ELIGIBLE_LEADERS_NOT_AVAILABLE = 83

Eligible partition leaders are not available

RD_KAFKA_RESP_ERR_ELECTION_NOT_NEEDED

public RD_KAFKA_RESP_ERR_ELECTION_NOT_NEEDED = 84

Leader election not needed for topic partition

RD_KAFKA_RESP_ERR_NO_REASSIGNMENT_IN_PROGRESS

public RD_KAFKA_RESP_ERR_NO_REASSIGNMENT_IN_PROGRESS = 85

No partition reassignment is in progress

RD_KAFKA_RESP_ERR_GROUP_SUBSCRIBED_TO_TOPIC

public RD_KAFKA_RESP_ERR_GROUP_SUBSCRIBED_TO_TOPIC = 86

Deleting offsets of a topic while the consumer group is subscribed to it

RD_KAFKA_RESP_ERR_INVALID_RECORD

public RD_KAFKA_RESP_ERR_INVALID_RECORD = 87

Broker failed to validate record

RD_KAFKA_RESP_ERR_UNSTABLE_OFFSET_COMMIT

public RD_KAFKA_RESP_ERR_UNSTABLE_OFFSET_COMMIT = 88

There are unstable offsets that need to be cleared

RD_KAFKA_EVENT_DELETERECORDS_RESULT

public RD_KAFKA_EVENT_DELETERECORDS_RESULT = 105

DeleteRecords_result_t

RD_KAFKA_EVENT_DELETEGROUPS_RESULT

public RD_KAFKA_EVENT_DELETEGROUPS_RESULT = 106

DeleteGroups_result_t

RD_KAFKA_EVENT_DELETECONSUMERGROUPOFFSETS_RESULT

public RD_KAFKA_EVENT_DELETECONSUMERGROUPOFFSETS_RESULT = 107

DeleteConsumerGroupOffsets_result_t

RD_KAFKA_RESP_ERR__ASSIGNMENT_LOST

public RD_KAFKA_RESP_ERR__ASSIGNMENT_LOST = -142

Assignment lost

RD_KAFKA_RESP_ERR__NOOP

public RD_KAFKA_RESP_ERR__NOOP = -141

No operation performed

RD_KAFKA_RESP_ERR_THROTTLING_QUOTA_EXCEEDED

public RD_KAFKA_RESP_ERR_THROTTLING_QUOTA_EXCEEDED = 89

Throttling quota has been exceeded

RD_KAFKA_RESP_ERR_PRODUCER_FENCED

public RD_KAFKA_RESP_ERR_PRODUCER_FENCED = 90

There is a newer producer with the same transactionalId which fences the current one

RD_KAFKA_RESP_ERR_RESOURCE_NOT_FOUND

public RD_KAFKA_RESP_ERR_RESOURCE_NOT_FOUND = 91

Request illegally referred to resource that does not exist

RD_KAFKA_RESP_ERR_DUPLICATE_RESOURCE

public RD_KAFKA_RESP_ERR_DUPLICATE_RESOURCE = 92

Request illegally referred to the same resource twice

RD_KAFKA_RESP_ERR_UNACCEPTABLE_CREDENTIAL

public RD_KAFKA_RESP_ERR_UNACCEPTABLE_CREDENTIAL = 93

Requested credential would not meet criteria for acceptability

RD_KAFKA_RESP_ERR_INCONSISTENT_VOTER_SET

public RD_KAFKA_RESP_ERR_INCONSISTENT_VOTER_SET = 94

Indicates that the either the sender or recipient of a voter-only request is not one of the expected voters

RD_KAFKA_RESP_ERR_INVALID_UPDATE_VERSION

public RD_KAFKA_RESP_ERR_INVALID_UPDATE_VERSION = 95

Invalid update version

RD_KAFKA_RESP_ERR_FEATURE_UPDATE_FAILED

public RD_KAFKA_RESP_ERR_FEATURE_UPDATE_FAILED = 96

Unable to update finalized features due to server error

RD_KAFKA_RESP_ERR_PRINCIPAL_DESERIALIZATION_FAILURE

public RD_KAFKA_RESP_ERR_PRINCIPAL_DESERIALIZATION_FAILURE = 97

Request principal deserialization failed during forwarding

RD_KAFKA_ADMIN_OP_DELETERECORDS

public RD_KAFKA_ADMIN_OP_DELETERECORDS = 6

DeleteRecords

RD_KAFKA_ADMIN_OP_DELETEGROUPS

public RD_KAFKA_ADMIN_OP_DELETEGROUPS = 7

DeleteGroups

RD_KAFKA_ADMIN_OP_DELETECONSUMERGROUPOFFSETS

public RD_KAFKA_ADMIN_OP_DELETECONSUMERGROUPOFFSETS = 8

DeleteConsumerGroupOffsets

RD_KAFKA_RESP_ERR__AUTO_OFFSET_RESET

public RD_KAFKA_RESP_ERR__AUTO_OFFSET_RESET = -140

No offset to automatically reset to

RD_KAFKA_EVENT_BACKGROUND

public RD_KAFKA_EVENT_BACKGROUND = 512

Enable background thread.

RD_KAFKA_EVENT_CREATEACLS_RESULT

public RD_KAFKA_EVENT_CREATEACLS_RESULT = 1024

CreateAcls_result_t

RD_KAFKA_EVENT_DESCRIBEACLS_RESULT

public RD_KAFKA_EVENT_DESCRIBEACLS_RESULT = 2048

DescribeAcls_result_t

RD_KAFKA_EVENT_DELETEACLS_RESULT

public RD_KAFKA_EVENT_DELETEACLS_RESULT = 4096

DeleteAcls_result_t

RD_KAFKA_ADMIN_OP_CREATEACLS

public RD_KAFKA_ADMIN_OP_CREATEACLS = 9

CreateAcls

RD_KAFKA_ADMIN_OP_DESCRIBEACLS

public RD_KAFKA_ADMIN_OP_DESCRIBEACLS = 10

DescribeAcls

RD_KAFKA_ADMIN_OP_DELETEACLS

public RD_KAFKA_ADMIN_OP_DELETEACLS = 11

DeleteAcls

RD_KAFKA_RESOURCE_PATTERN_UNKNOWN

public RD_KAFKA_RESOURCE_PATTERN_UNKNOWN = 0

Unknown

RD_KAFKA_RESOURCE_PATTERN_ANY

public RD_KAFKA_RESOURCE_PATTERN_ANY = 1

Any (used for lookups)

RD_KAFKA_RESOURCE_PATTERN_MATCH

public RD_KAFKA_RESOURCE_PATTERN_MATCH = 2

Match: will perform pattern matching

RD_KAFKA_RESOURCE_PATTERN_LITERAL

public RD_KAFKA_RESOURCE_PATTERN_LITERAL = 3

Literal: A literal resource name

RD_KAFKA_RESOURCE_PATTERN_PREFIXED

public RD_KAFKA_RESOURCE_PATTERN_PREFIXED = 4

Prefixed: A prefixed resource name

RD_KAFKA_RESOURCE_PATTERN_TYPE__CNT

public RD_KAFKA_RESOURCE_PATTERN_TYPE__CNT = 5
enum rd_kafka_ResourcePatternType_t

RD_KAFKA_ACL_OPERATION_UNKNOWN

public RD_KAFKA_ACL_OPERATION_UNKNOWN = 0

Unknown

RD_KAFKA_ACL_OPERATION_ANY

public RD_KAFKA_ACL_OPERATION_ANY = 1

In a filter, matches any AclOperation

RD_KAFKA_ACL_OPERATION_ALL

public RD_KAFKA_ACL_OPERATION_ALL = 2

ALL operation

RD_KAFKA_ACL_OPERATION_READ

public RD_KAFKA_ACL_OPERATION_READ = 3

READ operation

RD_KAFKA_ACL_OPERATION_WRITE

public RD_KAFKA_ACL_OPERATION_WRITE = 4

WRITE operation

RD_KAFKA_ACL_OPERATION_CREATE

public RD_KAFKA_ACL_OPERATION_CREATE = 5

CREATE operation

RD_KAFKA_ACL_OPERATION_DELETE

public RD_KAFKA_ACL_OPERATION_DELETE = 6

DELETE operation

RD_KAFKA_ACL_OPERATION_ALTER

public RD_KAFKA_ACL_OPERATION_ALTER = 7

ALTER operation

RD_KAFKA_ACL_OPERATION_DESCRIBE

public RD_KAFKA_ACL_OPERATION_DESCRIBE = 8

DESCRIBE operation

RD_KAFKA_ACL_OPERATION_CLUSTER_ACTION

public RD_KAFKA_ACL_OPERATION_CLUSTER_ACTION = 9

CLUSTER_ACTION operation

RD_KAFKA_ACL_OPERATION_DESCRIBE_CONFIGS

public RD_KAFKA_ACL_OPERATION_DESCRIBE_CONFIGS = 10

DESCRIBE_CONFIGS operation

RD_KAFKA_ACL_OPERATION_ALTER_CONFIGS

public RD_KAFKA_ACL_OPERATION_ALTER_CONFIGS = 11

ALTER_CONFIGS operation

RD_KAFKA_ACL_OPERATION_IDEMPOTENT_WRITE

public RD_KAFKA_ACL_OPERATION_IDEMPOTENT_WRITE = 12

IDEMPOTENT_WRITE operation

RD_KAFKA_ACL_OPERATION__CNT

public RD_KAFKA_ACL_OPERATION__CNT = 13
enum rd_kafka_AclOperation_t

RD_KAFKA_ACL_PERMISSION_TYPE_UNKNOWN

public RD_KAFKA_ACL_PERMISSION_TYPE_UNKNOWN = 0

Unknown

RD_KAFKA_ACL_PERMISSION_TYPE_ANY

public RD_KAFKA_ACL_PERMISSION_TYPE_ANY = 1

In a filter, matches any AclPermissionType

RD_KAFKA_ACL_PERMISSION_TYPE_DENY

public RD_KAFKA_ACL_PERMISSION_TYPE_DENY = 2

Disallows access

RD_KAFKA_ACL_PERMISSION_TYPE_ALLOW

public RD_KAFKA_ACL_PERMISSION_TYPE_ALLOW = 3

Grants access.

RD_KAFKA_ACL_PERMISSION_TYPE__CNT

public RD_KAFKA_ACL_PERMISSION_TYPE__CNT = 4
enum rd_kafka_AclPermissionType_t

RD_KAFKA_EVENT_LISTCONSUMERGROUPS_RESULT

public RD_KAFKA_EVENT_LISTCONSUMERGROUPS_RESULT = 8192

ListConsumerGroupsResult_t

RD_KAFKA_EVENT_DESCRIBECONSUMERGROUPS_RESULT

public RD_KAFKA_EVENT_DESCRIBECONSUMERGROUPS_RESULT = 16384

DescribeConsumerGroups_result_t

RD_KAFKA_EVENT_LISTCONSUMERGROUPOFFSETS_RESULT

public RD_KAFKA_EVENT_LISTCONSUMERGROUPOFFSETS_RESULT = 32768

ListConsumerGroupOffsets_result_t

RD_KAFKA_EVENT_ALTERCONSUMERGROUPOFFSETS_RESULT

public RD_KAFKA_EVENT_ALTERCONSUMERGROUPOFFSETS_RESULT = 65536

AlterConsumerGroupOffsets_result_t

RD_KAFKA_CONSUMER_GROUP_STATE_UNKNOWN

public RD_KAFKA_CONSUMER_GROUP_STATE_UNKNOWN = 0
enum rd_kafka_consumer_group_state_t

RD_KAFKA_CONSUMER_GROUP_STATE_PREPARING_REBALANCE

public RD_KAFKA_CONSUMER_GROUP_STATE_PREPARING_REBALANCE = 1
enum rd_kafka_consumer_group_state_t

RD_KAFKA_CONSUMER_GROUP_STATE_COMPLETING_REBALANCE

public RD_KAFKA_CONSUMER_GROUP_STATE_COMPLETING_REBALANCE = 2
enum rd_kafka_consumer_group_state_t

RD_KAFKA_CONSUMER_GROUP_STATE_STABLE

public RD_KAFKA_CONSUMER_GROUP_STATE_STABLE = 3
enum rd_kafka_consumer_group_state_t

RD_KAFKA_CONSUMER_GROUP_STATE_DEAD

public RD_KAFKA_CONSUMER_GROUP_STATE_DEAD = 4
enum rd_kafka_consumer_group_state_t

RD_KAFKA_CONSUMER_GROUP_STATE_EMPTY

public RD_KAFKA_CONSUMER_GROUP_STATE_EMPTY = 5
enum rd_kafka_consumer_group_state_t

RD_KAFKA_CONSUMER_GROUP_STATE__CNT

public RD_KAFKA_CONSUMER_GROUP_STATE__CNT = 6
enum rd_kafka_consumer_group_state_t

RD_KAFKA_ADMIN_OP_LISTCONSUMERGROUPS

public RD_KAFKA_ADMIN_OP_LISTCONSUMERGROUPS = 12

ListConsumerGroups

RD_KAFKA_ADMIN_OP_DESCRIBECONSUMERGROUPS

public RD_KAFKA_ADMIN_OP_DESCRIBECONSUMERGROUPS = 13

DescribeConsumerGroups

RD_KAFKA_ADMIN_OP_LISTCONSUMERGROUPOFFSETS

public RD_KAFKA_ADMIN_OP_LISTCONSUMERGROUPOFFSETS = 14

ListConsumerGroupOffsets

RD_KAFKA_ADMIN_OP_ALTERCONSUMERGROUPOFFSETS

public RD_KAFKA_ADMIN_OP_ALTERCONSUMERGROUPOFFSETS = 15

AlterConsumerGroupOffsets

RD_KAFKA_RESP_ERR__LOG_TRUNCATION

public RD_KAFKA_RESP_ERR__LOG_TRUNCATION = -139

Partition log truncation detected

RD_KAFKA_EVENT_INCREMENTALALTERCONFIGS_RESULT

public RD_KAFKA_EVENT_INCREMENTALALTERCONFIGS_RESULT = 131072

IncrementalAlterConfigs_result_t

RD_KAFKA_EVENT_DESCRIBEUSERSCRAMCREDENTIALS_RESULT

public RD_KAFKA_EVENT_DESCRIBEUSERSCRAMCREDENTIALS_RESULT = 262144

DescribeUserScramCredentials_result_t

RD_KAFKA_EVENT_ALTERUSERSCRAMCREDENTIALS_RESULT

public RD_KAFKA_EVENT_ALTERUSERSCRAMCREDENTIALS_RESULT = 524288

AlterUserScramCredentials_result_t

RD_KAFKA_ADMIN_OP_INCREMENTALALTERCONFIGS

public RD_KAFKA_ADMIN_OP_INCREMENTALALTERCONFIGS = 16

IncrementalAlterConfigs

RD_KAFKA_ADMIN_OP_DESCRIBEUSERSCRAMCREDENTIALS

public RD_KAFKA_ADMIN_OP_DESCRIBEUSERSCRAMCREDENTIALS = 17

DescribeUserScramCredentials

RD_KAFKA_ADMIN_OP_ALTERUSERSCRAMCREDENTIALS

public RD_KAFKA_ADMIN_OP_ALTERUSERSCRAMCREDENTIALS = 18

AlterUserScramCredentials

RD_KAFKA_ALTER_CONFIG_OP_TYPE_SET

public RD_KAFKA_ALTER_CONFIG_OP_TYPE_SET = 0
enum rd_kafka_AlterConfigOpType_t

RD_KAFKA_ALTER_CONFIG_OP_TYPE_DELETE

public RD_KAFKA_ALTER_CONFIG_OP_TYPE_DELETE = 1
enum rd_kafka_AlterConfigOpType_t

RD_KAFKA_ALTER_CONFIG_OP_TYPE_APPEND

public RD_KAFKA_ALTER_CONFIG_OP_TYPE_APPEND = 2
enum rd_kafka_AlterConfigOpType_t

RD_KAFKA_ALTER_CONFIG_OP_TYPE_SUBTRACT

public RD_KAFKA_ALTER_CONFIG_OP_TYPE_SUBTRACT = 3
enum rd_kafka_AlterConfigOpType_t

RD_KAFKA_ALTER_CONFIG_OP_TYPE__CNT

public RD_KAFKA_ALTER_CONFIG_OP_TYPE__CNT = 4
enum rd_kafka_AlterConfigOpType_t

RD_KAFKA_SCRAM_MECHANISM_UNKNOWN

public RD_KAFKA_SCRAM_MECHANISM_UNKNOWN = 0
enum rd_kafka_ScramMechanism_t

RD_KAFKA_SCRAM_MECHANISM_SHA_256

public RD_KAFKA_SCRAM_MECHANISM_SHA_256 = 1
enum rd_kafka_ScramMechanism_t

RD_KAFKA_SCRAM_MECHANISM_SHA_512

public RD_KAFKA_SCRAM_MECHANISM_SHA_512 = 2
enum rd_kafka_ScramMechanism_t

RD_KAFKA_SCRAM_MECHANISM__CNT

public RD_KAFKA_SCRAM_MECHANISM__CNT = 3
enum rd_kafka_ScramMechanism_t

RD_KAFKA_EVENT_DESCRIBETOPICS_RESULT

public RD_KAFKA_EVENT_DESCRIBETOPICS_RESULT = 1048576
define

RD_KAFKA_EVENT_DESCRIBECLUSTER_RESULT

public RD_KAFKA_EVENT_DESCRIBECLUSTER_RESULT = 2097152
define

RD_KAFKA_EVENT_LISTOFFSETS_RESULT

public RD_KAFKA_EVENT_LISTOFFSETS_RESULT = 4194304
define

RD_KAFKA_ADMIN_OP_DESCRIBETOPICS

public RD_KAFKA_ADMIN_OP_DESCRIBETOPICS = 19
enum rd_kafka_admin_op_t

RD_KAFKA_ADMIN_OP_DESCRIBECLUSTER

public RD_KAFKA_ADMIN_OP_DESCRIBECLUSTER = 20
enum rd_kafka_admin_op_t

RD_KAFKA_ADMIN_OP_LISTOFFSETS

public RD_KAFKA_ADMIN_OP_LISTOFFSETS = 21
enum rd_kafka_admin_op_t

RD_KAFKA_ISOLATION_LEVEL_READ_UNCOMMITTED

public RD_KAFKA_ISOLATION_LEVEL_READ_UNCOMMITTED = 0
enum rd_kafka_IsolationLevel_t

RD_KAFKA_ISOLATION_LEVEL_READ_COMMITTED

public RD_KAFKA_ISOLATION_LEVEL_READ_COMMITTED = 1
enum rd_kafka_IsolationLevel_t

RD_KAFKA_OFFSET_SPEC_MAX_TIMESTAMP

public RD_KAFKA_OFFSET_SPEC_MAX_TIMESTAMP = -3
enum rd_kafka_OffsetSpec_t

RD_KAFKA_OFFSET_SPEC_EARLIEST

public RD_KAFKA_OFFSET_SPEC_EARLIEST = -2
enum rd_kafka_OffsetSpec_t

RD_KAFKA_OFFSET_SPEC_LATEST

public RD_KAFKA_OFFSET_SPEC_LATEST = -1
enum rd_kafka_OffsetSpec_t

RD_KAFKA_SUPPORTED_METHODS

public RD_KAFKA_SUPPORTED_METHODS = ['rd_kafka_version' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_version_str' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_get_debug_contexts' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_get_err_descs' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_err2str' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_err2name' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_last_error' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_errno2err' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_errno' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_fatal_error' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_test_fatal_error' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_topic_partition_destroy' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_topic_partition_list_new' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_topic_partition_list_destroy' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_topic_partition_list_add' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_topic_partition_list_add_range' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_topic_partition_list_del' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_topic_partition_list_del_by_idx' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_topic_partition_list_copy' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_topic_partition_list_set_offset' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_topic_partition_list_find' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_topic_partition_list_sort' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_headers_new' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_headers_destroy' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_headers_copy' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_header_add' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_header_remove' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_header_get_last' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_header_get' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_header_get_all' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_message_destroy' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_message_timestamp' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_message_latency' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_message_headers' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_message_detach_headers' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_message_set_headers' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_header_cnt' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_message_status' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_conf_new' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_conf_destroy' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_conf_dup' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_conf_dup_filter' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_conf_set' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_conf_set_events' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_conf_set_background_event_cb' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_conf_set_dr_cb' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_conf_set_dr_msg_cb' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_conf_set_consume_cb' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_conf_set_rebalance_cb' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_conf_set_offset_commit_cb' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_conf_set_error_cb' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_conf_set_throttle_cb' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_conf_set_log_cb' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_conf_set_stats_cb' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_conf_set_socket_cb' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_conf_set_connect_cb' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_conf_set_closesocket_cb' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_conf_set_opaque' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_opaque' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_conf_set_default_topic_conf' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_conf_get' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_topic_conf_get' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_conf_dump' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_topic_conf_dump' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_conf_dump_free' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_conf_properties_show' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_topic_conf_new' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_topic_conf_dup' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_default_topic_conf_dup' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_topic_conf_destroy' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_topic_conf_set' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_topic_conf_set_opaque' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_topic_conf_set_partitioner_cb' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_topic_conf_set_msg_order_cmp' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_topic_partition_available' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_msg_partitioner_random' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_msg_partitioner_consistent' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_msg_partitioner_consistent_random' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_msg_partitioner_murmur2' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_msg_partitioner_murmur2_random' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_new' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_destroy' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_destroy_flags' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_name' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_type' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_memberid' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_clusterid' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_controllerid' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_topic_new' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_topic_destroy' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_topic_name' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_topic_opaque' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_poll' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_yield' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_pause_partitions' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_resume_partitions' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_query_watermark_offsets' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_get_watermark_offsets' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_offsets_for_times' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_mem_free' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_queue_new' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_queue_destroy' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_queue_get_main' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_queue_get_consumer' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_queue_get_partition' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_queue_get_background' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_queue_forward' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_set_log_queue' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_queue_length' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_queue_io_event_enable' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_queue_cb_event_enable' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_consume_start' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_consume_start_queue' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_consume_stop' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_seek' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_consume' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_consume_batch' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_consume_callback' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_consume_queue' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_consume_batch_queue' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_consume_callback_queue' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_offset_store' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_offsets_store' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_subscribe' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_unsubscribe' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_subscription' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_consumer_poll' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_consumer_close' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_assign' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_assignment' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_commit' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_commit_message' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_commit_queue' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_committed' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_position' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_produce' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_producev' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_produce_batch' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_flush' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_purge' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_metadata' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_metadata_destroy' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_list_groups' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_group_list_destroy' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_brokers_add' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_set_logger' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_set_log_level' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_log_print' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_log_syslog' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_outq_len' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_dump' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_thread_cnt' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_wait_destroyed' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_unittest' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_poll_set_consumer' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_event_type' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_event_name' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_event_destroy' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_event_message_next' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_event_message_array' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_event_message_count' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_event_error' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_event_error_string' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_event_error_is_fatal' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_event_opaque' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_event_log' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_event_stats' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_event_topic_partition_list' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_event_topic_partition' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_event_CreateTopics_result' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_event_DeleteTopics_result' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_event_CreatePartitions_result' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_event_AlterConfigs_result' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_event_DescribeConfigs_result' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_queue_poll' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_queue_poll_callback' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_plugin_f_conf_init_t' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_interceptor_f_on_conf_set_t' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_interceptor_f_on_conf_dup_t' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_interceptor_f_on_conf_destroy_t' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_interceptor_f_on_new_t' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_interceptor_f_on_destroy_t' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_interceptor_f_on_send_t' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_interceptor_f_on_acknowledgement_t' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_interceptor_f_on_consume_t' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_interceptor_f_on_commit_t' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_interceptor_f_on_request_sent_t' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_conf_interceptor_add_on_conf_set' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_conf_interceptor_add_on_conf_dup' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_conf_interceptor_add_on_conf_destroy' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_conf_interceptor_add_on_new' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_interceptor_add_on_destroy' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_interceptor_add_on_send' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_interceptor_add_on_acknowledgement' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_interceptor_add_on_consume' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_interceptor_add_on_commit' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_interceptor_add_on_request_sent' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_topic_result_error' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_topic_result_error_string' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_topic_result_name' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_AdminOptions_new' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_AdminOptions_destroy' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_AdminOptions_set_request_timeout' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_AdminOptions_set_operation_timeout' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_AdminOptions_set_validate_only' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_AdminOptions_set_broker' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_AdminOptions_set_opaque' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_NewTopic_new' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_NewTopic_destroy' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_NewTopic_destroy_array' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_NewTopic_set_replica_assignment' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_NewTopic_set_config' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_CreateTopics' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_CreateTopics_result_topics' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_DeleteTopic_new' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_DeleteTopic_destroy' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_DeleteTopic_destroy_array' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_DeleteTopics' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_DeleteTopics_result_topics' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_NewPartitions_new' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_NewPartitions_destroy' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_NewPartitions_destroy_array' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_NewPartitions_set_replica_assignment' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_CreatePartitions' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_CreatePartitions_result_topics' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_ConfigSource_name' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_ConfigEntry_name' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_ConfigEntry_value' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_ConfigEntry_source' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_ConfigEntry_is_read_only' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_ConfigEntry_is_default' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_ConfigEntry_is_sensitive' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_ConfigEntry_is_synonym' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_ConfigEntry_synonyms' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_ResourceType_name' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_ConfigResource_new' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_ConfigResource_destroy' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_ConfigResource_destroy_array' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_ConfigResource_set_config' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_ConfigResource_configs' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_ConfigResource_type' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_ConfigResource_name' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_ConfigResource_error' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_ConfigResource_error_string' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_AlterConfigs' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_AlterConfigs_result_resources' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_DescribeConfigs' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_DescribeConfigs_result_resources' => ['min' => '1.0.0', 'max' => '2.3.0'], 'rd_kafka_conf' => ['min' => '1.1.0', 'max' => '2.3.0'], 'rd_kafka_conf_set_oauthbearer_token_refresh_cb' => ['min' => '1.1.0', 'max' => '2.3.0'], 'rd_kafka_conf_set_ssl_cert_verify_cb' => ['min' => '1.1.0', 'max' => '2.3.0'], 'rd_kafka_conf_set_ssl_cert' => ['min' => '1.1.0', 'max' => '2.3.0'], 'rd_kafka_event_config_string' => ['min' => '1.1.0', 'max' => '2.3.0'], 'rd_kafka_oauthbearer_set_token' => ['min' => '1.1.0', 'max' => '2.3.0'], 'rd_kafka_oauthbearer_set_token_failure' => ['min' => '1.1.0', 'max' => '2.3.0'], 'rd_kafka_interceptor_f_on_thread_start_t' => ['min' => '1.2.0', 'max' => '2.3.0'], 'rd_kafka_interceptor_f_on_thread_exit_t' => ['min' => '1.2.0', 'max' => '2.3.0'], 'rd_kafka_interceptor_add_on_thread_start' => ['min' => '1.2.0', 'max' => '2.3.0'], 'rd_kafka_interceptor_add_on_thread_exit' => ['min' => '1.2.0', 'max' => '2.3.0'], 'rd_kafka_mock_cluster_new' => ['min' => '1.3.0', 'max' => '2.3.0'], 'rd_kafka_mock_cluster_destroy' => ['min' => '1.3.0', 'max' => '2.3.0'], 'rd_kafka_mock_cluster_handle' => ['min' => '1.3.0', 'max' => '2.3.0'], 'rd_kafka_mock_cluster_bootstraps' => ['min' => '1.3.0', 'max' => '2.3.0'], 'rd_kafka_mock_push_request_errors' => ['min' => '1.3.0', 'max' => '2.3.0'], 'rd_kafka_mock_topic_set_error' => ['min' => '1.3.0', 'max' => '2.3.0'], 'rd_kafka_mock_partition_set_leader' => ['min' => '1.3.0', 'max' => '2.3.0'], 'rd_kafka_mock_partition_set_follower' => ['min' => '1.3.0', 'max' => '2.3.0'], 'rd_kafka_mock_partition_set_follower_wmarks' => ['min' => '1.3.0', 'max' => '2.3.0'], 'rd_kafka_mock_broker_set_rack' => ['min' => '1.3.0', 'max' => '2.3.0'], 'rd_kafka_error_code' => ['min' => '1.4.0', 'max' => '2.3.0'], 'rd_kafka_error_name' => ['min' => '1.4.0', 'max' => '2.3.0'], 'rd_kafka_error_string' => ['min' => '1.4.0', 'max' => '2.3.0'], 'rd_kafka_error_is_fatal' => ['min' => '1.4.0', 'max' => '2.3.0'], 'rd_kafka_error_is_retriable' => ['min' => '1.4.0', 'max' => '2.3.0'], 'rd_kafka_error_txn_requires_abort' => ['min' => '1.4.0', 'max' => '2.3.0'], 'rd_kafka_error_destroy' => ['min' => '1.4.0', 'max' => '2.3.0'], 'rd_kafka_error_new' => ['min' => '1.4.0', 'max' => '2.3.0'], 'rd_kafka_msg_partitioner_fnv1a' => ['min' => '1.4.0', 'max' => '2.3.0'], 'rd_kafka_msg_partitioner_fnv1a_random' => ['min' => '1.4.0', 'max' => '2.3.0'], 'rd_kafka_consumer_group_metadata' => ['min' => '1.4.0', 'max' => '2.3.0'], 'rd_kafka_consumer_group_metadata_new' => ['min' => '1.4.0', 'max' => '2.3.0'], 'rd_kafka_consumer_group_metadata_destroy' => ['min' => '1.4.0', 'max' => '2.3.0'], 'rd_kafka_consumer_group_metadata_write' => ['min' => '1.4.0', 'max' => '2.3.0'], 'rd_kafka_consumer_group_metadata_read' => ['min' => '1.4.0', 'max' => '2.3.0'], 'rd_kafka_init_transactions' => ['min' => '1.4.0', 'max' => '2.3.0'], 'rd_kafka_begin_transaction' => ['min' => '1.4.0', 'max' => '2.3.0'], 'rd_kafka_send_offsets_to_transaction' => ['min' => '1.4.0', 'max' => '2.3.0'], 'rd_kafka_commit_transaction' => ['min' => '1.4.0', 'max' => '2.3.0'], 'rd_kafka_abort_transaction' => ['min' => '1.4.0', 'max' => '2.3.0'], 'rd_kafka_handle_mock_cluster' => ['min' => '1.4.0', 'max' => '2.3.0'], 'rd_kafka_mock_topic_create' => ['min' => '1.4.0', 'max' => '2.3.0'], 'rd_kafka_mock_broker_set_down' => ['min' => '1.4.0', 'max' => '2.3.0'], 'rd_kafka_mock_broker_set_up' => ['min' => '1.4.0', 'max' => '2.3.0'], 'rd_kafka_mock_coordinator_set' => ['min' => '1.4.0', 'max' => '2.3.0'], 'rd_kafka_mock_set_apiversion' => ['min' => '1.4.0', 'max' => '2.3.0'], 'rd_kafka_mock_broker_set_rtt' => ['min' => '1.4.4', 'max' => '2.3.0'], 'rd_kafka_message_errstr' => ['min' => '1.5.0', 'max' => '2.3.0'], 'rd_kafka_message_broker_id' => ['min' => '1.5.0', 'max' => '2.3.0'], 'rd_kafka_produceva' => ['min' => '1.5.0', 'max' => '2.3.0'], 'rd_kafka_event_debug_contexts' => ['min' => '1.5.0', 'max' => '2.3.0'], 'rd_kafka_mock_broker_push_request_errors' => ['min' => '1.5.0', 'max' => '1.6.2'], 'rd_kafka_conf_get_default_topic_conf' => ['min' => '1.6.0', 'max' => '2.3.0'], 'rd_kafka_queue_yield' => ['min' => '1.6.0', 'max' => '2.3.0'], 'rd_kafka_seek_partitions' => ['min' => '1.6.0', 'max' => '2.3.0'], 'rd_kafka_incremental_assign' => ['min' => '1.6.0', 'max' => '2.3.0'], 'rd_kafka_incremental_unassign' => ['min' => '1.6.0', 'max' => '2.3.0'], 'rd_kafka_rebalance_protocol' => ['min' => '1.6.0', 'max' => '2.3.0'], 'rd_kafka_assignment_lost' => ['min' => '1.6.0', 'max' => '2.3.0'], 'rd_kafka_consumer_group_metadata_new_with_genid' => ['min' => '1.6.0', 'max' => '2.3.0'], 'rd_kafka_event_DeleteRecords_result' => ['min' => '1.6.0', 'max' => '2.3.0'], 'rd_kafka_event_DeleteGroups_result' => ['min' => '1.6.0', 'max' => '2.3.0'], 'rd_kafka_event_DeleteConsumerGroupOffsets_result' => ['min' => '1.6.0', 'max' => '2.3.0'], 'rd_kafka_group_result_error' => ['min' => '1.6.0', 'max' => '2.3.0'], 'rd_kafka_group_result_name' => ['min' => '1.6.0', 'max' => '2.3.0'], 'rd_kafka_group_result_partitions' => ['min' => '1.6.0', 'max' => '2.3.0'], 'rd_kafka_DeleteRecords_new' => ['min' => '1.6.0', 'max' => '2.3.0'], 'rd_kafka_DeleteRecords_destroy' => ['min' => '1.6.0', 'max' => '2.3.0'], 'rd_kafka_DeleteRecords_destroy_array' => ['min' => '1.6.0', 'max' => '2.3.0'], 'rd_kafka_DeleteRecords' => ['min' => '1.6.0', 'max' => '2.3.0'], 'rd_kafka_DeleteRecords_result_offsets' => ['min' => '1.6.0', 'max' => '2.3.0'], 'rd_kafka_DeleteGroup_new' => ['min' => '1.6.0', 'max' => '2.3.0'], 'rd_kafka_DeleteGroup_destroy' => ['min' => '1.6.0', 'max' => '2.3.0'], 'rd_kafka_DeleteGroup_destroy_array' => ['min' => '1.6.0', 'max' => '2.3.0'], 'rd_kafka_DeleteGroups' => ['min' => '1.6.0', 'max' => '2.3.0'], 'rd_kafka_DeleteGroups_result_groups' => ['min' => '1.6.0', 'max' => '2.3.0'], 'rd_kafka_DeleteConsumerGroupOffsets_new' => ['min' => '1.6.0', 'max' => '2.3.0'], 'rd_kafka_DeleteConsumerGroupOffsets_destroy' => ['min' => '1.6.0', 'max' => '2.3.0'], 'rd_kafka_DeleteConsumerGroupOffsets_destroy_array' => ['min' => '1.6.0', 'max' => '2.3.0'], 'rd_kafka_DeleteConsumerGroupOffsets' => ['min' => '1.6.0', 'max' => '2.3.0'], 'rd_kafka_DeleteConsumerGroupOffsets_result_groups' => ['min' => '1.6.0', 'max' => '2.3.0'], 'rd_kafka_mock_clear_request_errors' => ['min' => '1.6.0', 'max' => '2.3.0'], 'rd_kafka_mock_push_request_errors_array' => ['min' => '1.6.0', 'max' => '2.3.0'], 'rd_kafka_interceptor_f_on_response_received_t' => ['min' => '1.6.1', 'max' => '2.3.0'], 'rd_kafka_interceptor_add_on_response_received' => ['min' => '1.6.1', 'max' => '2.3.0'], 'rd_kafka_conf_set_engine_callback_data' => ['min' => '1.7.0', 'max' => '2.3.0'], 'rd_kafka_mem_calloc' => ['min' => '1.7.0', 'max' => '2.3.0'], 'rd_kafka_mem_malloc' => ['min' => '1.7.0', 'max' => '2.3.0'], 'rd_kafka_mock_broker_push_request_error_rtts' => ['min' => '1.7.0', 'max' => '2.3.0'], 'rd_kafka_conf_enable_sasl_queue' => ['min' => '1.9.0', 'max' => '2.3.0'], 'rd_kafka_queue_get_sasl' => ['min' => '1.9.0', 'max' => '2.3.0'], 'rd_kafka_sasl_background_callbacks_enable' => ['min' => '1.9.0', 'max' => '2.3.0'], 'rd_kafka_consumer_close_queue' => ['min' => '1.9.0', 'max' => '2.3.0'], 'rd_kafka_consumer_closed' => ['min' => '1.9.0', 'max' => '2.3.0'], 'rd_kafka_event_CreateAcls_result' => ['min' => '1.9.0', 'max' => '2.3.0'], 'rd_kafka_event_DescribeAcls_result' => ['min' => '1.9.0', 'max' => '2.3.0'], 'rd_kafka_event_DeleteAcls_result' => ['min' => '1.9.0', 'max' => '2.3.0'], 'rd_kafka_ResourcePatternType_name' => ['min' => '1.9.0', 'max' => '2.3.0'], 'rd_kafka_acl_result_error' => ['min' => '1.9.0', 'max' => '2.3.0'], 'rd_kafka_AclOperation_name' => ['min' => '1.9.0', 'max' => '2.3.0'], 'rd_kafka_AclPermissionType_name' => ['min' => '1.9.0', 'max' => '2.3.0'], 'rd_kafka_AclBinding_new' => ['min' => '1.9.0', 'max' => '2.3.0'], 'rd_kafka_AclBindingFilter_new' => ['min' => '1.9.0', 'max' => '2.3.0'], 'rd_kafka_AclBinding_restype' => ['min' => '1.9.0', 'max' => '2.3.0'], 'rd_kafka_AclBinding_name' => ['min' => '1.9.0', 'max' => '2.3.0'], 'rd_kafka_AclBinding_principal' => ['min' => '1.9.0', 'max' => '2.3.0'], 'rd_kafka_AclBinding_host' => ['min' => '1.9.0', 'max' => '2.3.0'], 'rd_kafka_AclBinding_operation' => ['min' => '1.9.0', 'max' => '2.3.0'], 'rd_kafka_AclBinding_permission_type' => ['min' => '1.9.0', 'max' => '2.3.0'], 'rd_kafka_AclBinding_resource_pattern_type' => ['min' => '1.9.0', 'max' => '2.3.0'], 'rd_kafka_AclBinding_error' => ['min' => '1.9.0', 'max' => '2.3.0'], 'rd_kafka_AclBinding_destroy' => ['min' => '1.9.0', 'max' => '2.3.0'], 'rd_kafka_AclBinding_destroy_array' => ['min' => '1.9.0', 'max' => '2.3.0'], 'rd_kafka_CreateAcls_result_acls' => ['min' => '1.9.0', 'max' => '2.3.0'], 'rd_kafka_CreateAcls' => ['min' => '1.9.0', 'max' => '2.3.0'], 'rd_kafka_DescribeAcls_result_acls' => ['min' => '1.9.0', 'max' => '2.3.0'], 'rd_kafka_DescribeAcls' => ['min' => '1.9.0', 'max' => '2.3.0'], 'rd_kafka_DeleteAcls_result_responses' => ['min' => '1.9.0', 'max' => '2.3.0'], 'rd_kafka_DeleteAcls_result_response_error' => ['min' => '1.9.0', 'max' => '2.3.0'], 'rd_kafka_DeleteAcls_result_response_matching_acls' => ['min' => '1.9.0', 'max' => '2.3.0'], 'rd_kafka_DeleteAcls' => ['min' => '1.9.0', 'max' => '2.3.0'], 'rd_kafka_conf_set_resolve_cb' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_sasl_set_credentials' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_Node_id' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_Node_host' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_Node_port' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_consumer_group_state_name' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_consumer_group_state_code' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_event_ListConsumerGroups_result' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_event_DescribeConsumerGroups_result' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_event_AlterConsumerGroupOffsets_result' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_event_ListConsumerGroupOffsets_result' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_interceptor_f_on_broker_state_change_t' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_interceptor_add_on_broker_state_change' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_AdminOptions_set_require_stable_offsets' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_AdminOptions_set_match_consumer_group_states' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_ListConsumerGroups' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_ConsumerGroupListing_group_id' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_ConsumerGroupListing_is_simple_consumer_group' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_ConsumerGroupListing_state' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_ListConsumerGroups_result_valid' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_ListConsumerGroups_result_errors' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_DescribeConsumerGroups' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_DescribeConsumerGroups_result_groups' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_ConsumerGroupDescription_group_id' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_ConsumerGroupDescription_error' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_ConsumerGroupDescription_is_simple_consumer_group' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_ConsumerGroupDescription_partition_assignor' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_ConsumerGroupDescription_state' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_ConsumerGroupDescription_coordinator' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_ConsumerGroupDescription_member_count' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_ConsumerGroupDescription_member' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_MemberDescription_client_id' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_MemberDescription_group_instance_id' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_MemberDescription_consumer_id' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_MemberDescription_host' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_MemberDescription_assignment' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_MemberAssignment_partitions' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_ListConsumerGroupOffsets_new' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_ListConsumerGroupOffsets_destroy' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_ListConsumerGroupOffsets_destroy_array' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_ListConsumerGroupOffsets' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_ListConsumerGroupOffsets_result_groups' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_AlterConsumerGroupOffsets_new' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_AlterConsumerGroupOffsets_destroy' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_AlterConsumerGroupOffsets_destroy_array' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_AlterConsumerGroupOffsets' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_AlterConsumerGroupOffsets_result_groups' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_mock_broker_error_stack_cnt' => ['min' => '2.0.0', 'max' => '2.3.0'], 'rd_kafka_topic_partition_set_leader_epoch' => ['min' => '2.1.0', 'max' => '2.3.0'], 'rd_kafka_topic_partition_get_leader_epoch' => ['min' => '2.1.0', 'max' => '2.3.0'], 'rd_kafka_message_leader_epoch' => ['min' => '2.1.0', 'max' => '2.3.0'], 'rd_kafka_offset_store_message' => ['min' => '2.1.0', 'max' => '2.3.0'], 'rd_kafka_event_IncrementalAlterConfigs_result' => ['min' => '2.2.0', 'max' => '2.3.0'], 'rd_kafka_event_DescribeUserScramCredentials_result' => ['min' => '2.2.0', 'max' => '2.3.0'], 'rd_kafka_event_AlterUserScramCredentials_result' => ['min' => '2.2.0', 'max' => '2.3.0'], 'rd_kafka_ConfigResource_add_incremental_config' => ['min' => '2.2.0', 'max' => '2.3.0'], 'rd_kafka_IncrementalAlterConfigs' => ['min' => '2.2.0', 'max' => '2.3.0'], 'rd_kafka_IncrementalAlterConfigs_result_resources' => ['min' => '2.2.0', 'max' => '2.3.0'], 'rd_kafka_ScramCredentialInfo_mechanism' => ['min' => '2.2.0', 'max' => '2.3.0'], 'rd_kafka_ScramCredentialInfo_iterations' => ['min' => '2.2.0', 'max' => '2.3.0'], 'rd_kafka_UserScramCredentialsDescription_user' => ['min' => '2.2.0', 'max' => '2.3.0'], 'rd_kafka_UserScramCredentialsDescription_error' => ['min' => '2.2.0', 'max' => '2.3.0'], 'rd_kafka_UserScramCredentialsDescription_scramcredentialinfo_count' => ['min' => '2.2.0', 'max' => '2.3.0'], 'rd_kafka_UserScramCredentialsDescription_scramcredentialinfo' => ['min' => '2.2.0', 'max' => '2.3.0'], 'rd_kafka_DescribeUserScramCredentials_result_descriptions' => ['min' => '2.2.0', 'max' => '2.3.0'], 'rd_kafka_DescribeUserScramCredentials' => ['min' => '2.2.0', 'max' => '2.3.0'], 'rd_kafka_UserScramCredentialUpsertion_new' => ['min' => '2.2.0', 'max' => '2.3.0'], 'rd_kafka_UserScramCredentialDeletion_new' => ['min' => '2.2.0', 'max' => '2.3.0'], 'rd_kafka_UserScramCredentialAlteration_destroy' => ['min' => '2.2.0', 'max' => '2.3.0'], 'rd_kafka_UserScramCredentialAlteration_destroy_array' => ['min' => '2.2.0', 'max' => '2.3.0'], 'rd_kafka_AlterUserScramCredentials_result_response_user' => ['min' => '2.2.0', 'max' => '2.3.0'], 'rd_kafka_AlterUserScramCredentials_result_response_error' => ['min' => '2.2.0', 'max' => '2.3.0'], 'rd_kafka_AlterUserScramCredentials_result_responses' => ['min' => '2.2.0', 'max' => '2.3.0'], 'rd_kafka_AlterUserScramCredentials' => ['min' => '2.2.0', 'max' => '2.3.0'], 'rd_kafka_Uuid_base64str' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_Uuid_least_significant_bits' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_Uuid_most_significant_bits' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_Uuid_new' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_Uuid_copy' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_Uuid_destroy' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_Node_rack' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_event_DescribeTopics_result' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_event_DescribeCluster_result' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_event_ListOffsets_result' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_AdminOptions_set_include_authorized_operations' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_AdminOptions_set_isolation_level' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_TopicCollection_of_topic_names' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_TopicCollection_destroy' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_DescribeTopics' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_DescribeTopics_result_topics' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_TopicDescription_partitions' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_TopicPartitionInfo_partition' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_TopicPartitionInfo_leader' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_TopicPartitionInfo_isr' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_TopicPartitionInfo_replicas' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_TopicDescription_authorized_operations' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_TopicDescription_name' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_TopicDescription_topic_id' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_TopicDescription_is_internal' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_TopicDescription_error' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_DescribeCluster' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_DescribeCluster_result_nodes' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_DescribeCluster_result_authorized_operations' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_DescribeCluster_result_controller' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_DescribeCluster_result_cluster_id' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_ConsumerGroupDescription_authorized_operations' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_ListOffsetsResultInfo_topic_partition' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_ListOffsetsResultInfo_timestamp' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_ListOffsets_result_infos' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_ListOffsets' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_mock_start_request_tracking' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_mock_stop_request_tracking' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_mock_request_destroy' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_mock_request_id' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_mock_request_api_key' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_mock_request_timestamp' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_mock_get_requests' => ['min' => '2.3.0', 'max' => '2.3.0'], 'rd_kafka_mock_clear_requests' => ['min' => '2.3.0', 'max' => '2.3.0']]

RD_KAFKA_VERSION

public RD_KAFKA_VERSION = 16777471

librdkafka version

Interpreted as hex MM.mm.rr.xx:

  • MM = Major
  • mm = minor
  • rr = revision
  • xx = pre-release id (0xff is the final release)

E.g.: 0x000801ff = 0.8.1

Remarks
This value should only be used during compile time, for runtime checks of version use rd_kafka_version()

RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE

public RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 74

Unsupported compression type

RD_KAFKA_RESP_ERR_END_ALL

public RD_KAFKA_RESP_ERR_END_ALL = 75
enum rd_kafka_resp_err_t

RD_KAFKA_ADMIN_OP__CNT

public RD_KAFKA_ADMIN_OP__CNT = 6

Number of ops defined

RD_KAFKA_CDEF

public RD_KAFKA_CDEF = 'typedef long int ssize_t;
typedef struct _IO_FILE FILE;
typedef long int mode_t;
typedef signed int int16_t;
typedef unsigned int uint16_t;
typedef signed int int32_t;
typedef signed long int int64_t;
int rd_kafka_version(void);
const char *rd_kafka_version_str(void);
typedef enum rd_kafka_type_t {
  RD_KAFKA_PRODUCER,
  RD_KAFKA_CONSUMER,
} rd_kafka_type_t;
typedef enum rd_kafka_timestamp_type_t {
  RD_KAFKA_TIMESTAMP_NOT_AVAILABLE,
  RD_KAFKA_TIMESTAMP_CREATE_TIME,
  RD_KAFKA_TIMESTAMP_LOG_APPEND_TIME,
} rd_kafka_timestamp_type_t;
const char *rd_kafka_get_debug_contexts(void);
typedef struct rd_kafka_s rd_kafka_t;
typedef struct rd_kafka_topic_s rd_kafka_topic_t;
typedef struct rd_kafka_conf_s rd_kafka_conf_t;
typedef struct rd_kafka_topic_conf_s rd_kafka_topic_conf_t;
typedef struct rd_kafka_queue_s rd_kafka_queue_t;
typedef struct rd_kafka_op_s rd_kafka_event_t;
typedef struct rd_kafka_topic_result_s rd_kafka_topic_result_t;
typedef enum {
  RD_KAFKA_RESP_ERR__BEGIN = (- 200),
  RD_KAFKA_RESP_ERR__BAD_MSG = (- 199),
  RD_KAFKA_RESP_ERR__BAD_COMPRESSION = (- 198),
  RD_KAFKA_RESP_ERR__DESTROY = (- 197),
  RD_KAFKA_RESP_ERR__FAIL = (- 196),
  RD_KAFKA_RESP_ERR__TRANSPORT = (- 195),
  RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE = (- 194),
  RD_KAFKA_RESP_ERR__RESOLVE = (- 193),
  RD_KAFKA_RESP_ERR__MSG_TIMED_OUT = (- 192),
  RD_KAFKA_RESP_ERR__PARTITION_EOF = (- 191),
  RD_KAFKA_RESP_ERR__UNKNOWN_PARTITION = (- 190),
  RD_KAFKA_RESP_ERR__FS = (- 189),
  RD_KAFKA_RESP_ERR__UNKNOWN_TOPIC = (- 188),
  RD_KAFKA_RESP_ERR__ALL_BROKERS_DOWN = (- 187),
  RD_KAFKA_RESP_ERR__INVALID_ARG = (- 186),
  RD_KAFKA_RESP_ERR__TIMED_OUT = (- 185),
  RD_KAFKA_RESP_ERR__QUEUE_FULL = (- 184),
  RD_KAFKA_RESP_ERR__ISR_INSUFF = (- 183),
  RD_KAFKA_RESP_ERR__NODE_UPDATE = (- 182),
  RD_KAFKA_RESP_ERR__SSL = (- 181),
  RD_KAFKA_RESP_ERR__WAIT_COORD = (- 180),
  RD_KAFKA_RESP_ERR__UNKNOWN_GROUP = (- 179),
  RD_KAFKA_RESP_ERR__IN_PROGRESS = (- 178),
  RD_KAFKA_RESP_ERR__PREV_IN_PROGRESS = (- 177),
  RD_KAFKA_RESP_ERR__EXISTING_SUBSCRIPTION = (- 176),
  RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS = (- 175),
  RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS = (- 174),
  RD_KAFKA_RESP_ERR__CONFLICT = (- 173),
  RD_KAFKA_RESP_ERR__STATE = (- 172),
  RD_KAFKA_RESP_ERR__UNKNOWN_PROTOCOL = (- 171),
  RD_KAFKA_RESP_ERR__NOT_IMPLEMENTED = (- 170),
  RD_KAFKA_RESP_ERR__AUTHENTICATION = (- 169),
  RD_KAFKA_RESP_ERR__NO_OFFSET = (- 168),
  RD_KAFKA_RESP_ERR__OUTDATED = (- 167),
  RD_KAFKA_RESP_ERR__TIMED_OUT_QUEUE = (- 166),
  RD_KAFKA_RESP_ERR__UNSUPPORTED_FEATURE = (- 165),
  RD_KAFKA_RESP_ERR__WAIT_CACHE = (- 164),
  RD_KAFKA_RESP_ERR__INTR = (- 163),
  RD_KAFKA_RESP_ERR__KEY_SERIALIZATION = (- 162),
  RD_KAFKA_RESP_ERR__VALUE_SERIALIZATION = (- 161),
  RD_KAFKA_RESP_ERR__KEY_DESERIALIZATION = (- 160),
  RD_KAFKA_RESP_ERR__VALUE_DESERIALIZATION = (- 159),
  RD_KAFKA_RESP_ERR__PARTIAL = (- 158),
  RD_KAFKA_RESP_ERR__READ_ONLY = (- 157),
  RD_KAFKA_RESP_ERR__NOENT = (- 156),
  RD_KAFKA_RESP_ERR__UNDERFLOW = (- 155),
  RD_KAFKA_RESP_ERR__INVALID_TYPE = (- 154),
  RD_KAFKA_RESP_ERR__RETRY = (- 153),
  RD_KAFKA_RESP_ERR__PURGE_QUEUE = (- 152),
  RD_KAFKA_RESP_ERR__PURGE_INFLIGHT = (- 151),
  RD_KAFKA_RESP_ERR__FATAL = (- 150),
  RD_KAFKA_RESP_ERR__INCONSISTENT = (- 149),
  RD_KAFKA_RESP_ERR__GAPLESS_GUARANTEE = (- 148),
  RD_KAFKA_RESP_ERR__MAX_POLL_EXCEEDED = (- 147),
  RD_KAFKA_RESP_ERR__END = (- 100),
  RD_KAFKA_RESP_ERR_UNKNOWN = (- 1),
  RD_KAFKA_RESP_ERR_NO_ERROR = 0,
  RD_KAFKA_RESP_ERR_OFFSET_OUT_OF_RANGE = 1,
  RD_KAFKA_RESP_ERR_INVALID_MSG = 2,
  RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_OR_PART = 3,
  RD_KAFKA_RESP_ERR_INVALID_MSG_SIZE = 4,
  RD_KAFKA_RESP_ERR_LEADER_NOT_AVAILABLE = 5,
  RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION = 6,
  RD_KAFKA_RESP_ERR_REQUEST_TIMED_OUT = 7,
  RD_KAFKA_RESP_ERR_BROKER_NOT_AVAILABLE = 8,
  RD_KAFKA_RESP_ERR_REPLICA_NOT_AVAILABLE = 9,
  RD_KAFKA_RESP_ERR_MSG_SIZE_TOO_LARGE = 10,
  RD_KAFKA_RESP_ERR_STALE_CTRL_EPOCH = 11,
  RD_KAFKA_RESP_ERR_OFFSET_METADATA_TOO_LARGE = 12,
  RD_KAFKA_RESP_ERR_NETWORK_EXCEPTION = 13,
  RD_KAFKA_RESP_ERR_GROUP_LOAD_IN_PROGRESS = 14,
  RD_KAFKA_RESP_ERR_GROUP_COORDINATOR_NOT_AVAILABLE = 15,
  RD_KAFKA_RESP_ERR_NOT_COORDINATOR_FOR_GROUP = 16,
  RD_KAFKA_RESP_ERR_TOPIC_EXCEPTION = 17,
  RD_KAFKA_RESP_ERR_RECORD_LIST_TOO_LARGE = 18,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS = 19,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS_AFTER_APPEND = 20,
  RD_KAFKA_RESP_ERR_INVALID_REQUIRED_ACKS = 21,
  RD_KAFKA_RESP_ERR_ILLEGAL_GENERATION = 22,
  RD_KAFKA_RESP_ERR_INCONSISTENT_GROUP_PROTOCOL = 23,
  RD_KAFKA_RESP_ERR_INVALID_GROUP_ID = 24,
  RD_KAFKA_RESP_ERR_UNKNOWN_MEMBER_ID = 25,
  RD_KAFKA_RESP_ERR_INVALID_SESSION_TIMEOUT = 26,
  RD_KAFKA_RESP_ERR_REBALANCE_IN_PROGRESS = 27,
  RD_KAFKA_RESP_ERR_INVALID_COMMIT_OFFSET_SIZE = 28,
  RD_KAFKA_RESP_ERR_TOPIC_AUTHORIZATION_FAILED = 29,
  RD_KAFKA_RESP_ERR_GROUP_AUTHORIZATION_FAILED = 30,
  RD_KAFKA_RESP_ERR_CLUSTER_AUTHORIZATION_FAILED = 31,
  RD_KAFKA_RESP_ERR_INVALID_TIMESTAMP = 32,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_SASL_MECHANISM = 33,
  RD_KAFKA_RESP_ERR_ILLEGAL_SASL_STATE = 34,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_VERSION = 35,
  RD_KAFKA_RESP_ERR_TOPIC_ALREADY_EXISTS = 36,
  RD_KAFKA_RESP_ERR_INVALID_PARTITIONS = 37,
  RD_KAFKA_RESP_ERR_INVALID_REPLICATION_FACTOR = 38,
  RD_KAFKA_RESP_ERR_INVALID_REPLICA_ASSIGNMENT = 39,
  RD_KAFKA_RESP_ERR_INVALID_CONFIG = 40,
  RD_KAFKA_RESP_ERR_NOT_CONTROLLER = 41,
  RD_KAFKA_RESP_ERR_INVALID_REQUEST = 42,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_FOR_MESSAGE_FORMAT = 43,
  RD_KAFKA_RESP_ERR_POLICY_VIOLATION = 44,
  RD_KAFKA_RESP_ERR_OUT_OF_ORDER_SEQUENCE_NUMBER = 45,
  RD_KAFKA_RESP_ERR_DUPLICATE_SEQUENCE_NUMBER = 46,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_EPOCH = 47,
  RD_KAFKA_RESP_ERR_INVALID_TXN_STATE = 48,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_ID_MAPPING = 49,
  RD_KAFKA_RESP_ERR_INVALID_TRANSACTION_TIMEOUT = 50,
  RD_KAFKA_RESP_ERR_CONCURRENT_TRANSACTIONS = 51,
  RD_KAFKA_RESP_ERR_TRANSACTION_COORDINATOR_FENCED = 52,
  RD_KAFKA_RESP_ERR_TRANSACTIONAL_ID_AUTHORIZATION_FAILED = 53,
  RD_KAFKA_RESP_ERR_SECURITY_DISABLED = 54,
  RD_KAFKA_RESP_ERR_OPERATION_NOT_ATTEMPTED = 55,
  RD_KAFKA_RESP_ERR_KAFKA_STORAGE_ERROR = 56,
  RD_KAFKA_RESP_ERR_LOG_DIR_NOT_FOUND = 57,
  RD_KAFKA_RESP_ERR_SASL_AUTHENTICATION_FAILED = 58,
  RD_KAFKA_RESP_ERR_UNKNOWN_PRODUCER_ID = 59,
  RD_KAFKA_RESP_ERR_REASSIGNMENT_IN_PROGRESS = 60,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTH_DISABLED = 61,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_NOT_FOUND = 62,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_OWNER_MISMATCH = 63,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_REQUEST_NOT_ALLOWED = 64,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTHORIZATION_FAILED = 65,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_EXPIRED = 66,
  RD_KAFKA_RESP_ERR_INVALID_PRINCIPAL_TYPE = 67,
  RD_KAFKA_RESP_ERR_NON_EMPTY_GROUP = 68,
  RD_KAFKA_RESP_ERR_GROUP_ID_NOT_FOUND = 69,
  RD_KAFKA_RESP_ERR_FETCH_SESSION_ID_NOT_FOUND = 70,
  RD_KAFKA_RESP_ERR_INVALID_FETCH_SESSION_EPOCH = 71,
  RD_KAFKA_RESP_ERR_LISTENER_NOT_FOUND = 72,
  RD_KAFKA_RESP_ERR_TOPIC_DELETION_DISABLED = 73,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 74,
  RD_KAFKA_RESP_ERR_END_ALL,
} rd_kafka_resp_err_t;
struct rd_kafka_err_desc {
  rd_kafka_resp_err_t code;
  char *name;
  char *desc;
};
void rd_kafka_get_err_descs(const struct rd_kafka_err_desc **errdescs, size_t *cntp);
const char *rd_kafka_err2str(rd_kafka_resp_err_t err);
const char *rd_kafka_err2name(rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_last_error(void);
rd_kafka_resp_err_t rd_kafka_errno2err(int errnox);
int rd_kafka_errno(void);
rd_kafka_resp_err_t rd_kafka_fatal_error(rd_kafka_t *rk, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_test_fatal_error(rd_kafka_t *rk, rd_kafka_resp_err_t err, const char *reason);
typedef struct rd_kafka_topic_partition_s {
  char *topic;
  int32_t partition;
  int64_t offset;
  void *metadata;
  size_t metadata_size;
  void *opaque;
  rd_kafka_resp_err_t err;
  void *_private;
} rd_kafka_topic_partition_t;
void rd_kafka_topic_partition_destroy(rd_kafka_topic_partition_t *rktpar);
typedef struct rd_kafka_topic_partition_list_s {
  int cnt;
  int size;
  rd_kafka_topic_partition_t *elems;
} rd_kafka_topic_partition_list_t;
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_new(int size);
void rd_kafka_topic_partition_list_destroy(rd_kafka_topic_partition_list_t *rkparlist);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_add(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_add_range(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t start, int32_t stop);
int rd_kafka_topic_partition_list_del(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
int rd_kafka_topic_partition_list_del_by_idx(rd_kafka_topic_partition_list_t *rktparlist, int idx);
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_copy(const rd_kafka_topic_partition_list_t *src);
rd_kafka_resp_err_t rd_kafka_topic_partition_list_set_offset(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition, int64_t offset);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_find(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_sort(rd_kafka_topic_partition_list_t *rktparlist, int (*cmp)(const void *a, const void *b, void *opaque), void *opaque);
typedef enum rd_kafka_vtype_t {
  RD_KAFKA_VTYPE_END,
  RD_KAFKA_VTYPE_TOPIC,
  RD_KAFKA_VTYPE_RKT,
  RD_KAFKA_VTYPE_PARTITION,
  RD_KAFKA_VTYPE_VALUE,
  RD_KAFKA_VTYPE_KEY,
  RD_KAFKA_VTYPE_OPAQUE,
  RD_KAFKA_VTYPE_MSGFLAGS,
  RD_KAFKA_VTYPE_TIMESTAMP,
  RD_KAFKA_VTYPE_HEADER,
  RD_KAFKA_VTYPE_HEADERS,
} rd_kafka_vtype_t;
typedef struct rd_kafka_headers_s rd_kafka_headers_t;
rd_kafka_headers_t *rd_kafka_headers_new(size_t initial_count);
void rd_kafka_headers_destroy(rd_kafka_headers_t *hdrs);
rd_kafka_headers_t *rd_kafka_headers_copy(const rd_kafka_headers_t *src);
rd_kafka_resp_err_t rd_kafka_header_add(rd_kafka_headers_t *hdrs, const char *name, ssize_t name_size, const void *value, ssize_t value_size);
rd_kafka_resp_err_t rd_kafka_header_remove(rd_kafka_headers_t *hdrs, const char *name);
rd_kafka_resp_err_t rd_kafka_header_get_last(const rd_kafka_headers_t *hdrs, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get(const rd_kafka_headers_t *hdrs, size_t idx, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get_all(const rd_kafka_headers_t *hdrs, size_t idx, const char **namep, const void **valuep, size_t *sizep);
typedef struct rd_kafka_message_s {
  rd_kafka_resp_err_t err;
  rd_kafka_topic_t *rkt;
  int32_t partition;
  void *payload;
  size_t len;
  void *key;
  size_t key_len;
  int64_t offset;
  void *_private;
} rd_kafka_message_t;
void rd_kafka_message_destroy(rd_kafka_message_t *rkmessage);
int64_t rd_kafka_message_timestamp(const rd_kafka_message_t *rkmessage, rd_kafka_timestamp_type_t *tstype);
int64_t rd_kafka_message_latency(const rd_kafka_message_t *rkmessage);
rd_kafka_resp_err_t rd_kafka_message_headers(const rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
rd_kafka_resp_err_t rd_kafka_message_detach_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
void rd_kafka_message_set_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t *hdrs);
size_t rd_kafka_header_cnt(const rd_kafka_headers_t *hdrs);
typedef enum {
  RD_KAFKA_MSG_STATUS_NOT_PERSISTED = 0,
  RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED = 1,
  RD_KAFKA_MSG_STATUS_PERSISTED = 2,
} rd_kafka_msg_status_t;
rd_kafka_msg_status_t rd_kafka_message_status(const rd_kafka_message_t *rkmessage);
typedef enum {
  RD_KAFKA_CONF_UNKNOWN = (- 2),
  RD_KAFKA_CONF_INVALID = (- 1),
  RD_KAFKA_CONF_OK = 0,
} rd_kafka_conf_res_t;
rd_kafka_conf_t *rd_kafka_conf_new(void);
void rd_kafka_conf_destroy(rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup(const rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup_filter(const rd_kafka_conf_t *conf, size_t filter_cnt, const char **filter);
rd_kafka_conf_res_t rd_kafka_conf_set(rd_kafka_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_events(rd_kafka_conf_t *conf, int events);
void rd_kafka_conf_set_background_event_cb(rd_kafka_conf_t *conf, void (*event_cb)(rd_kafka_t *rk, rd_kafka_event_t *rkev, void *opaque));
void rd_kafka_conf_set_dr_cb(rd_kafka_conf_t *conf, void (*dr_cb)(rd_kafka_t *rk, void *payload, size_t len, rd_kafka_resp_err_t err, void *opaque, void *msg_opaque));
void rd_kafka_conf_set_dr_msg_cb(rd_kafka_conf_t *conf, void (*dr_msg_cb)(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_consume_cb(rd_kafka_conf_t *conf, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_rebalance_cb(rd_kafka_conf_t *conf, void (*rebalance_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *partitions, void *opaque));
void rd_kafka_conf_set_offset_commit_cb(rd_kafka_conf_t *conf, void (*offset_commit_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *opaque));
void rd_kafka_conf_set_error_cb(rd_kafka_conf_t *conf, void (*error_cb)(rd_kafka_t *rk, int err, const char *reason, void *opaque));
void rd_kafka_conf_set_throttle_cb(rd_kafka_conf_t *conf, void (*throttle_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int throttle_time_ms, void *opaque));
void rd_kafka_conf_set_log_cb(rd_kafka_conf_t *conf, void (*log_cb)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_conf_set_stats_cb(rd_kafka_conf_t *conf, int (*stats_cb)(rd_kafka_t *rk, char *json, size_t json_len, void *opaque));
void rd_kafka_conf_set_socket_cb(rd_kafka_conf_t *conf, int (*socket_cb)(int domain, int type, int protocol, void *opaque));
void rd_kafka_conf_set_connect_cb(rd_kafka_conf_t *conf, int (*connect_cb)(int sockfd, const struct sockaddr *addr, int addrlen, const char *id, void *opaque));
void rd_kafka_conf_set_closesocket_cb(rd_kafka_conf_t *conf, int (*closesocket_cb)(int sockfd, void *opaque));
void rd_kafka_conf_set_opaque(rd_kafka_conf_t *conf, void *opaque);
void *rd_kafka_opaque(const rd_kafka_t *rk);
void rd_kafka_conf_set_default_topic_conf(rd_kafka_conf_t *conf, rd_kafka_topic_conf_t *tconf);
rd_kafka_conf_res_t rd_kafka_conf_get(const rd_kafka_conf_t *conf, const char *name, char *dest, size_t *dest_size);
rd_kafka_conf_res_t rd_kafka_topic_conf_get(const rd_kafka_topic_conf_t *conf, const char *name, char *dest, size_t *dest_size);
const char **rd_kafka_conf_dump(rd_kafka_conf_t *conf, size_t *cntp);
const char **rd_kafka_topic_conf_dump(rd_kafka_topic_conf_t *conf, size_t *cntp);
void rd_kafka_conf_dump_free(const char **arr, size_t cnt);
void rd_kafka_conf_properties_show(FILE *fp);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_new(void);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_dup(const rd_kafka_topic_conf_t *conf);
rd_kafka_topic_conf_t *rd_kafka_default_topic_conf_dup(rd_kafka_t *rk);
void rd_kafka_topic_conf_destroy(rd_kafka_topic_conf_t *topic_conf);
rd_kafka_conf_res_t rd_kafka_topic_conf_set(rd_kafka_topic_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_topic_conf_set_opaque(rd_kafka_topic_conf_t *conf, void *opaque);
void rd_kafka_topic_conf_set_partitioner_cb(rd_kafka_topic_conf_t *topic_conf, int32_t (*partitioner)(const rd_kafka_topic_t *rkt, const void *keydata, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque));
void rd_kafka_topic_conf_set_msg_order_cmp(rd_kafka_topic_conf_t *topic_conf, int (*msg_order_cmp)(const rd_kafka_message_t *a, const rd_kafka_message_t *b));
int rd_kafka_topic_partition_available(const rd_kafka_topic_t *rkt, int32_t partition);
int32_t rd_kafka_msg_partitioner_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
rd_kafka_t *rd_kafka_new(rd_kafka_type_t type, rd_kafka_conf_t *conf, char *errstr, size_t errstr_size);
void rd_kafka_destroy(rd_kafka_t *rk);
void rd_kafka_destroy_flags(rd_kafka_t *rk, int flags);
const char *rd_kafka_name(const rd_kafka_t *rk);
rd_kafka_type_t rd_kafka_type(const rd_kafka_t *rk);
char *rd_kafka_memberid(const rd_kafka_t *rk);
char *rd_kafka_clusterid(rd_kafka_t *rk, int timeout_ms);
int32_t rd_kafka_controllerid(rd_kafka_t *rk, int timeout_ms);
rd_kafka_topic_t *rd_kafka_topic_new(rd_kafka_t *rk, const char *topic, rd_kafka_topic_conf_t *conf);
void rd_kafka_topic_destroy(rd_kafka_topic_t *rkt);
const char *rd_kafka_topic_name(const rd_kafka_topic_t *rkt);
void *rd_kafka_topic_opaque(const rd_kafka_topic_t *rkt);
int rd_kafka_poll(rd_kafka_t *rk, int timeout_ms);
void rd_kafka_yield(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_pause_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_resume_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_query_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_get_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high);
rd_kafka_resp_err_t rd_kafka_offsets_for_times(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets, int timeout_ms);
void rd_kafka_mem_free(rd_kafka_t *rk, void *ptr);
rd_kafka_queue_t *rd_kafka_queue_new(rd_kafka_t *rk);
void rd_kafka_queue_destroy(rd_kafka_queue_t *rkqu);
rd_kafka_queue_t *rd_kafka_queue_get_main(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_consumer(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_partition(rd_kafka_t *rk, const char *topic, int32_t partition);
rd_kafka_queue_t *rd_kafka_queue_get_background(rd_kafka_t *rk);
void rd_kafka_queue_forward(rd_kafka_queue_t *src, rd_kafka_queue_t *dst);
rd_kafka_resp_err_t rd_kafka_set_log_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu);
size_t rd_kafka_queue_length(rd_kafka_queue_t *rkqu);
void rd_kafka_queue_io_event_enable(rd_kafka_queue_t *rkqu, int fd, const void *payload, size_t size);
void rd_kafka_queue_cb_event_enable(rd_kafka_queue_t *rkqu, void (*event_cb)(rd_kafka_t *rk, void *opaque), void *opaque);
int rd_kafka_consume_start(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
int rd_kafka_consume_start_queue(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, rd_kafka_queue_t *rkqu);
int rd_kafka_consume_stop(rd_kafka_topic_t *rkt, int32_t partition);
rd_kafka_resp_err_t rd_kafka_seek(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, int timeout_ms);
rd_kafka_message_t *rd_kafka_consume(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms);
ssize_t rd_kafka_consume_batch(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *opaque), void *opaque);
rd_kafka_message_t *rd_kafka_consume_queue(rd_kafka_queue_t *rkqu, int timeout_ms);
ssize_t rd_kafka_consume_batch_queue(rd_kafka_queue_t *rkqu, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback_queue(rd_kafka_queue_t *rkqu, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *opaque), void *opaque);
rd_kafka_resp_err_t rd_kafka_offset_store(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
rd_kafka_resp_err_t rd_kafka_offsets_store(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets);
rd_kafka_resp_err_t rd_kafka_subscribe(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *topics);
rd_kafka_resp_err_t rd_kafka_unsubscribe(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_subscription(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **topics);
rd_kafka_message_t *rd_kafka_consumer_poll(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_consumer_close(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_assignment(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **partitions);
rd_kafka_resp_err_t rd_kafka_commit(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, int async);
rd_kafka_resp_err_t rd_kafka_commit_message(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, int async);
rd_kafka_resp_err_t rd_kafka_commit_queue(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_queue_t *rkqu, void (*cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *opaque), void *opaque);
rd_kafka_resp_err_t rd_kafka_committed(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_position(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
int rd_kafka_produce(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, void *payload, size_t len, const void *key, size_t keylen, void *msg_opaque);
rd_kafka_resp_err_t rd_kafka_producev(rd_kafka_t *rk, ...);
int rd_kafka_produce_batch(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, rd_kafka_message_t *rkmessages, int message_cnt);
rd_kafka_resp_err_t rd_kafka_flush(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_purge(rd_kafka_t *rk, int purge_flags);
typedef struct rd_kafka_metadata_broker {
  int32_t id;
  char *host;
  int port;
} rd_kafka_metadata_broker_t;
typedef struct rd_kafka_metadata_partition {
  int32_t id;
  rd_kafka_resp_err_t err;
  int32_t leader;
  int replica_cnt;
  int32_t *replicas;
  int isr_cnt;
  int32_t *isrs;
} rd_kafka_metadata_partition_t;
typedef struct rd_kafka_metadata_topic {
  char *topic;
  int partition_cnt;
  struct rd_kafka_metadata_partition *partitions;
  rd_kafka_resp_err_t err;
} rd_kafka_metadata_topic_t;
typedef struct rd_kafka_metadata {
  int broker_cnt;
  struct rd_kafka_metadata_broker *brokers;
  int topic_cnt;
  struct rd_kafka_metadata_topic *topics;
  int32_t orig_broker_id;
  char *orig_broker_name;
} rd_kafka_metadata_t;
rd_kafka_resp_err_t rd_kafka_metadata(rd_kafka_t *rk, int all_topics, rd_kafka_topic_t *only_rkt, const struct rd_kafka_metadata **metadatap, int timeout_ms);
void rd_kafka_metadata_destroy(const struct rd_kafka_metadata *metadata);
struct rd_kafka_group_member_info {
  char *member_id;
  char *client_id;
  char *client_host;
  void *member_metadata;
  int member_metadata_size;
  void *member_assignment;
  int member_assignment_size;
};
struct rd_kafka_group_info {
  struct rd_kafka_metadata_broker broker;
  char *group;
  rd_kafka_resp_err_t err;
  char *state;
  char *protocol_type;
  char *protocol;
  struct rd_kafka_group_member_info *members;
  int member_cnt;
};
struct rd_kafka_group_list {
  struct rd_kafka_group_info *groups;
  int group_cnt;
};
rd_kafka_resp_err_t rd_kafka_list_groups(rd_kafka_t *rk, const char *group, const struct rd_kafka_group_list **grplistp, int timeout_ms);
void rd_kafka_group_list_destroy(const struct rd_kafka_group_list *grplist);
int rd_kafka_brokers_add(rd_kafka_t *rk, const char *brokerlist);
void rd_kafka_set_logger(rd_kafka_t *rk, void (*func)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_set_log_level(rd_kafka_t *rk, int level);
void rd_kafka_log_print(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
void rd_kafka_log_syslog(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
int rd_kafka_outq_len(rd_kafka_t *rk);
void rd_kafka_dump(FILE *fp, rd_kafka_t *rk);
int rd_kafka_thread_cnt(void);
int rd_kafka_wait_destroyed(int timeout_ms);
int rd_kafka_unittest(void);
rd_kafka_resp_err_t rd_kafka_poll_set_consumer(rd_kafka_t *rk);
typedef int rd_kafka_event_type_t;
rd_kafka_event_type_t rd_kafka_event_type(const rd_kafka_event_t *rkev);
const char *rd_kafka_event_name(const rd_kafka_event_t *rkev);
void rd_kafka_event_destroy(rd_kafka_event_t *rkev);
const rd_kafka_message_t *rd_kafka_event_message_next(rd_kafka_event_t *rkev);
size_t rd_kafka_event_message_array(rd_kafka_event_t *rkev, const rd_kafka_message_t **rkmessages, size_t size);
size_t rd_kafka_event_message_count(rd_kafka_event_t *rkev);
rd_kafka_resp_err_t rd_kafka_event_error(rd_kafka_event_t *rkev);
const char *rd_kafka_event_error_string(rd_kafka_event_t *rkev);
int rd_kafka_event_error_is_fatal(rd_kafka_event_t *rkev);
void *rd_kafka_event_opaque(rd_kafka_event_t *rkev);
int rd_kafka_event_log(rd_kafka_event_t *rkev, const char **fac, const char **str, int *level);
const char *rd_kafka_event_stats(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_list_t *rd_kafka_event_topic_partition_list(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_t *rd_kafka_event_topic_partition(rd_kafka_event_t *rkev);
typedef rd_kafka_event_t rd_kafka_CreateTopics_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteTopics_result_t;
typedef rd_kafka_event_t rd_kafka_CreatePartitions_result_t;
typedef rd_kafka_event_t rd_kafka_AlterConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeConfigs_result_t;
const rd_kafka_CreateTopics_result_t *rd_kafka_event_CreateTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteTopics_result_t *rd_kafka_event_DeleteTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_CreatePartitions_result_t *rd_kafka_event_CreatePartitions_result(rd_kafka_event_t *rkev);
const rd_kafka_AlterConfigs_result_t *rd_kafka_event_AlterConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeConfigs_result_t *rd_kafka_event_DescribeConfigs_result(rd_kafka_event_t *rkev);
rd_kafka_event_t *rd_kafka_queue_poll(rd_kafka_queue_t *rkqu, int timeout_ms);
int rd_kafka_queue_poll_callback(rd_kafka_queue_t *rkqu, int timeout_ms);
typedef rd_kafka_resp_err_t (rd_kafka_plugin_f_conf_init_t)(rd_kafka_conf_t *conf, void **plug_opaquep, char *errstr, size_t errstr_size);
typedef rd_kafka_conf_res_t (rd_kafka_interceptor_f_on_conf_set_t)(rd_kafka_conf_t *conf, const char *name, const char *val, char *errstr, size_t errstr_size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_dup_t)(rd_kafka_conf_t *new_conf, const rd_kafka_conf_t *old_conf, size_t filter_cnt, const char **filter, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_destroy_t)(void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_new_t)(rd_kafka_t *rk, const rd_kafka_conf_t *conf, void *ic_opaque, char *errstr, size_t errstr_size);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_destroy_t)(rd_kafka_t *rk, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_send_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_acknowledgement_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_consume_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_commit_t)(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_request_sent_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_set(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_set_t *on_conf_set, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_dup(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_dup_t *on_conf_dup, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_destroy(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_destroy_t *on_conf_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_new(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_new_t *on_new, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_destroy(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_destroy_t *on_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_send(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_send_t *on_send, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_acknowledgement(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_acknowledgement_t *on_acknowledgement, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_consume(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_consume_t *on_consume, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_commit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_commit_t *on_commit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_request_sent(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_request_sent_t *on_request_sent, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_topic_result_error(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_error_string(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_name(const rd_kafka_topic_result_t *topicres);
typedef enum rd_kafka_admin_op_t {
  RD_KAFKA_ADMIN_OP_ANY = 0,
  RD_KAFKA_ADMIN_OP_CREATETOPICS,
  RD_KAFKA_ADMIN_OP_DELETETOPICS,
  RD_KAFKA_ADMIN_OP_CREATEPARTITIONS,
  RD_KAFKA_ADMIN_OP_ALTERCONFIGS,
  RD_KAFKA_ADMIN_OP_DESCRIBECONFIGS,
  RD_KAFKA_ADMIN_OP__CNT,
} rd_kafka_admin_op_t;
typedef struct rd_kafka_AdminOptions_s rd_kafka_AdminOptions_t;
rd_kafka_AdminOptions_t *rd_kafka_AdminOptions_new(rd_kafka_t *rk, rd_kafka_admin_op_t for_api);
void rd_kafka_AdminOptions_destroy(rd_kafka_AdminOptions_t *options);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_request_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_operation_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_validate_only(rd_kafka_AdminOptions_t *options, int true_or_false, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_broker(rd_kafka_AdminOptions_t *options, int32_t broker_id, char *errstr, size_t errstr_size);
void rd_kafka_AdminOptions_set_opaque(rd_kafka_AdminOptions_t *options, void *opaque);
typedef struct rd_kafka_NewTopic_s rd_kafka_NewTopic_t;
rd_kafka_NewTopic_t *rd_kafka_NewTopic_new(const char *topic, int num_partitions, int replication_factor, char *errstr, size_t errstr_size);
void rd_kafka_NewTopic_destroy(rd_kafka_NewTopic_t *new_topic);
void rd_kafka_NewTopic_destroy_array(rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_replica_assignment(rd_kafka_NewTopic_t *new_topic, int32_t partition, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_config(rd_kafka_NewTopic_t *new_topic, const char *name, const char *value);
void rd_kafka_CreateTopics(rd_kafka_t *rk, rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreateTopics_result_topics(const rd_kafka_CreateTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteTopic_s rd_kafka_DeleteTopic_t;
rd_kafka_DeleteTopic_t *rd_kafka_DeleteTopic_new(const char *topic);
void rd_kafka_DeleteTopic_destroy(rd_kafka_DeleteTopic_t *del_topic);
void rd_kafka_DeleteTopic_destroy_array(rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt);
void rd_kafka_DeleteTopics(rd_kafka_t *rk, rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_DeleteTopics_result_topics(const rd_kafka_DeleteTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_NewPartitions_s rd_kafka_NewPartitions_t;
rd_kafka_NewPartitions_t *rd_kafka_NewPartitions_new(const char *topic, size_t new_total_cnt, char *errstr, size_t errstr_size);
void rd_kafka_NewPartitions_destroy(rd_kafka_NewPartitions_t *new_parts);
void rd_kafka_NewPartitions_destroy_array(rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt);
rd_kafka_resp_err_t rd_kafka_NewPartitions_set_replica_assignment(rd_kafka_NewPartitions_t *new_parts, int32_t new_partition_idx, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
void rd_kafka_CreatePartitions(rd_kafka_t *rk, rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreatePartitions_result_topics(const rd_kafka_CreatePartitions_result_t *result, size_t *cntp);
typedef enum rd_kafka_ConfigSource_t {
  RD_KAFKA_CONFIG_SOURCE_UNKNOWN_CONFIG = 0,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG = 1,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG = 2,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG = 3,
  RD_KAFKA_CONFIG_SOURCE_STATIC_BROKER_CONFIG = 4,
  RD_KAFKA_CONFIG_SOURCE_DEFAULT_CONFIG = 5,
  RD_KAFKA_CONFIG_SOURCE__CNT,
} rd_kafka_ConfigSource_t;
const char *rd_kafka_ConfigSource_name(rd_kafka_ConfigSource_t confsource);
typedef struct rd_kafka_ConfigEntry_s rd_kafka_ConfigEntry_t;
const char *rd_kafka_ConfigEntry_name(const rd_kafka_ConfigEntry_t *entry);
const char *rd_kafka_ConfigEntry_value(const rd_kafka_ConfigEntry_t *entry);
rd_kafka_ConfigSource_t rd_kafka_ConfigEntry_source(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_read_only(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_default(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_sensitive(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_synonym(const rd_kafka_ConfigEntry_t *entry);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigEntry_synonyms(const rd_kafka_ConfigEntry_t *entry, size_t *cntp);
typedef enum rd_kafka_ResourceType_t {
  RD_KAFKA_RESOURCE_UNKNOWN = 0,
  RD_KAFKA_RESOURCE_ANY = 1,
  RD_KAFKA_RESOURCE_TOPIC = 2,
  RD_KAFKA_RESOURCE_GROUP = 3,
  RD_KAFKA_RESOURCE_BROKER = 4,
  RD_KAFKA_RESOURCE__CNT,
} rd_kafka_ResourceType_t;
const char *rd_kafka_ResourceType_name(rd_kafka_ResourceType_t restype);
typedef struct rd_kafka_ConfigResource_s rd_kafka_ConfigResource_t;
rd_kafka_ConfigResource_t *rd_kafka_ConfigResource_new(rd_kafka_ResourceType_t restype, const char *resname);
void rd_kafka_ConfigResource_destroy(rd_kafka_ConfigResource_t *config);
void rd_kafka_ConfigResource_destroy_array(rd_kafka_ConfigResource_t **config, size_t config_cnt);
rd_kafka_resp_err_t rd_kafka_ConfigResource_set_config(rd_kafka_ConfigResource_t *config, const char *name, const char *value);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigResource_configs(const rd_kafka_ConfigResource_t *config, size_t *cntp);
rd_kafka_ResourceType_t rd_kafka_ConfigResource_type(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_name(const rd_kafka_ConfigResource_t *config);
rd_kafka_resp_err_t rd_kafka_ConfigResource_error(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_error_string(const rd_kafka_ConfigResource_t *config);
void rd_kafka_AlterConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_AlterConfigs_result_resources(const rd_kafka_AlterConfigs_result_t *result, size_t *cntp);
void rd_kafka_DescribeConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_DescribeConfigs_result_resources(const rd_kafka_DescribeConfigs_result_t *result, size_t *cntp);
'
rdkafka.h, rdkafka_mock.h

RD_KAFKA_VERSION

public RD_KAFKA_VERSION = 16777727

librdkafka version

Interpreted as hex MM.mm.rr.xx:

  • MM = Major
  • mm = minor
  • rr = revision
  • xx = pre-release id (0xff is the final release)

E.g.: 0x000801ff = 0.8.1

Remarks
This value should only be used during compile time, for runtime checks of version use rd_kafka_version()

RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE

public RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76

Unsupported compression type

RD_KAFKA_RESP_ERR_END_ALL

public RD_KAFKA_RESP_ERR_END_ALL = 82
enum rd_kafka_resp_err_t

RD_KAFKA_ADMIN_OP__CNT

public RD_KAFKA_ADMIN_OP__CNT = 6

Number of ops defined

RD_KAFKA_CDEF

public RD_KAFKA_CDEF = 'typedef long int ssize_t;
typedef struct _IO_FILE FILE;
typedef long int mode_t;
typedef signed int int16_t;
typedef unsigned int uint16_t;
typedef signed int int32_t;
typedef signed long int int64_t;
int rd_kafka_version(void);
const char *rd_kafka_version_str(void);
typedef enum rd_kafka_type_t {
  RD_KAFKA_PRODUCER,
  RD_KAFKA_CONSUMER,
} rd_kafka_type_t;
typedef enum rd_kafka_timestamp_type_t {
  RD_KAFKA_TIMESTAMP_NOT_AVAILABLE,
  RD_KAFKA_TIMESTAMP_CREATE_TIME,
  RD_KAFKA_TIMESTAMP_LOG_APPEND_TIME,
} rd_kafka_timestamp_type_t;
const char *rd_kafka_get_debug_contexts(void);
typedef struct rd_kafka_s rd_kafka_t;
typedef struct rd_kafka_topic_s rd_kafka_topic_t;
typedef struct rd_kafka_conf_s rd_kafka_conf_t;
typedef struct rd_kafka_topic_conf_s rd_kafka_topic_conf_t;
typedef struct rd_kafka_queue_s rd_kafka_queue_t;
typedef struct rd_kafka_op_s rd_kafka_event_t;
typedef struct rd_kafka_topic_result_s rd_kafka_topic_result_t;
typedef enum {
  RD_KAFKA_RESP_ERR__BEGIN = (- 200),
  RD_KAFKA_RESP_ERR__BAD_MSG = (- 199),
  RD_KAFKA_RESP_ERR__BAD_COMPRESSION = (- 198),
  RD_KAFKA_RESP_ERR__DESTROY = (- 197),
  RD_KAFKA_RESP_ERR__FAIL = (- 196),
  RD_KAFKA_RESP_ERR__TRANSPORT = (- 195),
  RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE = (- 194),
  RD_KAFKA_RESP_ERR__RESOLVE = (- 193),
  RD_KAFKA_RESP_ERR__MSG_TIMED_OUT = (- 192),
  RD_KAFKA_RESP_ERR__PARTITION_EOF = (- 191),
  RD_KAFKA_RESP_ERR__UNKNOWN_PARTITION = (- 190),
  RD_KAFKA_RESP_ERR__FS = (- 189),
  RD_KAFKA_RESP_ERR__UNKNOWN_TOPIC = (- 188),
  RD_KAFKA_RESP_ERR__ALL_BROKERS_DOWN = (- 187),
  RD_KAFKA_RESP_ERR__INVALID_ARG = (- 186),
  RD_KAFKA_RESP_ERR__TIMED_OUT = (- 185),
  RD_KAFKA_RESP_ERR__QUEUE_FULL = (- 184),
  RD_KAFKA_RESP_ERR__ISR_INSUFF = (- 183),
  RD_KAFKA_RESP_ERR__NODE_UPDATE = (- 182),
  RD_KAFKA_RESP_ERR__SSL = (- 181),
  RD_KAFKA_RESP_ERR__WAIT_COORD = (- 180),
  RD_KAFKA_RESP_ERR__UNKNOWN_GROUP = (- 179),
  RD_KAFKA_RESP_ERR__IN_PROGRESS = (- 178),
  RD_KAFKA_RESP_ERR__PREV_IN_PROGRESS = (- 177),
  RD_KAFKA_RESP_ERR__EXISTING_SUBSCRIPTION = (- 176),
  RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS = (- 175),
  RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS = (- 174),
  RD_KAFKA_RESP_ERR__CONFLICT = (- 173),
  RD_KAFKA_RESP_ERR__STATE = (- 172),
  RD_KAFKA_RESP_ERR__UNKNOWN_PROTOCOL = (- 171),
  RD_KAFKA_RESP_ERR__NOT_IMPLEMENTED = (- 170),
  RD_KAFKA_RESP_ERR__AUTHENTICATION = (- 169),
  RD_KAFKA_RESP_ERR__NO_OFFSET = (- 168),
  RD_KAFKA_RESP_ERR__OUTDATED = (- 167),
  RD_KAFKA_RESP_ERR__TIMED_OUT_QUEUE = (- 166),
  RD_KAFKA_RESP_ERR__UNSUPPORTED_FEATURE = (- 165),
  RD_KAFKA_RESP_ERR__WAIT_CACHE = (- 164),
  RD_KAFKA_RESP_ERR__INTR = (- 163),
  RD_KAFKA_RESP_ERR__KEY_SERIALIZATION = (- 162),
  RD_KAFKA_RESP_ERR__VALUE_SERIALIZATION = (- 161),
  RD_KAFKA_RESP_ERR__KEY_DESERIALIZATION = (- 160),
  RD_KAFKA_RESP_ERR__VALUE_DESERIALIZATION = (- 159),
  RD_KAFKA_RESP_ERR__PARTIAL = (- 158),
  RD_KAFKA_RESP_ERR__READ_ONLY = (- 157),
  RD_KAFKA_RESP_ERR__NOENT = (- 156),
  RD_KAFKA_RESP_ERR__UNDERFLOW = (- 155),
  RD_KAFKA_RESP_ERR__INVALID_TYPE = (- 154),
  RD_KAFKA_RESP_ERR__RETRY = (- 153),
  RD_KAFKA_RESP_ERR__PURGE_QUEUE = (- 152),
  RD_KAFKA_RESP_ERR__PURGE_INFLIGHT = (- 151),
  RD_KAFKA_RESP_ERR__FATAL = (- 150),
  RD_KAFKA_RESP_ERR__INCONSISTENT = (- 149),
  RD_KAFKA_RESP_ERR__GAPLESS_GUARANTEE = (- 148),
  RD_KAFKA_RESP_ERR__MAX_POLL_EXCEEDED = (- 147),
  RD_KAFKA_RESP_ERR__END = (- 100),
  RD_KAFKA_RESP_ERR_UNKNOWN = (- 1),
  RD_KAFKA_RESP_ERR_NO_ERROR = 0,
  RD_KAFKA_RESP_ERR_OFFSET_OUT_OF_RANGE = 1,
  RD_KAFKA_RESP_ERR_INVALID_MSG = 2,
  RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_OR_PART = 3,
  RD_KAFKA_RESP_ERR_INVALID_MSG_SIZE = 4,
  RD_KAFKA_RESP_ERR_LEADER_NOT_AVAILABLE = 5,
  RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION = 6,
  RD_KAFKA_RESP_ERR_REQUEST_TIMED_OUT = 7,
  RD_KAFKA_RESP_ERR_BROKER_NOT_AVAILABLE = 8,
  RD_KAFKA_RESP_ERR_REPLICA_NOT_AVAILABLE = 9,
  RD_KAFKA_RESP_ERR_MSG_SIZE_TOO_LARGE = 10,
  RD_KAFKA_RESP_ERR_STALE_CTRL_EPOCH = 11,
  RD_KAFKA_RESP_ERR_OFFSET_METADATA_TOO_LARGE = 12,
  RD_KAFKA_RESP_ERR_NETWORK_EXCEPTION = 13,
  RD_KAFKA_RESP_ERR_GROUP_LOAD_IN_PROGRESS = 14,
  RD_KAFKA_RESP_ERR_GROUP_COORDINATOR_NOT_AVAILABLE = 15,
  RD_KAFKA_RESP_ERR_NOT_COORDINATOR_FOR_GROUP = 16,
  RD_KAFKA_RESP_ERR_TOPIC_EXCEPTION = 17,
  RD_KAFKA_RESP_ERR_RECORD_LIST_TOO_LARGE = 18,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS = 19,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS_AFTER_APPEND = 20,
  RD_KAFKA_RESP_ERR_INVALID_REQUIRED_ACKS = 21,
  RD_KAFKA_RESP_ERR_ILLEGAL_GENERATION = 22,
  RD_KAFKA_RESP_ERR_INCONSISTENT_GROUP_PROTOCOL = 23,
  RD_KAFKA_RESP_ERR_INVALID_GROUP_ID = 24,
  RD_KAFKA_RESP_ERR_UNKNOWN_MEMBER_ID = 25,
  RD_KAFKA_RESP_ERR_INVALID_SESSION_TIMEOUT = 26,
  RD_KAFKA_RESP_ERR_REBALANCE_IN_PROGRESS = 27,
  RD_KAFKA_RESP_ERR_INVALID_COMMIT_OFFSET_SIZE = 28,
  RD_KAFKA_RESP_ERR_TOPIC_AUTHORIZATION_FAILED = 29,
  RD_KAFKA_RESP_ERR_GROUP_AUTHORIZATION_FAILED = 30,
  RD_KAFKA_RESP_ERR_CLUSTER_AUTHORIZATION_FAILED = 31,
  RD_KAFKA_RESP_ERR_INVALID_TIMESTAMP = 32,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_SASL_MECHANISM = 33,
  RD_KAFKA_RESP_ERR_ILLEGAL_SASL_STATE = 34,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_VERSION = 35,
  RD_KAFKA_RESP_ERR_TOPIC_ALREADY_EXISTS = 36,
  RD_KAFKA_RESP_ERR_INVALID_PARTITIONS = 37,
  RD_KAFKA_RESP_ERR_INVALID_REPLICATION_FACTOR = 38,
  RD_KAFKA_RESP_ERR_INVALID_REPLICA_ASSIGNMENT = 39,
  RD_KAFKA_RESP_ERR_INVALID_CONFIG = 40,
  RD_KAFKA_RESP_ERR_NOT_CONTROLLER = 41,
  RD_KAFKA_RESP_ERR_INVALID_REQUEST = 42,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_FOR_MESSAGE_FORMAT = 43,
  RD_KAFKA_RESP_ERR_POLICY_VIOLATION = 44,
  RD_KAFKA_RESP_ERR_OUT_OF_ORDER_SEQUENCE_NUMBER = 45,
  RD_KAFKA_RESP_ERR_DUPLICATE_SEQUENCE_NUMBER = 46,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_EPOCH = 47,
  RD_KAFKA_RESP_ERR_INVALID_TXN_STATE = 48,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_ID_MAPPING = 49,
  RD_KAFKA_RESP_ERR_INVALID_TRANSACTION_TIMEOUT = 50,
  RD_KAFKA_RESP_ERR_CONCURRENT_TRANSACTIONS = 51,
  RD_KAFKA_RESP_ERR_TRANSACTION_COORDINATOR_FENCED = 52,
  RD_KAFKA_RESP_ERR_TRANSACTIONAL_ID_AUTHORIZATION_FAILED = 53,
  RD_KAFKA_RESP_ERR_SECURITY_DISABLED = 54,
  RD_KAFKA_RESP_ERR_OPERATION_NOT_ATTEMPTED = 55,
  RD_KAFKA_RESP_ERR_KAFKA_STORAGE_ERROR = 56,
  RD_KAFKA_RESP_ERR_LOG_DIR_NOT_FOUND = 57,
  RD_KAFKA_RESP_ERR_SASL_AUTHENTICATION_FAILED = 58,
  RD_KAFKA_RESP_ERR_UNKNOWN_PRODUCER_ID = 59,
  RD_KAFKA_RESP_ERR_REASSIGNMENT_IN_PROGRESS = 60,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTH_DISABLED = 61,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_NOT_FOUND = 62,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_OWNER_MISMATCH = 63,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_REQUEST_NOT_ALLOWED = 64,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTHORIZATION_FAILED = 65,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_EXPIRED = 66,
  RD_KAFKA_RESP_ERR_INVALID_PRINCIPAL_TYPE = 67,
  RD_KAFKA_RESP_ERR_NON_EMPTY_GROUP = 68,
  RD_KAFKA_RESP_ERR_GROUP_ID_NOT_FOUND = 69,
  RD_KAFKA_RESP_ERR_FETCH_SESSION_ID_NOT_FOUND = 70,
  RD_KAFKA_RESP_ERR_INVALID_FETCH_SESSION_EPOCH = 71,
  RD_KAFKA_RESP_ERR_LISTENER_NOT_FOUND = 72,
  RD_KAFKA_RESP_ERR_TOPIC_DELETION_DISABLED = 73,
  RD_KAFKA_RESP_ERR_FENCED_LEADER_EPOCH = 74,
  RD_KAFKA_RESP_ERR_UNKNOWN_LEADER_EPOCH = 75,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76,
  RD_KAFKA_RESP_ERR_STALE_BROKER_EPOCH = 77,
  RD_KAFKA_RESP_ERR_OFFSET_NOT_AVAILABLE = 78,
  RD_KAFKA_RESP_ERR_MEMBER_ID_REQUIRED = 79,
  RD_KAFKA_RESP_ERR_PREFERRED_LEADER_NOT_AVAILABLE = 80,
  RD_KAFKA_RESP_ERR_GROUP_MAX_SIZE_REACHED = 81,
  RD_KAFKA_RESP_ERR_END_ALL,
} rd_kafka_resp_err_t;
struct rd_kafka_err_desc {
  rd_kafka_resp_err_t code;
  char *name;
  char *desc;
};
void rd_kafka_get_err_descs(const struct rd_kafka_err_desc **errdescs, size_t *cntp);
const char *rd_kafka_err2str(rd_kafka_resp_err_t err);
const char *rd_kafka_err2name(rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_last_error(void);
rd_kafka_resp_err_t rd_kafka_errno2err(int errnox);
int rd_kafka_errno(void);
rd_kafka_resp_err_t rd_kafka_fatal_error(rd_kafka_t *rk, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_test_fatal_error(rd_kafka_t *rk, rd_kafka_resp_err_t err, const char *reason);
typedef struct rd_kafka_topic_partition_s {
  char *topic;
  int32_t partition;
  int64_t offset;
  void *metadata;
  size_t metadata_size;
  void *opaque;
  rd_kafka_resp_err_t err;
  void *_private;
} rd_kafka_topic_partition_t;
void rd_kafka_topic_partition_destroy(rd_kafka_topic_partition_t *rktpar);
typedef struct rd_kafka_topic_partition_list_s {
  int cnt;
  int size;
  rd_kafka_topic_partition_t *elems;
} rd_kafka_topic_partition_list_t;
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_new(int size);
void rd_kafka_topic_partition_list_destroy(rd_kafka_topic_partition_list_t *rkparlist);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_add(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_add_range(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t start, int32_t stop);
int rd_kafka_topic_partition_list_del(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
int rd_kafka_topic_partition_list_del_by_idx(rd_kafka_topic_partition_list_t *rktparlist, int idx);
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_copy(const rd_kafka_topic_partition_list_t *src);
rd_kafka_resp_err_t rd_kafka_topic_partition_list_set_offset(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition, int64_t offset);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_find(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_sort(rd_kafka_topic_partition_list_t *rktparlist, int (*cmp)(const void *a, const void *b, void *opaque), void *opaque);
typedef enum rd_kafka_vtype_t {
  RD_KAFKA_VTYPE_END,
  RD_KAFKA_VTYPE_TOPIC,
  RD_KAFKA_VTYPE_RKT,
  RD_KAFKA_VTYPE_PARTITION,
  RD_KAFKA_VTYPE_VALUE,
  RD_KAFKA_VTYPE_KEY,
  RD_KAFKA_VTYPE_OPAQUE,
  RD_KAFKA_VTYPE_MSGFLAGS,
  RD_KAFKA_VTYPE_TIMESTAMP,
  RD_KAFKA_VTYPE_HEADER,
  RD_KAFKA_VTYPE_HEADERS,
} rd_kafka_vtype_t;
typedef struct rd_kafka_headers_s rd_kafka_headers_t;
rd_kafka_headers_t *rd_kafka_headers_new(size_t initial_count);
void rd_kafka_headers_destroy(rd_kafka_headers_t *hdrs);
rd_kafka_headers_t *rd_kafka_headers_copy(const rd_kafka_headers_t *src);
rd_kafka_resp_err_t rd_kafka_header_add(rd_kafka_headers_t *hdrs, const char *name, ssize_t name_size, const void *value, ssize_t value_size);
rd_kafka_resp_err_t rd_kafka_header_remove(rd_kafka_headers_t *hdrs, const char *name);
rd_kafka_resp_err_t rd_kafka_header_get_last(const rd_kafka_headers_t *hdrs, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get(const rd_kafka_headers_t *hdrs, size_t idx, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get_all(const rd_kafka_headers_t *hdrs, size_t idx, const char **namep, const void **valuep, size_t *sizep);
typedef struct rd_kafka_message_s {
  rd_kafka_resp_err_t err;
  rd_kafka_topic_t *rkt;
  int32_t partition;
  void *payload;
  size_t len;
  void *key;
  size_t key_len;
  int64_t offset;
  void *_private;
} rd_kafka_message_t;
void rd_kafka_message_destroy(rd_kafka_message_t *rkmessage);
int64_t rd_kafka_message_timestamp(const rd_kafka_message_t *rkmessage, rd_kafka_timestamp_type_t *tstype);
int64_t rd_kafka_message_latency(const rd_kafka_message_t *rkmessage);
rd_kafka_resp_err_t rd_kafka_message_headers(const rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
rd_kafka_resp_err_t rd_kafka_message_detach_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
void rd_kafka_message_set_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t *hdrs);
size_t rd_kafka_header_cnt(const rd_kafka_headers_t *hdrs);
typedef enum {
  RD_KAFKA_MSG_STATUS_NOT_PERSISTED = 0,
  RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED = 1,
  RD_KAFKA_MSG_STATUS_PERSISTED = 2,
} rd_kafka_msg_status_t;
rd_kafka_msg_status_t rd_kafka_message_status(const rd_kafka_message_t *rkmessage);
typedef enum {
  RD_KAFKA_CONF_UNKNOWN = (- 2),
  RD_KAFKA_CONF_INVALID = (- 1),
  RD_KAFKA_CONF_OK = 0,
} rd_kafka_conf_res_t;
rd_kafka_conf_t *rd_kafka_conf_new(void);
void rd_kafka_conf_destroy(rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup(const rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup_filter(const rd_kafka_conf_t *conf, size_t filter_cnt, const char **filter);
rd_kafka_conf_res_t rd_kafka_conf_set(rd_kafka_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_events(rd_kafka_conf_t *conf, int events);
void rd_kafka_conf_set_background_event_cb(rd_kafka_conf_t *conf, void (*event_cb)(rd_kafka_t *rk, rd_kafka_event_t *rkev, void *opaque));
void rd_kafka_conf_set_dr_cb(rd_kafka_conf_t *conf, void (*dr_cb)(rd_kafka_t *rk, void *payload, size_t len, rd_kafka_resp_err_t err, void *opaque, void *msg_opaque));
void rd_kafka_conf_set_dr_msg_cb(rd_kafka_conf_t *conf, void (*dr_msg_cb)(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_consume_cb(rd_kafka_conf_t *conf, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_rebalance_cb(rd_kafka_conf_t *conf, void (*rebalance_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *partitions, void *opaque));
void rd_kafka_conf_set_offset_commit_cb(rd_kafka_conf_t *conf, void (*offset_commit_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *opaque));
void rd_kafka_conf_set_error_cb(rd_kafka_conf_t *conf, void (*error_cb)(rd_kafka_t *rk, int err, const char *reason, void *opaque));
void rd_kafka_conf_set_throttle_cb(rd_kafka_conf_t *conf, void (*throttle_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int throttle_time_ms, void *opaque));
void rd_kafka_conf_set_log_cb(rd_kafka_conf_t *conf, void (*log_cb)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_conf_set_stats_cb(rd_kafka_conf_t *conf, int (*stats_cb)(rd_kafka_t *rk, char *json, size_t json_len, void *opaque));
void rd_kafka_conf_set_socket_cb(rd_kafka_conf_t *conf, int (*socket_cb)(int domain, int type, int protocol, void *opaque));
void rd_kafka_conf_set_connect_cb(rd_kafka_conf_t *conf, int (*connect_cb)(int sockfd, const struct sockaddr *addr, int addrlen, const char *id, void *opaque));
void rd_kafka_conf_set_closesocket_cb(rd_kafka_conf_t *conf, int (*closesocket_cb)(int sockfd, void *opaque));
void rd_kafka_conf_set_opaque(rd_kafka_conf_t *conf, void *opaque);
void *rd_kafka_opaque(const rd_kafka_t *rk);
void rd_kafka_conf_set_default_topic_conf(rd_kafka_conf_t *conf, rd_kafka_topic_conf_t *tconf);
rd_kafka_conf_res_t rd_kafka_conf_get(const rd_kafka_conf_t *conf, const char *name, char *dest, size_t *dest_size);
rd_kafka_conf_res_t rd_kafka_topic_conf_get(const rd_kafka_topic_conf_t *conf, const char *name, char *dest, size_t *dest_size);
const char **rd_kafka_conf_dump(rd_kafka_conf_t *conf, size_t *cntp);
const char **rd_kafka_topic_conf_dump(rd_kafka_topic_conf_t *conf, size_t *cntp);
void rd_kafka_conf_dump_free(const char **arr, size_t cnt);
void rd_kafka_conf_properties_show(FILE *fp);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_new(void);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_dup(const rd_kafka_topic_conf_t *conf);
rd_kafka_topic_conf_t *rd_kafka_default_topic_conf_dup(rd_kafka_t *rk);
void rd_kafka_topic_conf_destroy(rd_kafka_topic_conf_t *topic_conf);
rd_kafka_conf_res_t rd_kafka_topic_conf_set(rd_kafka_topic_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_topic_conf_set_opaque(rd_kafka_topic_conf_t *conf, void *opaque);
void rd_kafka_topic_conf_set_partitioner_cb(rd_kafka_topic_conf_t *topic_conf, int32_t (*partitioner)(const rd_kafka_topic_t *rkt, const void *keydata, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque));
void rd_kafka_topic_conf_set_msg_order_cmp(rd_kafka_topic_conf_t *topic_conf, int (*msg_order_cmp)(const rd_kafka_message_t *a, const rd_kafka_message_t *b));
int rd_kafka_topic_partition_available(const rd_kafka_topic_t *rkt, int32_t partition);
int32_t rd_kafka_msg_partitioner_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
rd_kafka_t *rd_kafka_new(rd_kafka_type_t type, rd_kafka_conf_t *conf, char *errstr, size_t errstr_size);
void rd_kafka_destroy(rd_kafka_t *rk);
void rd_kafka_destroy_flags(rd_kafka_t *rk, int flags);
const char *rd_kafka_name(const rd_kafka_t *rk);
rd_kafka_type_t rd_kafka_type(const rd_kafka_t *rk);
char *rd_kafka_memberid(const rd_kafka_t *rk);
char *rd_kafka_clusterid(rd_kafka_t *rk, int timeout_ms);
int32_t rd_kafka_controllerid(rd_kafka_t *rk, int timeout_ms);
rd_kafka_topic_t *rd_kafka_topic_new(rd_kafka_t *rk, const char *topic, rd_kafka_topic_conf_t *conf);
void rd_kafka_topic_destroy(rd_kafka_topic_t *rkt);
const char *rd_kafka_topic_name(const rd_kafka_topic_t *rkt);
void *rd_kafka_topic_opaque(const rd_kafka_topic_t *rkt);
int rd_kafka_poll(rd_kafka_t *rk, int timeout_ms);
void rd_kafka_yield(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_pause_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_resume_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_query_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_get_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high);
rd_kafka_resp_err_t rd_kafka_offsets_for_times(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets, int timeout_ms);
void rd_kafka_mem_free(rd_kafka_t *rk, void *ptr);
rd_kafka_queue_t *rd_kafka_queue_new(rd_kafka_t *rk);
void rd_kafka_queue_destroy(rd_kafka_queue_t *rkqu);
rd_kafka_queue_t *rd_kafka_queue_get_main(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_consumer(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_partition(rd_kafka_t *rk, const char *topic, int32_t partition);
rd_kafka_queue_t *rd_kafka_queue_get_background(rd_kafka_t *rk);
void rd_kafka_queue_forward(rd_kafka_queue_t *src, rd_kafka_queue_t *dst);
rd_kafka_resp_err_t rd_kafka_set_log_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu);
size_t rd_kafka_queue_length(rd_kafka_queue_t *rkqu);
void rd_kafka_queue_io_event_enable(rd_kafka_queue_t *rkqu, int fd, const void *payload, size_t size);
void rd_kafka_queue_cb_event_enable(rd_kafka_queue_t *rkqu, void (*event_cb)(rd_kafka_t *rk, void *opaque), void *opaque);
int rd_kafka_consume_start(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
int rd_kafka_consume_start_queue(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, rd_kafka_queue_t *rkqu);
int rd_kafka_consume_stop(rd_kafka_topic_t *rkt, int32_t partition);
rd_kafka_resp_err_t rd_kafka_seek(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, int timeout_ms);
rd_kafka_message_t *rd_kafka_consume(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms);
ssize_t rd_kafka_consume_batch(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *opaque), void *opaque);
rd_kafka_message_t *rd_kafka_consume_queue(rd_kafka_queue_t *rkqu, int timeout_ms);
ssize_t rd_kafka_consume_batch_queue(rd_kafka_queue_t *rkqu, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback_queue(rd_kafka_queue_t *rkqu, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *opaque), void *opaque);
rd_kafka_resp_err_t rd_kafka_offset_store(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
rd_kafka_resp_err_t rd_kafka_offsets_store(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets);
rd_kafka_resp_err_t rd_kafka_subscribe(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *topics);
rd_kafka_resp_err_t rd_kafka_unsubscribe(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_subscription(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **topics);
rd_kafka_message_t *rd_kafka_consumer_poll(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_consumer_close(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_assignment(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **partitions);
rd_kafka_resp_err_t rd_kafka_commit(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, int async);
rd_kafka_resp_err_t rd_kafka_commit_message(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, int async);
rd_kafka_resp_err_t rd_kafka_commit_queue(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_queue_t *rkqu, void (*cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *opaque), void *opaque);
rd_kafka_resp_err_t rd_kafka_committed(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_position(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
int rd_kafka_produce(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, void *payload, size_t len, const void *key, size_t keylen, void *msg_opaque);
rd_kafka_resp_err_t rd_kafka_producev(rd_kafka_t *rk, ...);
int rd_kafka_produce_batch(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, rd_kafka_message_t *rkmessages, int message_cnt);
rd_kafka_resp_err_t rd_kafka_flush(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_purge(rd_kafka_t *rk, int purge_flags);
typedef struct rd_kafka_metadata_broker {
  int32_t id;
  char *host;
  int port;
} rd_kafka_metadata_broker_t;
typedef struct rd_kafka_metadata_partition {
  int32_t id;
  rd_kafka_resp_err_t err;
  int32_t leader;
  int replica_cnt;
  int32_t *replicas;
  int isr_cnt;
  int32_t *isrs;
} rd_kafka_metadata_partition_t;
typedef struct rd_kafka_metadata_topic {
  char *topic;
  int partition_cnt;
  struct rd_kafka_metadata_partition *partitions;
  rd_kafka_resp_err_t err;
} rd_kafka_metadata_topic_t;
typedef struct rd_kafka_metadata {
  int broker_cnt;
  struct rd_kafka_metadata_broker *brokers;
  int topic_cnt;
  struct rd_kafka_metadata_topic *topics;
  int32_t orig_broker_id;
  char *orig_broker_name;
} rd_kafka_metadata_t;
rd_kafka_resp_err_t rd_kafka_metadata(rd_kafka_t *rk, int all_topics, rd_kafka_topic_t *only_rkt, const struct rd_kafka_metadata **metadatap, int timeout_ms);
void rd_kafka_metadata_destroy(const struct rd_kafka_metadata *metadata);
struct rd_kafka_group_member_info {
  char *member_id;
  char *client_id;
  char *client_host;
  void *member_metadata;
  int member_metadata_size;
  void *member_assignment;
  int member_assignment_size;
};
struct rd_kafka_group_info {
  struct rd_kafka_metadata_broker broker;
  char *group;
  rd_kafka_resp_err_t err;
  char *state;
  char *protocol_type;
  char *protocol;
  struct rd_kafka_group_member_info *members;
  int member_cnt;
};
struct rd_kafka_group_list {
  struct rd_kafka_group_info *groups;
  int group_cnt;
};
rd_kafka_resp_err_t rd_kafka_list_groups(rd_kafka_t *rk, const char *group, const struct rd_kafka_group_list **grplistp, int timeout_ms);
void rd_kafka_group_list_destroy(const struct rd_kafka_group_list *grplist);
int rd_kafka_brokers_add(rd_kafka_t *rk, const char *brokerlist);
void rd_kafka_set_logger(rd_kafka_t *rk, void (*func)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_set_log_level(rd_kafka_t *rk, int level);
void rd_kafka_log_print(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
void rd_kafka_log_syslog(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
int rd_kafka_outq_len(rd_kafka_t *rk);
void rd_kafka_dump(FILE *fp, rd_kafka_t *rk);
int rd_kafka_thread_cnt(void);
int rd_kafka_wait_destroyed(int timeout_ms);
int rd_kafka_unittest(void);
rd_kafka_resp_err_t rd_kafka_poll_set_consumer(rd_kafka_t *rk);
typedef int rd_kafka_event_type_t;
rd_kafka_event_type_t rd_kafka_event_type(const rd_kafka_event_t *rkev);
const char *rd_kafka_event_name(const rd_kafka_event_t *rkev);
void rd_kafka_event_destroy(rd_kafka_event_t *rkev);
const rd_kafka_message_t *rd_kafka_event_message_next(rd_kafka_event_t *rkev);
size_t rd_kafka_event_message_array(rd_kafka_event_t *rkev, const rd_kafka_message_t **rkmessages, size_t size);
size_t rd_kafka_event_message_count(rd_kafka_event_t *rkev);
rd_kafka_resp_err_t rd_kafka_event_error(rd_kafka_event_t *rkev);
const char *rd_kafka_event_error_string(rd_kafka_event_t *rkev);
int rd_kafka_event_error_is_fatal(rd_kafka_event_t *rkev);
void *rd_kafka_event_opaque(rd_kafka_event_t *rkev);
int rd_kafka_event_log(rd_kafka_event_t *rkev, const char **fac, const char **str, int *level);
const char *rd_kafka_event_stats(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_list_t *rd_kafka_event_topic_partition_list(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_t *rd_kafka_event_topic_partition(rd_kafka_event_t *rkev);
typedef rd_kafka_event_t rd_kafka_CreateTopics_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteTopics_result_t;
typedef rd_kafka_event_t rd_kafka_CreatePartitions_result_t;
typedef rd_kafka_event_t rd_kafka_AlterConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeConfigs_result_t;
const rd_kafka_CreateTopics_result_t *rd_kafka_event_CreateTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteTopics_result_t *rd_kafka_event_DeleteTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_CreatePartitions_result_t *rd_kafka_event_CreatePartitions_result(rd_kafka_event_t *rkev);
const rd_kafka_AlterConfigs_result_t *rd_kafka_event_AlterConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeConfigs_result_t *rd_kafka_event_DescribeConfigs_result(rd_kafka_event_t *rkev);
rd_kafka_event_t *rd_kafka_queue_poll(rd_kafka_queue_t *rkqu, int timeout_ms);
int rd_kafka_queue_poll_callback(rd_kafka_queue_t *rkqu, int timeout_ms);
typedef rd_kafka_resp_err_t (rd_kafka_plugin_f_conf_init_t)(rd_kafka_conf_t *conf, void **plug_opaquep, char *errstr, size_t errstr_size);
typedef rd_kafka_conf_res_t (rd_kafka_interceptor_f_on_conf_set_t)(rd_kafka_conf_t *conf, const char *name, const char *val, char *errstr, size_t errstr_size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_dup_t)(rd_kafka_conf_t *new_conf, const rd_kafka_conf_t *old_conf, size_t filter_cnt, const char **filter, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_destroy_t)(void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_new_t)(rd_kafka_t *rk, const rd_kafka_conf_t *conf, void *ic_opaque, char *errstr, size_t errstr_size);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_destroy_t)(rd_kafka_t *rk, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_send_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_acknowledgement_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_consume_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_commit_t)(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_request_sent_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_set(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_set_t *on_conf_set, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_dup(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_dup_t *on_conf_dup, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_destroy(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_destroy_t *on_conf_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_new(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_new_t *on_new, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_destroy(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_destroy_t *on_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_send(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_send_t *on_send, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_acknowledgement(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_acknowledgement_t *on_acknowledgement, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_consume(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_consume_t *on_consume, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_commit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_commit_t *on_commit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_request_sent(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_request_sent_t *on_request_sent, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_topic_result_error(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_error_string(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_name(const rd_kafka_topic_result_t *topicres);
typedef enum rd_kafka_admin_op_t {
  RD_KAFKA_ADMIN_OP_ANY = 0,
  RD_KAFKA_ADMIN_OP_CREATETOPICS,
  RD_KAFKA_ADMIN_OP_DELETETOPICS,
  RD_KAFKA_ADMIN_OP_CREATEPARTITIONS,
  RD_KAFKA_ADMIN_OP_ALTERCONFIGS,
  RD_KAFKA_ADMIN_OP_DESCRIBECONFIGS,
  RD_KAFKA_ADMIN_OP__CNT,
} rd_kafka_admin_op_t;
typedef struct rd_kafka_AdminOptions_s rd_kafka_AdminOptions_t;
rd_kafka_AdminOptions_t *rd_kafka_AdminOptions_new(rd_kafka_t *rk, rd_kafka_admin_op_t for_api);
void rd_kafka_AdminOptions_destroy(rd_kafka_AdminOptions_t *options);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_request_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_operation_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_validate_only(rd_kafka_AdminOptions_t *options, int true_or_false, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_broker(rd_kafka_AdminOptions_t *options, int32_t broker_id, char *errstr, size_t errstr_size);
void rd_kafka_AdminOptions_set_opaque(rd_kafka_AdminOptions_t *options, void *opaque);
typedef struct rd_kafka_NewTopic_s rd_kafka_NewTopic_t;
rd_kafka_NewTopic_t *rd_kafka_NewTopic_new(const char *topic, int num_partitions, int replication_factor, char *errstr, size_t errstr_size);
void rd_kafka_NewTopic_destroy(rd_kafka_NewTopic_t *new_topic);
void rd_kafka_NewTopic_destroy_array(rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_replica_assignment(rd_kafka_NewTopic_t *new_topic, int32_t partition, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_config(rd_kafka_NewTopic_t *new_topic, const char *name, const char *value);
void rd_kafka_CreateTopics(rd_kafka_t *rk, rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreateTopics_result_topics(const rd_kafka_CreateTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteTopic_s rd_kafka_DeleteTopic_t;
rd_kafka_DeleteTopic_t *rd_kafka_DeleteTopic_new(const char *topic);
void rd_kafka_DeleteTopic_destroy(rd_kafka_DeleteTopic_t *del_topic);
void rd_kafka_DeleteTopic_destroy_array(rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt);
void rd_kafka_DeleteTopics(rd_kafka_t *rk, rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_DeleteTopics_result_topics(const rd_kafka_DeleteTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_NewPartitions_s rd_kafka_NewPartitions_t;
rd_kafka_NewPartitions_t *rd_kafka_NewPartitions_new(const char *topic, size_t new_total_cnt, char *errstr, size_t errstr_size);
void rd_kafka_NewPartitions_destroy(rd_kafka_NewPartitions_t *new_parts);
void rd_kafka_NewPartitions_destroy_array(rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt);
rd_kafka_resp_err_t rd_kafka_NewPartitions_set_replica_assignment(rd_kafka_NewPartitions_t *new_parts, int32_t new_partition_idx, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
void rd_kafka_CreatePartitions(rd_kafka_t *rk, rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreatePartitions_result_topics(const rd_kafka_CreatePartitions_result_t *result, size_t *cntp);
typedef enum rd_kafka_ConfigSource_t {
  RD_KAFKA_CONFIG_SOURCE_UNKNOWN_CONFIG = 0,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG = 1,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG = 2,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG = 3,
  RD_KAFKA_CONFIG_SOURCE_STATIC_BROKER_CONFIG = 4,
  RD_KAFKA_CONFIG_SOURCE_DEFAULT_CONFIG = 5,
  RD_KAFKA_CONFIG_SOURCE__CNT,
} rd_kafka_ConfigSource_t;
const char *rd_kafka_ConfigSource_name(rd_kafka_ConfigSource_t confsource);
typedef struct rd_kafka_ConfigEntry_s rd_kafka_ConfigEntry_t;
const char *rd_kafka_ConfigEntry_name(const rd_kafka_ConfigEntry_t *entry);
const char *rd_kafka_ConfigEntry_value(const rd_kafka_ConfigEntry_t *entry);
rd_kafka_ConfigSource_t rd_kafka_ConfigEntry_source(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_read_only(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_default(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_sensitive(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_synonym(const rd_kafka_ConfigEntry_t *entry);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigEntry_synonyms(const rd_kafka_ConfigEntry_t *entry, size_t *cntp);
typedef enum rd_kafka_ResourceType_t {
  RD_KAFKA_RESOURCE_UNKNOWN = 0,
  RD_KAFKA_RESOURCE_ANY = 1,
  RD_KAFKA_RESOURCE_TOPIC = 2,
  RD_KAFKA_RESOURCE_GROUP = 3,
  RD_KAFKA_RESOURCE_BROKER = 4,
  RD_KAFKA_RESOURCE__CNT,
} rd_kafka_ResourceType_t;
const char *rd_kafka_ResourceType_name(rd_kafka_ResourceType_t restype);
typedef struct rd_kafka_ConfigResource_s rd_kafka_ConfigResource_t;
rd_kafka_ConfigResource_t *rd_kafka_ConfigResource_new(rd_kafka_ResourceType_t restype, const char *resname);
void rd_kafka_ConfigResource_destroy(rd_kafka_ConfigResource_t *config);
void rd_kafka_ConfigResource_destroy_array(rd_kafka_ConfigResource_t **config, size_t config_cnt);
rd_kafka_resp_err_t rd_kafka_ConfigResource_set_config(rd_kafka_ConfigResource_t *config, const char *name, const char *value);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigResource_configs(const rd_kafka_ConfigResource_t *config, size_t *cntp);
rd_kafka_ResourceType_t rd_kafka_ConfigResource_type(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_name(const rd_kafka_ConfigResource_t *config);
rd_kafka_resp_err_t rd_kafka_ConfigResource_error(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_error_string(const rd_kafka_ConfigResource_t *config);
void rd_kafka_AlterConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_AlterConfigs_result_resources(const rd_kafka_AlterConfigs_result_t *result, size_t *cntp);
void rd_kafka_DescribeConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_DescribeConfigs_result_resources(const rd_kafka_DescribeConfigs_result_t *result, size_t *cntp);
'
rdkafka.h, rdkafka_mock.h

RD_KAFKA_VERSION

public RD_KAFKA_VERSION = 16843007

librdkafka version

Interpreted as hex MM.mm.rr.xx:

  • MM = Major
  • mm = minor
  • rr = revision
  • xx = pre-release id (0xff is the final release)

E.g.: 0x000801ff = 0.8.1

Remarks
This value should only be used during compile time, for runtime checks of version use rd_kafka_version()

RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE

public RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76

Unsupported compression type

RD_KAFKA_RESP_ERR_END_ALL

public RD_KAFKA_RESP_ERR_END_ALL = 82
enum rd_kafka_resp_err_t

RD_KAFKA_ADMIN_OP__CNT

public RD_KAFKA_ADMIN_OP__CNT = 6

Number of ops defined

RD_KAFKA_CDEF

public RD_KAFKA_CDEF = 'typedef long int ssize_t;
typedef struct _IO_FILE FILE;
typedef long int mode_t;
typedef signed int int16_t;
typedef unsigned int uint16_t;
typedef signed int int32_t;
typedef signed long int int64_t;
int rd_kafka_version(void);
const char *rd_kafka_version_str(void);
typedef enum rd_kafka_type_t {
  RD_KAFKA_PRODUCER,
  RD_KAFKA_CONSUMER,
} rd_kafka_type_t;
typedef enum rd_kafka_timestamp_type_t {
  RD_KAFKA_TIMESTAMP_NOT_AVAILABLE,
  RD_KAFKA_TIMESTAMP_CREATE_TIME,
  RD_KAFKA_TIMESTAMP_LOG_APPEND_TIME,
} rd_kafka_timestamp_type_t;
const char *rd_kafka_get_debug_contexts(void);
typedef struct rd_kafka_s rd_kafka_t;
typedef struct rd_kafka_topic_s rd_kafka_topic_t;
typedef struct rd_kafka_conf_s rd_kafka_conf_t;
typedef struct rd_kafka_topic_conf_s rd_kafka_topic_conf_t;
typedef struct rd_kafka_queue_s rd_kafka_queue_t;
typedef struct rd_kafka_op_s rd_kafka_event_t;
typedef struct rd_kafka_topic_result_s rd_kafka_topic_result_t;
typedef enum {
  RD_KAFKA_RESP_ERR__BEGIN = (- 200),
  RD_KAFKA_RESP_ERR__BAD_MSG = (- 199),
  RD_KAFKA_RESP_ERR__BAD_COMPRESSION = (- 198),
  RD_KAFKA_RESP_ERR__DESTROY = (- 197),
  RD_KAFKA_RESP_ERR__FAIL = (- 196),
  RD_KAFKA_RESP_ERR__TRANSPORT = (- 195),
  RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE = (- 194),
  RD_KAFKA_RESP_ERR__RESOLVE = (- 193),
  RD_KAFKA_RESP_ERR__MSG_TIMED_OUT = (- 192),
  RD_KAFKA_RESP_ERR__PARTITION_EOF = (- 191),
  RD_KAFKA_RESP_ERR__UNKNOWN_PARTITION = (- 190),
  RD_KAFKA_RESP_ERR__FS = (- 189),
  RD_KAFKA_RESP_ERR__UNKNOWN_TOPIC = (- 188),
  RD_KAFKA_RESP_ERR__ALL_BROKERS_DOWN = (- 187),
  RD_KAFKA_RESP_ERR__INVALID_ARG = (- 186),
  RD_KAFKA_RESP_ERR__TIMED_OUT = (- 185),
  RD_KAFKA_RESP_ERR__QUEUE_FULL = (- 184),
  RD_KAFKA_RESP_ERR__ISR_INSUFF = (- 183),
  RD_KAFKA_RESP_ERR__NODE_UPDATE = (- 182),
  RD_KAFKA_RESP_ERR__SSL = (- 181),
  RD_KAFKA_RESP_ERR__WAIT_COORD = (- 180),
  RD_KAFKA_RESP_ERR__UNKNOWN_GROUP = (- 179),
  RD_KAFKA_RESP_ERR__IN_PROGRESS = (- 178),
  RD_KAFKA_RESP_ERR__PREV_IN_PROGRESS = (- 177),
  RD_KAFKA_RESP_ERR__EXISTING_SUBSCRIPTION = (- 176),
  RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS = (- 175),
  RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS = (- 174),
  RD_KAFKA_RESP_ERR__CONFLICT = (- 173),
  RD_KAFKA_RESP_ERR__STATE = (- 172),
  RD_KAFKA_RESP_ERR__UNKNOWN_PROTOCOL = (- 171),
  RD_KAFKA_RESP_ERR__NOT_IMPLEMENTED = (- 170),
  RD_KAFKA_RESP_ERR__AUTHENTICATION = (- 169),
  RD_KAFKA_RESP_ERR__NO_OFFSET = (- 168),
  RD_KAFKA_RESP_ERR__OUTDATED = (- 167),
  RD_KAFKA_RESP_ERR__TIMED_OUT_QUEUE = (- 166),
  RD_KAFKA_RESP_ERR__UNSUPPORTED_FEATURE = (- 165),
  RD_KAFKA_RESP_ERR__WAIT_CACHE = (- 164),
  RD_KAFKA_RESP_ERR__INTR = (- 163),
  RD_KAFKA_RESP_ERR__KEY_SERIALIZATION = (- 162),
  RD_KAFKA_RESP_ERR__VALUE_SERIALIZATION = (- 161),
  RD_KAFKA_RESP_ERR__KEY_DESERIALIZATION = (- 160),
  RD_KAFKA_RESP_ERR__VALUE_DESERIALIZATION = (- 159),
  RD_KAFKA_RESP_ERR__PARTIAL = (- 158),
  RD_KAFKA_RESP_ERR__READ_ONLY = (- 157),
  RD_KAFKA_RESP_ERR__NOENT = (- 156),
  RD_KAFKA_RESP_ERR__UNDERFLOW = (- 155),
  RD_KAFKA_RESP_ERR__INVALID_TYPE = (- 154),
  RD_KAFKA_RESP_ERR__RETRY = (- 153),
  RD_KAFKA_RESP_ERR__PURGE_QUEUE = (- 152),
  RD_KAFKA_RESP_ERR__PURGE_INFLIGHT = (- 151),
  RD_KAFKA_RESP_ERR__FATAL = (- 150),
  RD_KAFKA_RESP_ERR__INCONSISTENT = (- 149),
  RD_KAFKA_RESP_ERR__GAPLESS_GUARANTEE = (- 148),
  RD_KAFKA_RESP_ERR__MAX_POLL_EXCEEDED = (- 147),
  RD_KAFKA_RESP_ERR__END = (- 100),
  RD_KAFKA_RESP_ERR_UNKNOWN = (- 1),
  RD_KAFKA_RESP_ERR_NO_ERROR = 0,
  RD_KAFKA_RESP_ERR_OFFSET_OUT_OF_RANGE = 1,
  RD_KAFKA_RESP_ERR_INVALID_MSG = 2,
  RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_OR_PART = 3,
  RD_KAFKA_RESP_ERR_INVALID_MSG_SIZE = 4,
  RD_KAFKA_RESP_ERR_LEADER_NOT_AVAILABLE = 5,
  RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION = 6,
  RD_KAFKA_RESP_ERR_REQUEST_TIMED_OUT = 7,
  RD_KAFKA_RESP_ERR_BROKER_NOT_AVAILABLE = 8,
  RD_KAFKA_RESP_ERR_REPLICA_NOT_AVAILABLE = 9,
  RD_KAFKA_RESP_ERR_MSG_SIZE_TOO_LARGE = 10,
  RD_KAFKA_RESP_ERR_STALE_CTRL_EPOCH = 11,
  RD_KAFKA_RESP_ERR_OFFSET_METADATA_TOO_LARGE = 12,
  RD_KAFKA_RESP_ERR_NETWORK_EXCEPTION = 13,
  RD_KAFKA_RESP_ERR_GROUP_LOAD_IN_PROGRESS = 14,
  RD_KAFKA_RESP_ERR_GROUP_COORDINATOR_NOT_AVAILABLE = 15,
  RD_KAFKA_RESP_ERR_NOT_COORDINATOR_FOR_GROUP = 16,
  RD_KAFKA_RESP_ERR_TOPIC_EXCEPTION = 17,
  RD_KAFKA_RESP_ERR_RECORD_LIST_TOO_LARGE = 18,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS = 19,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS_AFTER_APPEND = 20,
  RD_KAFKA_RESP_ERR_INVALID_REQUIRED_ACKS = 21,
  RD_KAFKA_RESP_ERR_ILLEGAL_GENERATION = 22,
  RD_KAFKA_RESP_ERR_INCONSISTENT_GROUP_PROTOCOL = 23,
  RD_KAFKA_RESP_ERR_INVALID_GROUP_ID = 24,
  RD_KAFKA_RESP_ERR_UNKNOWN_MEMBER_ID = 25,
  RD_KAFKA_RESP_ERR_INVALID_SESSION_TIMEOUT = 26,
  RD_KAFKA_RESP_ERR_REBALANCE_IN_PROGRESS = 27,
  RD_KAFKA_RESP_ERR_INVALID_COMMIT_OFFSET_SIZE = 28,
  RD_KAFKA_RESP_ERR_TOPIC_AUTHORIZATION_FAILED = 29,
  RD_KAFKA_RESP_ERR_GROUP_AUTHORIZATION_FAILED = 30,
  RD_KAFKA_RESP_ERR_CLUSTER_AUTHORIZATION_FAILED = 31,
  RD_KAFKA_RESP_ERR_INVALID_TIMESTAMP = 32,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_SASL_MECHANISM = 33,
  RD_KAFKA_RESP_ERR_ILLEGAL_SASL_STATE = 34,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_VERSION = 35,
  RD_KAFKA_RESP_ERR_TOPIC_ALREADY_EXISTS = 36,
  RD_KAFKA_RESP_ERR_INVALID_PARTITIONS = 37,
  RD_KAFKA_RESP_ERR_INVALID_REPLICATION_FACTOR = 38,
  RD_KAFKA_RESP_ERR_INVALID_REPLICA_ASSIGNMENT = 39,
  RD_KAFKA_RESP_ERR_INVALID_CONFIG = 40,
  RD_KAFKA_RESP_ERR_NOT_CONTROLLER = 41,
  RD_KAFKA_RESP_ERR_INVALID_REQUEST = 42,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_FOR_MESSAGE_FORMAT = 43,
  RD_KAFKA_RESP_ERR_POLICY_VIOLATION = 44,
  RD_KAFKA_RESP_ERR_OUT_OF_ORDER_SEQUENCE_NUMBER = 45,
  RD_KAFKA_RESP_ERR_DUPLICATE_SEQUENCE_NUMBER = 46,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_EPOCH = 47,
  RD_KAFKA_RESP_ERR_INVALID_TXN_STATE = 48,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_ID_MAPPING = 49,
  RD_KAFKA_RESP_ERR_INVALID_TRANSACTION_TIMEOUT = 50,
  RD_KAFKA_RESP_ERR_CONCURRENT_TRANSACTIONS = 51,
  RD_KAFKA_RESP_ERR_TRANSACTION_COORDINATOR_FENCED = 52,
  RD_KAFKA_RESP_ERR_TRANSACTIONAL_ID_AUTHORIZATION_FAILED = 53,
  RD_KAFKA_RESP_ERR_SECURITY_DISABLED = 54,
  RD_KAFKA_RESP_ERR_OPERATION_NOT_ATTEMPTED = 55,
  RD_KAFKA_RESP_ERR_KAFKA_STORAGE_ERROR = 56,
  RD_KAFKA_RESP_ERR_LOG_DIR_NOT_FOUND = 57,
  RD_KAFKA_RESP_ERR_SASL_AUTHENTICATION_FAILED = 58,
  RD_KAFKA_RESP_ERR_UNKNOWN_PRODUCER_ID = 59,
  RD_KAFKA_RESP_ERR_REASSIGNMENT_IN_PROGRESS = 60,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTH_DISABLED = 61,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_NOT_FOUND = 62,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_OWNER_MISMATCH = 63,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_REQUEST_NOT_ALLOWED = 64,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTHORIZATION_FAILED = 65,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_EXPIRED = 66,
  RD_KAFKA_RESP_ERR_INVALID_PRINCIPAL_TYPE = 67,
  RD_KAFKA_RESP_ERR_NON_EMPTY_GROUP = 68,
  RD_KAFKA_RESP_ERR_GROUP_ID_NOT_FOUND = 69,
  RD_KAFKA_RESP_ERR_FETCH_SESSION_ID_NOT_FOUND = 70,
  RD_KAFKA_RESP_ERR_INVALID_FETCH_SESSION_EPOCH = 71,
  RD_KAFKA_RESP_ERR_LISTENER_NOT_FOUND = 72,
  RD_KAFKA_RESP_ERR_TOPIC_DELETION_DISABLED = 73,
  RD_KAFKA_RESP_ERR_FENCED_LEADER_EPOCH = 74,
  RD_KAFKA_RESP_ERR_UNKNOWN_LEADER_EPOCH = 75,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76,
  RD_KAFKA_RESP_ERR_STALE_BROKER_EPOCH = 77,
  RD_KAFKA_RESP_ERR_OFFSET_NOT_AVAILABLE = 78,
  RD_KAFKA_RESP_ERR_MEMBER_ID_REQUIRED = 79,
  RD_KAFKA_RESP_ERR_PREFERRED_LEADER_NOT_AVAILABLE = 80,
  RD_KAFKA_RESP_ERR_GROUP_MAX_SIZE_REACHED = 81,
  RD_KAFKA_RESP_ERR_END_ALL,
} rd_kafka_resp_err_t;
struct rd_kafka_err_desc {
  rd_kafka_resp_err_t code;
  char *name;
  char *desc;
};
void rd_kafka_get_err_descs(const struct rd_kafka_err_desc **errdescs, size_t *cntp);
const char *rd_kafka_err2str(rd_kafka_resp_err_t err);
const char *rd_kafka_err2name(rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_last_error(void);
rd_kafka_resp_err_t rd_kafka_errno2err(int errnox);
int rd_kafka_errno(void);
rd_kafka_resp_err_t rd_kafka_fatal_error(rd_kafka_t *rk, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_test_fatal_error(rd_kafka_t *rk, rd_kafka_resp_err_t err, const char *reason);
typedef struct rd_kafka_topic_partition_s {
  char *topic;
  int32_t partition;
  int64_t offset;
  void *metadata;
  size_t metadata_size;
  void *opaque;
  rd_kafka_resp_err_t err;
  void *_private;
} rd_kafka_topic_partition_t;
void rd_kafka_topic_partition_destroy(rd_kafka_topic_partition_t *rktpar);
typedef struct rd_kafka_topic_partition_list_s {
  int cnt;
  int size;
  rd_kafka_topic_partition_t *elems;
} rd_kafka_topic_partition_list_t;
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_new(int size);
void rd_kafka_topic_partition_list_destroy(rd_kafka_topic_partition_list_t *rkparlist);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_add(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_add_range(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t start, int32_t stop);
int rd_kafka_topic_partition_list_del(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
int rd_kafka_topic_partition_list_del_by_idx(rd_kafka_topic_partition_list_t *rktparlist, int idx);
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_copy(const rd_kafka_topic_partition_list_t *src);
rd_kafka_resp_err_t rd_kafka_topic_partition_list_set_offset(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition, int64_t offset);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_find(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_sort(rd_kafka_topic_partition_list_t *rktparlist, int (*cmp)(const void *a, const void *b, void *opaque), void *opaque);
typedef enum rd_kafka_vtype_t {
  RD_KAFKA_VTYPE_END,
  RD_KAFKA_VTYPE_TOPIC,
  RD_KAFKA_VTYPE_RKT,
  RD_KAFKA_VTYPE_PARTITION,
  RD_KAFKA_VTYPE_VALUE,
  RD_KAFKA_VTYPE_KEY,
  RD_KAFKA_VTYPE_OPAQUE,
  RD_KAFKA_VTYPE_MSGFLAGS,
  RD_KAFKA_VTYPE_TIMESTAMP,
  RD_KAFKA_VTYPE_HEADER,
  RD_KAFKA_VTYPE_HEADERS,
} rd_kafka_vtype_t;
typedef struct rd_kafka_headers_s rd_kafka_headers_t;
rd_kafka_headers_t *rd_kafka_headers_new(size_t initial_count);
void rd_kafka_headers_destroy(rd_kafka_headers_t *hdrs);
rd_kafka_headers_t *rd_kafka_headers_copy(const rd_kafka_headers_t *src);
rd_kafka_resp_err_t rd_kafka_header_add(rd_kafka_headers_t *hdrs, const char *name, ssize_t name_size, const void *value, ssize_t value_size);
rd_kafka_resp_err_t rd_kafka_header_remove(rd_kafka_headers_t *hdrs, const char *name);
rd_kafka_resp_err_t rd_kafka_header_get_last(const rd_kafka_headers_t *hdrs, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get(const rd_kafka_headers_t *hdrs, size_t idx, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get_all(const rd_kafka_headers_t *hdrs, size_t idx, const char **namep, const void **valuep, size_t *sizep);
typedef struct rd_kafka_message_s {
  rd_kafka_resp_err_t err;
  rd_kafka_topic_t *rkt;
  int32_t partition;
  void *payload;
  size_t len;
  void *key;
  size_t key_len;
  int64_t offset;
  void *_private;
} rd_kafka_message_t;
void rd_kafka_message_destroy(rd_kafka_message_t *rkmessage);
int64_t rd_kafka_message_timestamp(const rd_kafka_message_t *rkmessage, rd_kafka_timestamp_type_t *tstype);
int64_t rd_kafka_message_latency(const rd_kafka_message_t *rkmessage);
rd_kafka_resp_err_t rd_kafka_message_headers(const rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
rd_kafka_resp_err_t rd_kafka_message_detach_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
void rd_kafka_message_set_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t *hdrs);
size_t rd_kafka_header_cnt(const rd_kafka_headers_t *hdrs);
typedef enum {
  RD_KAFKA_MSG_STATUS_NOT_PERSISTED = 0,
  RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED = 1,
  RD_KAFKA_MSG_STATUS_PERSISTED = 2,
} rd_kafka_msg_status_t;
rd_kafka_msg_status_t rd_kafka_message_status(const rd_kafka_message_t *rkmessage);
typedef enum {
  RD_KAFKA_CONF_UNKNOWN = (- 2),
  RD_KAFKA_CONF_INVALID = (- 1),
  RD_KAFKA_CONF_OK = 0,
} rd_kafka_conf_res_t;
rd_kafka_conf_t *rd_kafka_conf_new(void);
void rd_kafka_conf_destroy(rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup(const rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup_filter(const rd_kafka_conf_t *conf, size_t filter_cnt, const char **filter);
const rd_kafka_conf_t *rd_kafka_conf(rd_kafka_t *rk);
rd_kafka_conf_res_t rd_kafka_conf_set(rd_kafka_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_events(rd_kafka_conf_t *conf, int events);
void rd_kafka_conf_set_background_event_cb(rd_kafka_conf_t *conf, void (*event_cb)(rd_kafka_t *rk, rd_kafka_event_t *rkev, void *opaque));
void rd_kafka_conf_set_dr_cb(rd_kafka_conf_t *conf, void (*dr_cb)(rd_kafka_t *rk, void *payload, size_t len, rd_kafka_resp_err_t err, void *opaque, void *msg_opaque));
void rd_kafka_conf_set_dr_msg_cb(rd_kafka_conf_t *conf, void (*dr_msg_cb)(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_consume_cb(rd_kafka_conf_t *conf, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_rebalance_cb(rd_kafka_conf_t *conf, void (*rebalance_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *partitions, void *opaque));
void rd_kafka_conf_set_offset_commit_cb(rd_kafka_conf_t *conf, void (*offset_commit_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *opaque));
void rd_kafka_conf_set_error_cb(rd_kafka_conf_t *conf, void (*error_cb)(rd_kafka_t *rk, int err, const char *reason, void *opaque));
void rd_kafka_conf_set_throttle_cb(rd_kafka_conf_t *conf, void (*throttle_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int throttle_time_ms, void *opaque));
void rd_kafka_conf_set_log_cb(rd_kafka_conf_t *conf, void (*log_cb)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_conf_set_stats_cb(rd_kafka_conf_t *conf, int (*stats_cb)(rd_kafka_t *rk, char *json, size_t json_len, void *opaque));
void rd_kafka_conf_set_oauthbearer_token_refresh_cb(rd_kafka_conf_t *conf, void (*oauthbearer_token_refresh_cb)(rd_kafka_t *rk, const char *oauthbearer_config, void *opaque));
void rd_kafka_conf_set_socket_cb(rd_kafka_conf_t *conf, int (*socket_cb)(int domain, int type, int protocol, void *opaque));
void rd_kafka_conf_set_connect_cb(rd_kafka_conf_t *conf, int (*connect_cb)(int sockfd, const struct sockaddr *addr, int addrlen, const char *id, void *opaque));
void rd_kafka_conf_set_closesocket_cb(rd_kafka_conf_t *conf, int (*closesocket_cb)(int sockfd, void *opaque));
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert_verify_cb(rd_kafka_conf_t *conf, int (*ssl_cert_verify_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int *x509_error, int depth, const char *buf, size_t size, char *errstr, size_t errstr_size, void *opaque));
typedef enum rd_kafka_cert_type_t {
  RD_KAFKA_CERT_PUBLIC_KEY,
  RD_KAFKA_CERT_PRIVATE_KEY,
  RD_KAFKA_CERT_CA,
  RD_KAFKA_CERT__CNT,
} rd_kafka_cert_type_t;
typedef enum rd_kafka_cert_enc_t {
  RD_KAFKA_CERT_ENC_PKCS12,
  RD_KAFKA_CERT_ENC_DER,
  RD_KAFKA_CERT_ENC_PEM,
  RD_KAFKA_CERT_ENC__CNT,
} rd_kafka_cert_enc_t;
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert(rd_kafka_conf_t *conf, rd_kafka_cert_type_t cert_type, rd_kafka_cert_enc_t cert_enc, const void *buffer, size_t size, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_opaque(rd_kafka_conf_t *conf, void *opaque);
void *rd_kafka_opaque(const rd_kafka_t *rk);
void rd_kafka_conf_set_default_topic_conf(rd_kafka_conf_t *conf, rd_kafka_topic_conf_t *tconf);
rd_kafka_conf_res_t rd_kafka_conf_get(const rd_kafka_conf_t *conf, const char *name, char *dest, size_t *dest_size);
rd_kafka_conf_res_t rd_kafka_topic_conf_get(const rd_kafka_topic_conf_t *conf, const char *name, char *dest, size_t *dest_size);
const char **rd_kafka_conf_dump(rd_kafka_conf_t *conf, size_t *cntp);
const char **rd_kafka_topic_conf_dump(rd_kafka_topic_conf_t *conf, size_t *cntp);
void rd_kafka_conf_dump_free(const char **arr, size_t cnt);
void rd_kafka_conf_properties_show(FILE *fp);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_new(void);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_dup(const rd_kafka_topic_conf_t *conf);
rd_kafka_topic_conf_t *rd_kafka_default_topic_conf_dup(rd_kafka_t *rk);
void rd_kafka_topic_conf_destroy(rd_kafka_topic_conf_t *topic_conf);
rd_kafka_conf_res_t rd_kafka_topic_conf_set(rd_kafka_topic_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_topic_conf_set_opaque(rd_kafka_topic_conf_t *conf, void *opaque);
void rd_kafka_topic_conf_set_partitioner_cb(rd_kafka_topic_conf_t *topic_conf, int32_t (*partitioner)(const rd_kafka_topic_t *rkt, const void *keydata, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque));
void rd_kafka_topic_conf_set_msg_order_cmp(rd_kafka_topic_conf_t *topic_conf, int (*msg_order_cmp)(const rd_kafka_message_t *a, const rd_kafka_message_t *b));
int rd_kafka_topic_partition_available(const rd_kafka_topic_t *rkt, int32_t partition);
int32_t rd_kafka_msg_partitioner_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
rd_kafka_t *rd_kafka_new(rd_kafka_type_t type, rd_kafka_conf_t *conf, char *errstr, size_t errstr_size);
void rd_kafka_destroy(rd_kafka_t *rk);
void rd_kafka_destroy_flags(rd_kafka_t *rk, int flags);
const char *rd_kafka_name(const rd_kafka_t *rk);
rd_kafka_type_t rd_kafka_type(const rd_kafka_t *rk);
char *rd_kafka_memberid(const rd_kafka_t *rk);
char *rd_kafka_clusterid(rd_kafka_t *rk, int timeout_ms);
int32_t rd_kafka_controllerid(rd_kafka_t *rk, int timeout_ms);
rd_kafka_topic_t *rd_kafka_topic_new(rd_kafka_t *rk, const char *topic, rd_kafka_topic_conf_t *conf);
void rd_kafka_topic_destroy(rd_kafka_topic_t *rkt);
const char *rd_kafka_topic_name(const rd_kafka_topic_t *rkt);
void *rd_kafka_topic_opaque(const rd_kafka_topic_t *rkt);
int rd_kafka_poll(rd_kafka_t *rk, int timeout_ms);
void rd_kafka_yield(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_pause_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_resume_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_query_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_get_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high);
rd_kafka_resp_err_t rd_kafka_offsets_for_times(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets, int timeout_ms);
void rd_kafka_mem_free(rd_kafka_t *rk, void *ptr);
rd_kafka_queue_t *rd_kafka_queue_new(rd_kafka_t *rk);
void rd_kafka_queue_destroy(rd_kafka_queue_t *rkqu);
rd_kafka_queue_t *rd_kafka_queue_get_main(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_consumer(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_partition(rd_kafka_t *rk, const char *topic, int32_t partition);
rd_kafka_queue_t *rd_kafka_queue_get_background(rd_kafka_t *rk);
void rd_kafka_queue_forward(rd_kafka_queue_t *src, rd_kafka_queue_t *dst);
rd_kafka_resp_err_t rd_kafka_set_log_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu);
size_t rd_kafka_queue_length(rd_kafka_queue_t *rkqu);
void rd_kafka_queue_io_event_enable(rd_kafka_queue_t *rkqu, int fd, const void *payload, size_t size);
void rd_kafka_queue_cb_event_enable(rd_kafka_queue_t *rkqu, void (*event_cb)(rd_kafka_t *rk, void *opaque), void *opaque);
int rd_kafka_consume_start(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
int rd_kafka_consume_start_queue(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, rd_kafka_queue_t *rkqu);
int rd_kafka_consume_stop(rd_kafka_topic_t *rkt, int32_t partition);
rd_kafka_resp_err_t rd_kafka_seek(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, int timeout_ms);
rd_kafka_message_t *rd_kafka_consume(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms);
ssize_t rd_kafka_consume_batch(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *opaque), void *opaque);
rd_kafka_message_t *rd_kafka_consume_queue(rd_kafka_queue_t *rkqu, int timeout_ms);
ssize_t rd_kafka_consume_batch_queue(rd_kafka_queue_t *rkqu, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback_queue(rd_kafka_queue_t *rkqu, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *opaque), void *opaque);
rd_kafka_resp_err_t rd_kafka_offset_store(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
rd_kafka_resp_err_t rd_kafka_offsets_store(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets);
rd_kafka_resp_err_t rd_kafka_subscribe(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *topics);
rd_kafka_resp_err_t rd_kafka_unsubscribe(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_subscription(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **topics);
rd_kafka_message_t *rd_kafka_consumer_poll(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_consumer_close(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_assignment(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **partitions);
rd_kafka_resp_err_t rd_kafka_commit(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, int async);
rd_kafka_resp_err_t rd_kafka_commit_message(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, int async);
rd_kafka_resp_err_t rd_kafka_commit_queue(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_queue_t *rkqu, void (*cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *opaque), void *opaque);
rd_kafka_resp_err_t rd_kafka_committed(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_position(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
int rd_kafka_produce(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, void *payload, size_t len, const void *key, size_t keylen, void *msg_opaque);
rd_kafka_resp_err_t rd_kafka_producev(rd_kafka_t *rk, ...);
int rd_kafka_produce_batch(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, rd_kafka_message_t *rkmessages, int message_cnt);
rd_kafka_resp_err_t rd_kafka_flush(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_purge(rd_kafka_t *rk, int purge_flags);
typedef struct rd_kafka_metadata_broker {
  int32_t id;
  char *host;
  int port;
} rd_kafka_metadata_broker_t;
typedef struct rd_kafka_metadata_partition {
  int32_t id;
  rd_kafka_resp_err_t err;
  int32_t leader;
  int replica_cnt;
  int32_t *replicas;
  int isr_cnt;
  int32_t *isrs;
} rd_kafka_metadata_partition_t;
typedef struct rd_kafka_metadata_topic {
  char *topic;
  int partition_cnt;
  struct rd_kafka_metadata_partition *partitions;
  rd_kafka_resp_err_t err;
} rd_kafka_metadata_topic_t;
typedef struct rd_kafka_metadata {
  int broker_cnt;
  struct rd_kafka_metadata_broker *brokers;
  int topic_cnt;
  struct rd_kafka_metadata_topic *topics;
  int32_t orig_broker_id;
  char *orig_broker_name;
} rd_kafka_metadata_t;
rd_kafka_resp_err_t rd_kafka_metadata(rd_kafka_t *rk, int all_topics, rd_kafka_topic_t *only_rkt, const struct rd_kafka_metadata **metadatap, int timeout_ms);
void rd_kafka_metadata_destroy(const struct rd_kafka_metadata *metadata);
struct rd_kafka_group_member_info {
  char *member_id;
  char *client_id;
  char *client_host;
  void *member_metadata;
  int member_metadata_size;
  void *member_assignment;
  int member_assignment_size;
};
struct rd_kafka_group_info {
  struct rd_kafka_metadata_broker broker;
  char *group;
  rd_kafka_resp_err_t err;
  char *state;
  char *protocol_type;
  char *protocol;
  struct rd_kafka_group_member_info *members;
  int member_cnt;
};
struct rd_kafka_group_list {
  struct rd_kafka_group_info *groups;
  int group_cnt;
};
rd_kafka_resp_err_t rd_kafka_list_groups(rd_kafka_t *rk, const char *group, const struct rd_kafka_group_list **grplistp, int timeout_ms);
void rd_kafka_group_list_destroy(const struct rd_kafka_group_list *grplist);
int rd_kafka_brokers_add(rd_kafka_t *rk, const char *brokerlist);
void rd_kafka_set_logger(rd_kafka_t *rk, void (*func)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_set_log_level(rd_kafka_t *rk, int level);
void rd_kafka_log_print(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
void rd_kafka_log_syslog(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
int rd_kafka_outq_len(rd_kafka_t *rk);
void rd_kafka_dump(FILE *fp, rd_kafka_t *rk);
int rd_kafka_thread_cnt(void);
int rd_kafka_wait_destroyed(int timeout_ms);
int rd_kafka_unittest(void);
rd_kafka_resp_err_t rd_kafka_poll_set_consumer(rd_kafka_t *rk);
typedef int rd_kafka_event_type_t;
rd_kafka_event_type_t rd_kafka_event_type(const rd_kafka_event_t *rkev);
const char *rd_kafka_event_name(const rd_kafka_event_t *rkev);
void rd_kafka_event_destroy(rd_kafka_event_t *rkev);
const rd_kafka_message_t *rd_kafka_event_message_next(rd_kafka_event_t *rkev);
size_t rd_kafka_event_message_array(rd_kafka_event_t *rkev, const rd_kafka_message_t **rkmessages, size_t size);
size_t rd_kafka_event_message_count(rd_kafka_event_t *rkev);
const char *rd_kafka_event_config_string(rd_kafka_event_t *rkev);
rd_kafka_resp_err_t rd_kafka_event_error(rd_kafka_event_t *rkev);
const char *rd_kafka_event_error_string(rd_kafka_event_t *rkev);
int rd_kafka_event_error_is_fatal(rd_kafka_event_t *rkev);
void *rd_kafka_event_opaque(rd_kafka_event_t *rkev);
int rd_kafka_event_log(rd_kafka_event_t *rkev, const char **fac, const char **str, int *level);
const char *rd_kafka_event_stats(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_list_t *rd_kafka_event_topic_partition_list(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_t *rd_kafka_event_topic_partition(rd_kafka_event_t *rkev);
typedef rd_kafka_event_t rd_kafka_CreateTopics_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteTopics_result_t;
typedef rd_kafka_event_t rd_kafka_CreatePartitions_result_t;
typedef rd_kafka_event_t rd_kafka_AlterConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeConfigs_result_t;
const rd_kafka_CreateTopics_result_t *rd_kafka_event_CreateTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteTopics_result_t *rd_kafka_event_DeleteTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_CreatePartitions_result_t *rd_kafka_event_CreatePartitions_result(rd_kafka_event_t *rkev);
const rd_kafka_AlterConfigs_result_t *rd_kafka_event_AlterConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeConfigs_result_t *rd_kafka_event_DescribeConfigs_result(rd_kafka_event_t *rkev);
rd_kafka_event_t *rd_kafka_queue_poll(rd_kafka_queue_t *rkqu, int timeout_ms);
int rd_kafka_queue_poll_callback(rd_kafka_queue_t *rkqu, int timeout_ms);
typedef rd_kafka_resp_err_t (rd_kafka_plugin_f_conf_init_t)(rd_kafka_conf_t *conf, void **plug_opaquep, char *errstr, size_t errstr_size);
typedef rd_kafka_conf_res_t (rd_kafka_interceptor_f_on_conf_set_t)(rd_kafka_conf_t *conf, const char *name, const char *val, char *errstr, size_t errstr_size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_dup_t)(rd_kafka_conf_t *new_conf, const rd_kafka_conf_t *old_conf, size_t filter_cnt, const char **filter, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_destroy_t)(void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_new_t)(rd_kafka_t *rk, const rd_kafka_conf_t *conf, void *ic_opaque, char *errstr, size_t errstr_size);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_destroy_t)(rd_kafka_t *rk, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_send_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_acknowledgement_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_consume_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_commit_t)(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_request_sent_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_set(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_set_t *on_conf_set, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_dup(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_dup_t *on_conf_dup, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_destroy(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_destroy_t *on_conf_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_new(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_new_t *on_new, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_destroy(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_destroy_t *on_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_send(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_send_t *on_send, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_acknowledgement(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_acknowledgement_t *on_acknowledgement, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_consume(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_consume_t *on_consume, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_commit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_commit_t *on_commit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_request_sent(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_request_sent_t *on_request_sent, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_topic_result_error(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_error_string(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_name(const rd_kafka_topic_result_t *topicres);
typedef enum rd_kafka_admin_op_t {
  RD_KAFKA_ADMIN_OP_ANY = 0,
  RD_KAFKA_ADMIN_OP_CREATETOPICS,
  RD_KAFKA_ADMIN_OP_DELETETOPICS,
  RD_KAFKA_ADMIN_OP_CREATEPARTITIONS,
  RD_KAFKA_ADMIN_OP_ALTERCONFIGS,
  RD_KAFKA_ADMIN_OP_DESCRIBECONFIGS,
  RD_KAFKA_ADMIN_OP__CNT,
} rd_kafka_admin_op_t;
typedef struct rd_kafka_AdminOptions_s rd_kafka_AdminOptions_t;
rd_kafka_AdminOptions_t *rd_kafka_AdminOptions_new(rd_kafka_t *rk, rd_kafka_admin_op_t for_api);
void rd_kafka_AdminOptions_destroy(rd_kafka_AdminOptions_t *options);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_request_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_operation_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_validate_only(rd_kafka_AdminOptions_t *options, int true_or_false, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_broker(rd_kafka_AdminOptions_t *options, int32_t broker_id, char *errstr, size_t errstr_size);
void rd_kafka_AdminOptions_set_opaque(rd_kafka_AdminOptions_t *options, void *opaque);
typedef struct rd_kafka_NewTopic_s rd_kafka_NewTopic_t;
rd_kafka_NewTopic_t *rd_kafka_NewTopic_new(const char *topic, int num_partitions, int replication_factor, char *errstr, size_t errstr_size);
void rd_kafka_NewTopic_destroy(rd_kafka_NewTopic_t *new_topic);
void rd_kafka_NewTopic_destroy_array(rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_replica_assignment(rd_kafka_NewTopic_t *new_topic, int32_t partition, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_config(rd_kafka_NewTopic_t *new_topic, const char *name, const char *value);
void rd_kafka_CreateTopics(rd_kafka_t *rk, rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreateTopics_result_topics(const rd_kafka_CreateTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteTopic_s rd_kafka_DeleteTopic_t;
rd_kafka_DeleteTopic_t *rd_kafka_DeleteTopic_new(const char *topic);
void rd_kafka_DeleteTopic_destroy(rd_kafka_DeleteTopic_t *del_topic);
void rd_kafka_DeleteTopic_destroy_array(rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt);
void rd_kafka_DeleteTopics(rd_kafka_t *rk, rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_DeleteTopics_result_topics(const rd_kafka_DeleteTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_NewPartitions_s rd_kafka_NewPartitions_t;
rd_kafka_NewPartitions_t *rd_kafka_NewPartitions_new(const char *topic, size_t new_total_cnt, char *errstr, size_t errstr_size);
void rd_kafka_NewPartitions_destroy(rd_kafka_NewPartitions_t *new_parts);
void rd_kafka_NewPartitions_destroy_array(rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt);
rd_kafka_resp_err_t rd_kafka_NewPartitions_set_replica_assignment(rd_kafka_NewPartitions_t *new_parts, int32_t new_partition_idx, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
void rd_kafka_CreatePartitions(rd_kafka_t *rk, rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreatePartitions_result_topics(const rd_kafka_CreatePartitions_result_t *result, size_t *cntp);
typedef enum rd_kafka_ConfigSource_t {
  RD_KAFKA_CONFIG_SOURCE_UNKNOWN_CONFIG = 0,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG = 1,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG = 2,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG = 3,
  RD_KAFKA_CONFIG_SOURCE_STATIC_BROKER_CONFIG = 4,
  RD_KAFKA_CONFIG_SOURCE_DEFAULT_CONFIG = 5,
  RD_KAFKA_CONFIG_SOURCE__CNT,
} rd_kafka_ConfigSource_t;
const char *rd_kafka_ConfigSource_name(rd_kafka_ConfigSource_t confsource);
typedef struct rd_kafka_ConfigEntry_s rd_kafka_ConfigEntry_t;
const char *rd_kafka_ConfigEntry_name(const rd_kafka_ConfigEntry_t *entry);
const char *rd_kafka_ConfigEntry_value(const rd_kafka_ConfigEntry_t *entry);
rd_kafka_ConfigSource_t rd_kafka_ConfigEntry_source(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_read_only(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_default(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_sensitive(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_synonym(const rd_kafka_ConfigEntry_t *entry);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigEntry_synonyms(const rd_kafka_ConfigEntry_t *entry, size_t *cntp);
typedef enum rd_kafka_ResourceType_t {
  RD_KAFKA_RESOURCE_UNKNOWN = 0,
  RD_KAFKA_RESOURCE_ANY = 1,
  RD_KAFKA_RESOURCE_TOPIC = 2,
  RD_KAFKA_RESOURCE_GROUP = 3,
  RD_KAFKA_RESOURCE_BROKER = 4,
  RD_KAFKA_RESOURCE__CNT,
} rd_kafka_ResourceType_t;
const char *rd_kafka_ResourceType_name(rd_kafka_ResourceType_t restype);
typedef struct rd_kafka_ConfigResource_s rd_kafka_ConfigResource_t;
rd_kafka_ConfigResource_t *rd_kafka_ConfigResource_new(rd_kafka_ResourceType_t restype, const char *resname);
void rd_kafka_ConfigResource_destroy(rd_kafka_ConfigResource_t *config);
void rd_kafka_ConfigResource_destroy_array(rd_kafka_ConfigResource_t **config, size_t config_cnt);
rd_kafka_resp_err_t rd_kafka_ConfigResource_set_config(rd_kafka_ConfigResource_t *config, const char *name, const char *value);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigResource_configs(const rd_kafka_ConfigResource_t *config, size_t *cntp);
rd_kafka_ResourceType_t rd_kafka_ConfigResource_type(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_name(const rd_kafka_ConfigResource_t *config);
rd_kafka_resp_err_t rd_kafka_ConfigResource_error(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_error_string(const rd_kafka_ConfigResource_t *config);
void rd_kafka_AlterConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_AlterConfigs_result_resources(const rd_kafka_AlterConfigs_result_t *result, size_t *cntp);
void rd_kafka_DescribeConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_DescribeConfigs_result_resources(const rd_kafka_DescribeConfigs_result_t *result, size_t *cntp);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token(rd_kafka_t *rk, const char *token_value, int64_t md_lifetime_ms, const char *md_principal_name, const char **extensions, size_t extension_size, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token_failure(rd_kafka_t *rk, const char *errstr);
'
rdkafka.h, rdkafka_mock.h

RD_KAFKA_VERSION

public RD_KAFKA_VERSION = 16908543

librdkafka version

Interpreted as hex MM.mm.rr.xx:

  • MM = Major
  • mm = minor
  • rr = revision
  • xx = pre-release id (0xff is the final release)

E.g.: 0x000801ff = 0.8.1

Remarks
This value should only be used during compile time, for runtime checks of version use rd_kafka_version()

RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE

public RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76

Unsupported compression type

RD_KAFKA_RESP_ERR_END_ALL

public RD_KAFKA_RESP_ERR_END_ALL = 82
enum rd_kafka_resp_err_t

RD_KAFKA_ADMIN_OP__CNT

public RD_KAFKA_ADMIN_OP__CNT = 6

Number of ops defined

RD_KAFKA_CDEF

public RD_KAFKA_CDEF = 'typedef long int ssize_t;
typedef struct _IO_FILE FILE;
typedef long int mode_t;
typedef signed int int16_t;
typedef unsigned int uint16_t;
typedef signed int int32_t;
typedef signed long int int64_t;
int rd_kafka_version(void);
const char *rd_kafka_version_str(void);
typedef enum rd_kafka_type_t {
  RD_KAFKA_PRODUCER,
  RD_KAFKA_CONSUMER,
} rd_kafka_type_t;
typedef enum rd_kafka_timestamp_type_t {
  RD_KAFKA_TIMESTAMP_NOT_AVAILABLE,
  RD_KAFKA_TIMESTAMP_CREATE_TIME,
  RD_KAFKA_TIMESTAMP_LOG_APPEND_TIME,
} rd_kafka_timestamp_type_t;
const char *rd_kafka_get_debug_contexts(void);
typedef struct rd_kafka_s rd_kafka_t;
typedef struct rd_kafka_topic_s rd_kafka_topic_t;
typedef struct rd_kafka_conf_s rd_kafka_conf_t;
typedef struct rd_kafka_topic_conf_s rd_kafka_topic_conf_t;
typedef struct rd_kafka_queue_s rd_kafka_queue_t;
typedef struct rd_kafka_op_s rd_kafka_event_t;
typedef struct rd_kafka_topic_result_s rd_kafka_topic_result_t;
typedef enum {
  RD_KAFKA_RESP_ERR__BEGIN = (- 200),
  RD_KAFKA_RESP_ERR__BAD_MSG = (- 199),
  RD_KAFKA_RESP_ERR__BAD_COMPRESSION = (- 198),
  RD_KAFKA_RESP_ERR__DESTROY = (- 197),
  RD_KAFKA_RESP_ERR__FAIL = (- 196),
  RD_KAFKA_RESP_ERR__TRANSPORT = (- 195),
  RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE = (- 194),
  RD_KAFKA_RESP_ERR__RESOLVE = (- 193),
  RD_KAFKA_RESP_ERR__MSG_TIMED_OUT = (- 192),
  RD_KAFKA_RESP_ERR__PARTITION_EOF = (- 191),
  RD_KAFKA_RESP_ERR__UNKNOWN_PARTITION = (- 190),
  RD_KAFKA_RESP_ERR__FS = (- 189),
  RD_KAFKA_RESP_ERR__UNKNOWN_TOPIC = (- 188),
  RD_KAFKA_RESP_ERR__ALL_BROKERS_DOWN = (- 187),
  RD_KAFKA_RESP_ERR__INVALID_ARG = (- 186),
  RD_KAFKA_RESP_ERR__TIMED_OUT = (- 185),
  RD_KAFKA_RESP_ERR__QUEUE_FULL = (- 184),
  RD_KAFKA_RESP_ERR__ISR_INSUFF = (- 183),
  RD_KAFKA_RESP_ERR__NODE_UPDATE = (- 182),
  RD_KAFKA_RESP_ERR__SSL = (- 181),
  RD_KAFKA_RESP_ERR__WAIT_COORD = (- 180),
  RD_KAFKA_RESP_ERR__UNKNOWN_GROUP = (- 179),
  RD_KAFKA_RESP_ERR__IN_PROGRESS = (- 178),
  RD_KAFKA_RESP_ERR__PREV_IN_PROGRESS = (- 177),
  RD_KAFKA_RESP_ERR__EXISTING_SUBSCRIPTION = (- 176),
  RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS = (- 175),
  RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS = (- 174),
  RD_KAFKA_RESP_ERR__CONFLICT = (- 173),
  RD_KAFKA_RESP_ERR__STATE = (- 172),
  RD_KAFKA_RESP_ERR__UNKNOWN_PROTOCOL = (- 171),
  RD_KAFKA_RESP_ERR__NOT_IMPLEMENTED = (- 170),
  RD_KAFKA_RESP_ERR__AUTHENTICATION = (- 169),
  RD_KAFKA_RESP_ERR__NO_OFFSET = (- 168),
  RD_KAFKA_RESP_ERR__OUTDATED = (- 167),
  RD_KAFKA_RESP_ERR__TIMED_OUT_QUEUE = (- 166),
  RD_KAFKA_RESP_ERR__UNSUPPORTED_FEATURE = (- 165),
  RD_KAFKA_RESP_ERR__WAIT_CACHE = (- 164),
  RD_KAFKA_RESP_ERR__INTR = (- 163),
  RD_KAFKA_RESP_ERR__KEY_SERIALIZATION = (- 162),
  RD_KAFKA_RESP_ERR__VALUE_SERIALIZATION = (- 161),
  RD_KAFKA_RESP_ERR__KEY_DESERIALIZATION = (- 160),
  RD_KAFKA_RESP_ERR__VALUE_DESERIALIZATION = (- 159),
  RD_KAFKA_RESP_ERR__PARTIAL = (- 158),
  RD_KAFKA_RESP_ERR__READ_ONLY = (- 157),
  RD_KAFKA_RESP_ERR__NOENT = (- 156),
  RD_KAFKA_RESP_ERR__UNDERFLOW = (- 155),
  RD_KAFKA_RESP_ERR__INVALID_TYPE = (- 154),
  RD_KAFKA_RESP_ERR__RETRY = (- 153),
  RD_KAFKA_RESP_ERR__PURGE_QUEUE = (- 152),
  RD_KAFKA_RESP_ERR__PURGE_INFLIGHT = (- 151),
  RD_KAFKA_RESP_ERR__FATAL = (- 150),
  RD_KAFKA_RESP_ERR__INCONSISTENT = (- 149),
  RD_KAFKA_RESP_ERR__GAPLESS_GUARANTEE = (- 148),
  RD_KAFKA_RESP_ERR__MAX_POLL_EXCEEDED = (- 147),
  RD_KAFKA_RESP_ERR__END = (- 100),
  RD_KAFKA_RESP_ERR_UNKNOWN = (- 1),
  RD_KAFKA_RESP_ERR_NO_ERROR = 0,
  RD_KAFKA_RESP_ERR_OFFSET_OUT_OF_RANGE = 1,
  RD_KAFKA_RESP_ERR_INVALID_MSG = 2,
  RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_OR_PART = 3,
  RD_KAFKA_RESP_ERR_INVALID_MSG_SIZE = 4,
  RD_KAFKA_RESP_ERR_LEADER_NOT_AVAILABLE = 5,
  RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION = 6,
  RD_KAFKA_RESP_ERR_REQUEST_TIMED_OUT = 7,
  RD_KAFKA_RESP_ERR_BROKER_NOT_AVAILABLE = 8,
  RD_KAFKA_RESP_ERR_REPLICA_NOT_AVAILABLE = 9,
  RD_KAFKA_RESP_ERR_MSG_SIZE_TOO_LARGE = 10,
  RD_KAFKA_RESP_ERR_STALE_CTRL_EPOCH = 11,
  RD_KAFKA_RESP_ERR_OFFSET_METADATA_TOO_LARGE = 12,
  RD_KAFKA_RESP_ERR_NETWORK_EXCEPTION = 13,
  RD_KAFKA_RESP_ERR_GROUP_LOAD_IN_PROGRESS = 14,
  RD_KAFKA_RESP_ERR_GROUP_COORDINATOR_NOT_AVAILABLE = 15,
  RD_KAFKA_RESP_ERR_NOT_COORDINATOR_FOR_GROUP = 16,
  RD_KAFKA_RESP_ERR_TOPIC_EXCEPTION = 17,
  RD_KAFKA_RESP_ERR_RECORD_LIST_TOO_LARGE = 18,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS = 19,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS_AFTER_APPEND = 20,
  RD_KAFKA_RESP_ERR_INVALID_REQUIRED_ACKS = 21,
  RD_KAFKA_RESP_ERR_ILLEGAL_GENERATION = 22,
  RD_KAFKA_RESP_ERR_INCONSISTENT_GROUP_PROTOCOL = 23,
  RD_KAFKA_RESP_ERR_INVALID_GROUP_ID = 24,
  RD_KAFKA_RESP_ERR_UNKNOWN_MEMBER_ID = 25,
  RD_KAFKA_RESP_ERR_INVALID_SESSION_TIMEOUT = 26,
  RD_KAFKA_RESP_ERR_REBALANCE_IN_PROGRESS = 27,
  RD_KAFKA_RESP_ERR_INVALID_COMMIT_OFFSET_SIZE = 28,
  RD_KAFKA_RESP_ERR_TOPIC_AUTHORIZATION_FAILED = 29,
  RD_KAFKA_RESP_ERR_GROUP_AUTHORIZATION_FAILED = 30,
  RD_KAFKA_RESP_ERR_CLUSTER_AUTHORIZATION_FAILED = 31,
  RD_KAFKA_RESP_ERR_INVALID_TIMESTAMP = 32,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_SASL_MECHANISM = 33,
  RD_KAFKA_RESP_ERR_ILLEGAL_SASL_STATE = 34,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_VERSION = 35,
  RD_KAFKA_RESP_ERR_TOPIC_ALREADY_EXISTS = 36,
  RD_KAFKA_RESP_ERR_INVALID_PARTITIONS = 37,
  RD_KAFKA_RESP_ERR_INVALID_REPLICATION_FACTOR = 38,
  RD_KAFKA_RESP_ERR_INVALID_REPLICA_ASSIGNMENT = 39,
  RD_KAFKA_RESP_ERR_INVALID_CONFIG = 40,
  RD_KAFKA_RESP_ERR_NOT_CONTROLLER = 41,
  RD_KAFKA_RESP_ERR_INVALID_REQUEST = 42,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_FOR_MESSAGE_FORMAT = 43,
  RD_KAFKA_RESP_ERR_POLICY_VIOLATION = 44,
  RD_KAFKA_RESP_ERR_OUT_OF_ORDER_SEQUENCE_NUMBER = 45,
  RD_KAFKA_RESP_ERR_DUPLICATE_SEQUENCE_NUMBER = 46,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_EPOCH = 47,
  RD_KAFKA_RESP_ERR_INVALID_TXN_STATE = 48,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_ID_MAPPING = 49,
  RD_KAFKA_RESP_ERR_INVALID_TRANSACTION_TIMEOUT = 50,
  RD_KAFKA_RESP_ERR_CONCURRENT_TRANSACTIONS = 51,
  RD_KAFKA_RESP_ERR_TRANSACTION_COORDINATOR_FENCED = 52,
  RD_KAFKA_RESP_ERR_TRANSACTIONAL_ID_AUTHORIZATION_FAILED = 53,
  RD_KAFKA_RESP_ERR_SECURITY_DISABLED = 54,
  RD_KAFKA_RESP_ERR_OPERATION_NOT_ATTEMPTED = 55,
  RD_KAFKA_RESP_ERR_KAFKA_STORAGE_ERROR = 56,
  RD_KAFKA_RESP_ERR_LOG_DIR_NOT_FOUND = 57,
  RD_KAFKA_RESP_ERR_SASL_AUTHENTICATION_FAILED = 58,
  RD_KAFKA_RESP_ERR_UNKNOWN_PRODUCER_ID = 59,
  RD_KAFKA_RESP_ERR_REASSIGNMENT_IN_PROGRESS = 60,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTH_DISABLED = 61,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_NOT_FOUND = 62,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_OWNER_MISMATCH = 63,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_REQUEST_NOT_ALLOWED = 64,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTHORIZATION_FAILED = 65,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_EXPIRED = 66,
  RD_KAFKA_RESP_ERR_INVALID_PRINCIPAL_TYPE = 67,
  RD_KAFKA_RESP_ERR_NON_EMPTY_GROUP = 68,
  RD_KAFKA_RESP_ERR_GROUP_ID_NOT_FOUND = 69,
  RD_KAFKA_RESP_ERR_FETCH_SESSION_ID_NOT_FOUND = 70,
  RD_KAFKA_RESP_ERR_INVALID_FETCH_SESSION_EPOCH = 71,
  RD_KAFKA_RESP_ERR_LISTENER_NOT_FOUND = 72,
  RD_KAFKA_RESP_ERR_TOPIC_DELETION_DISABLED = 73,
  RD_KAFKA_RESP_ERR_FENCED_LEADER_EPOCH = 74,
  RD_KAFKA_RESP_ERR_UNKNOWN_LEADER_EPOCH = 75,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76,
  RD_KAFKA_RESP_ERR_STALE_BROKER_EPOCH = 77,
  RD_KAFKA_RESP_ERR_OFFSET_NOT_AVAILABLE = 78,
  RD_KAFKA_RESP_ERR_MEMBER_ID_REQUIRED = 79,
  RD_KAFKA_RESP_ERR_PREFERRED_LEADER_NOT_AVAILABLE = 80,
  RD_KAFKA_RESP_ERR_GROUP_MAX_SIZE_REACHED = 81,
  RD_KAFKA_RESP_ERR_END_ALL,
} rd_kafka_resp_err_t;
struct rd_kafka_err_desc {
  rd_kafka_resp_err_t code;
  char *name;
  char *desc;
};
void rd_kafka_get_err_descs(const struct rd_kafka_err_desc **errdescs, size_t *cntp);
const char *rd_kafka_err2str(rd_kafka_resp_err_t err);
const char *rd_kafka_err2name(rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_last_error(void);
rd_kafka_resp_err_t rd_kafka_errno2err(int errnox);
int rd_kafka_errno(void);
rd_kafka_resp_err_t rd_kafka_fatal_error(rd_kafka_t *rk, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_test_fatal_error(rd_kafka_t *rk, rd_kafka_resp_err_t err, const char *reason);
typedef struct rd_kafka_topic_partition_s {
  char *topic;
  int32_t partition;
  int64_t offset;
  void *metadata;
  size_t metadata_size;
  void *opaque;
  rd_kafka_resp_err_t err;
  void *_private;
} rd_kafka_topic_partition_t;
void rd_kafka_topic_partition_destroy(rd_kafka_topic_partition_t *rktpar);
typedef struct rd_kafka_topic_partition_list_s {
  int cnt;
  int size;
  rd_kafka_topic_partition_t *elems;
} rd_kafka_topic_partition_list_t;
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_new(int size);
void rd_kafka_topic_partition_list_destroy(rd_kafka_topic_partition_list_t *rkparlist);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_add(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_add_range(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t start, int32_t stop);
int rd_kafka_topic_partition_list_del(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
int rd_kafka_topic_partition_list_del_by_idx(rd_kafka_topic_partition_list_t *rktparlist, int idx);
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_copy(const rd_kafka_topic_partition_list_t *src);
rd_kafka_resp_err_t rd_kafka_topic_partition_list_set_offset(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition, int64_t offset);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_find(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_sort(rd_kafka_topic_partition_list_t *rktparlist, int (*cmp)(const void *a, const void *b, void *cmp_opaque), void *cmp_opaque);
typedef enum rd_kafka_vtype_t {
  RD_KAFKA_VTYPE_END,
  RD_KAFKA_VTYPE_TOPIC,
  RD_KAFKA_VTYPE_RKT,
  RD_KAFKA_VTYPE_PARTITION,
  RD_KAFKA_VTYPE_VALUE,
  RD_KAFKA_VTYPE_KEY,
  RD_KAFKA_VTYPE_OPAQUE,
  RD_KAFKA_VTYPE_MSGFLAGS,
  RD_KAFKA_VTYPE_TIMESTAMP,
  RD_KAFKA_VTYPE_HEADER,
  RD_KAFKA_VTYPE_HEADERS,
} rd_kafka_vtype_t;
typedef struct rd_kafka_headers_s rd_kafka_headers_t;
rd_kafka_headers_t *rd_kafka_headers_new(size_t initial_count);
void rd_kafka_headers_destroy(rd_kafka_headers_t *hdrs);
rd_kafka_headers_t *rd_kafka_headers_copy(const rd_kafka_headers_t *src);
rd_kafka_resp_err_t rd_kafka_header_add(rd_kafka_headers_t *hdrs, const char *name, ssize_t name_size, const void *value, ssize_t value_size);
rd_kafka_resp_err_t rd_kafka_header_remove(rd_kafka_headers_t *hdrs, const char *name);
rd_kafka_resp_err_t rd_kafka_header_get_last(const rd_kafka_headers_t *hdrs, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get(const rd_kafka_headers_t *hdrs, size_t idx, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get_all(const rd_kafka_headers_t *hdrs, size_t idx, const char **namep, const void **valuep, size_t *sizep);
typedef struct rd_kafka_message_s {
  rd_kafka_resp_err_t err;
  rd_kafka_topic_t *rkt;
  int32_t partition;
  void *payload;
  size_t len;
  void *key;
  size_t key_len;
  int64_t offset;
  void *_private;
} rd_kafka_message_t;
void rd_kafka_message_destroy(rd_kafka_message_t *rkmessage);
int64_t rd_kafka_message_timestamp(const rd_kafka_message_t *rkmessage, rd_kafka_timestamp_type_t *tstype);
int64_t rd_kafka_message_latency(const rd_kafka_message_t *rkmessage);
rd_kafka_resp_err_t rd_kafka_message_headers(const rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
rd_kafka_resp_err_t rd_kafka_message_detach_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
void rd_kafka_message_set_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t *hdrs);
size_t rd_kafka_header_cnt(const rd_kafka_headers_t *hdrs);
typedef enum {
  RD_KAFKA_MSG_STATUS_NOT_PERSISTED = 0,
  RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED = 1,
  RD_KAFKA_MSG_STATUS_PERSISTED = 2,
} rd_kafka_msg_status_t;
rd_kafka_msg_status_t rd_kafka_message_status(const rd_kafka_message_t *rkmessage);
typedef enum {
  RD_KAFKA_CONF_UNKNOWN = (- 2),
  RD_KAFKA_CONF_INVALID = (- 1),
  RD_KAFKA_CONF_OK = 0,
} rd_kafka_conf_res_t;
rd_kafka_conf_t *rd_kafka_conf_new(void);
void rd_kafka_conf_destroy(rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup(const rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup_filter(const rd_kafka_conf_t *conf, size_t filter_cnt, const char **filter);
const rd_kafka_conf_t *rd_kafka_conf(rd_kafka_t *rk);
rd_kafka_conf_res_t rd_kafka_conf_set(rd_kafka_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_events(rd_kafka_conf_t *conf, int events);
void rd_kafka_conf_set_background_event_cb(rd_kafka_conf_t *conf, void (*event_cb)(rd_kafka_t *rk, rd_kafka_event_t *rkev, void *opaque));
void rd_kafka_conf_set_dr_cb(rd_kafka_conf_t *conf, void (*dr_cb)(rd_kafka_t *rk, void *payload, size_t len, rd_kafka_resp_err_t err, void *opaque, void *msg_opaque));
void rd_kafka_conf_set_dr_msg_cb(rd_kafka_conf_t *conf, void (*dr_msg_cb)(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_consume_cb(rd_kafka_conf_t *conf, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_rebalance_cb(rd_kafka_conf_t *conf, void (*rebalance_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *partitions, void *opaque));
void rd_kafka_conf_set_offset_commit_cb(rd_kafka_conf_t *conf, void (*offset_commit_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *opaque));
void rd_kafka_conf_set_error_cb(rd_kafka_conf_t *conf, void (*error_cb)(rd_kafka_t *rk, int err, const char *reason, void *opaque));
void rd_kafka_conf_set_throttle_cb(rd_kafka_conf_t *conf, void (*throttle_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int throttle_time_ms, void *opaque));
void rd_kafka_conf_set_log_cb(rd_kafka_conf_t *conf, void (*log_cb)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_conf_set_stats_cb(rd_kafka_conf_t *conf, int (*stats_cb)(rd_kafka_t *rk, char *json, size_t json_len, void *opaque));
void rd_kafka_conf_set_oauthbearer_token_refresh_cb(rd_kafka_conf_t *conf, void (*oauthbearer_token_refresh_cb)(rd_kafka_t *rk, const char *oauthbearer_config, void *opaque));
void rd_kafka_conf_set_socket_cb(rd_kafka_conf_t *conf, int (*socket_cb)(int domain, int type, int protocol, void *opaque));
void rd_kafka_conf_set_connect_cb(rd_kafka_conf_t *conf, int (*connect_cb)(int sockfd, const struct sockaddr *addr, int addrlen, const char *id, void *opaque));
void rd_kafka_conf_set_closesocket_cb(rd_kafka_conf_t *conf, int (*closesocket_cb)(int sockfd, void *opaque));
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert_verify_cb(rd_kafka_conf_t *conf, int (*ssl_cert_verify_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int *x509_error, int depth, const char *buf, size_t size, char *errstr, size_t errstr_size, void *opaque));
typedef enum rd_kafka_cert_type_t {
  RD_KAFKA_CERT_PUBLIC_KEY,
  RD_KAFKA_CERT_PRIVATE_KEY,
  RD_KAFKA_CERT_CA,
  RD_KAFKA_CERT__CNT,
} rd_kafka_cert_type_t;
typedef enum rd_kafka_cert_enc_t {
  RD_KAFKA_CERT_ENC_PKCS12,
  RD_KAFKA_CERT_ENC_DER,
  RD_KAFKA_CERT_ENC_PEM,
  RD_KAFKA_CERT_ENC__CNT,
} rd_kafka_cert_enc_t;
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert(rd_kafka_conf_t *conf, rd_kafka_cert_type_t cert_type, rd_kafka_cert_enc_t cert_enc, const void *buffer, size_t size, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_opaque(rd_kafka_conf_t *conf, void *opaque);
void *rd_kafka_opaque(const rd_kafka_t *rk);
void rd_kafka_conf_set_default_topic_conf(rd_kafka_conf_t *conf, rd_kafka_topic_conf_t *tconf);
rd_kafka_conf_res_t rd_kafka_conf_get(const rd_kafka_conf_t *conf, const char *name, char *dest, size_t *dest_size);
rd_kafka_conf_res_t rd_kafka_topic_conf_get(const rd_kafka_topic_conf_t *conf, const char *name, char *dest, size_t *dest_size);
const char **rd_kafka_conf_dump(rd_kafka_conf_t *conf, size_t *cntp);
const char **rd_kafka_topic_conf_dump(rd_kafka_topic_conf_t *conf, size_t *cntp);
void rd_kafka_conf_dump_free(const char **arr, size_t cnt);
void rd_kafka_conf_properties_show(FILE *fp);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_new(void);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_dup(const rd_kafka_topic_conf_t *conf);
rd_kafka_topic_conf_t *rd_kafka_default_topic_conf_dup(rd_kafka_t *rk);
void rd_kafka_topic_conf_destroy(rd_kafka_topic_conf_t *topic_conf);
rd_kafka_conf_res_t rd_kafka_topic_conf_set(rd_kafka_topic_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_topic_conf_set_opaque(rd_kafka_topic_conf_t *conf, void *rkt_opaque);
void rd_kafka_topic_conf_set_partitioner_cb(rd_kafka_topic_conf_t *topic_conf, int32_t (*partitioner)(const rd_kafka_topic_t *rkt, const void *keydata, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque));
void rd_kafka_topic_conf_set_msg_order_cmp(rd_kafka_topic_conf_t *topic_conf, int (*msg_order_cmp)(const rd_kafka_message_t *a, const rd_kafka_message_t *b));
int rd_kafka_topic_partition_available(const rd_kafka_topic_t *rkt, int32_t partition);
int32_t rd_kafka_msg_partitioner_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
rd_kafka_t *rd_kafka_new(rd_kafka_type_t type, rd_kafka_conf_t *conf, char *errstr, size_t errstr_size);
void rd_kafka_destroy(rd_kafka_t *rk);
void rd_kafka_destroy_flags(rd_kafka_t *rk, int flags);
const char *rd_kafka_name(const rd_kafka_t *rk);
rd_kafka_type_t rd_kafka_type(const rd_kafka_t *rk);
char *rd_kafka_memberid(const rd_kafka_t *rk);
char *rd_kafka_clusterid(rd_kafka_t *rk, int timeout_ms);
int32_t rd_kafka_controllerid(rd_kafka_t *rk, int timeout_ms);
rd_kafka_topic_t *rd_kafka_topic_new(rd_kafka_t *rk, const char *topic, rd_kafka_topic_conf_t *conf);
void rd_kafka_topic_destroy(rd_kafka_topic_t *rkt);
const char *rd_kafka_topic_name(const rd_kafka_topic_t *rkt);
void *rd_kafka_topic_opaque(const rd_kafka_topic_t *rkt);
int rd_kafka_poll(rd_kafka_t *rk, int timeout_ms);
void rd_kafka_yield(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_pause_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_resume_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_query_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_get_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high);
rd_kafka_resp_err_t rd_kafka_offsets_for_times(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets, int timeout_ms);
void rd_kafka_mem_free(rd_kafka_t *rk, void *ptr);
rd_kafka_queue_t *rd_kafka_queue_new(rd_kafka_t *rk);
void rd_kafka_queue_destroy(rd_kafka_queue_t *rkqu);
rd_kafka_queue_t *rd_kafka_queue_get_main(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_consumer(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_partition(rd_kafka_t *rk, const char *topic, int32_t partition);
rd_kafka_queue_t *rd_kafka_queue_get_background(rd_kafka_t *rk);
void rd_kafka_queue_forward(rd_kafka_queue_t *src, rd_kafka_queue_t *dst);
rd_kafka_resp_err_t rd_kafka_set_log_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu);
size_t rd_kafka_queue_length(rd_kafka_queue_t *rkqu);
void rd_kafka_queue_io_event_enable(rd_kafka_queue_t *rkqu, int fd, const void *payload, size_t size);
void rd_kafka_queue_cb_event_enable(rd_kafka_queue_t *rkqu, void (*event_cb)(rd_kafka_t *rk, void *qev_opaque), void *qev_opaque);
int rd_kafka_consume_start(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
int rd_kafka_consume_start_queue(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, rd_kafka_queue_t *rkqu);
int rd_kafka_consume_stop(rd_kafka_topic_t *rkt, int32_t partition);
rd_kafka_resp_err_t rd_kafka_seek(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, int timeout_ms);
rd_kafka_message_t *rd_kafka_consume(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms);
ssize_t rd_kafka_consume_batch(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_message_t *rd_kafka_consume_queue(rd_kafka_queue_t *rkqu, int timeout_ms);
ssize_t rd_kafka_consume_batch_queue(rd_kafka_queue_t *rkqu, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback_queue(rd_kafka_queue_t *rkqu, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_offset_store(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
rd_kafka_resp_err_t rd_kafka_offsets_store(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets);
rd_kafka_resp_err_t rd_kafka_subscribe(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *topics);
rd_kafka_resp_err_t rd_kafka_unsubscribe(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_subscription(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **topics);
rd_kafka_message_t *rd_kafka_consumer_poll(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_consumer_close(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_assignment(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **partitions);
rd_kafka_resp_err_t rd_kafka_commit(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, int async);
rd_kafka_resp_err_t rd_kafka_commit_message(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, int async);
rd_kafka_resp_err_t rd_kafka_commit_queue(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_queue_t *rkqu, void (*cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_committed(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_position(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
int rd_kafka_produce(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, void *payload, size_t len, const void *key, size_t keylen, void *msg_opaque);
rd_kafka_resp_err_t rd_kafka_producev(rd_kafka_t *rk, ...);
int rd_kafka_produce_batch(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, rd_kafka_message_t *rkmessages, int message_cnt);
rd_kafka_resp_err_t rd_kafka_flush(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_purge(rd_kafka_t *rk, int purge_flags);
typedef struct rd_kafka_metadata_broker {
  int32_t id;
  char *host;
  int port;
} rd_kafka_metadata_broker_t;
typedef struct rd_kafka_metadata_partition {
  int32_t id;
  rd_kafka_resp_err_t err;
  int32_t leader;
  int replica_cnt;
  int32_t *replicas;
  int isr_cnt;
  int32_t *isrs;
} rd_kafka_metadata_partition_t;
typedef struct rd_kafka_metadata_topic {
  char *topic;
  int partition_cnt;
  struct rd_kafka_metadata_partition *partitions;
  rd_kafka_resp_err_t err;
} rd_kafka_metadata_topic_t;
typedef struct rd_kafka_metadata {
  int broker_cnt;
  struct rd_kafka_metadata_broker *brokers;
  int topic_cnt;
  struct rd_kafka_metadata_topic *topics;
  int32_t orig_broker_id;
  char *orig_broker_name;
} rd_kafka_metadata_t;
rd_kafka_resp_err_t rd_kafka_metadata(rd_kafka_t *rk, int all_topics, rd_kafka_topic_t *only_rkt, const struct rd_kafka_metadata **metadatap, int timeout_ms);
void rd_kafka_metadata_destroy(const struct rd_kafka_metadata *metadata);
struct rd_kafka_group_member_info {
  char *member_id;
  char *client_id;
  char *client_host;
  void *member_metadata;
  int member_metadata_size;
  void *member_assignment;
  int member_assignment_size;
};
struct rd_kafka_group_info {
  struct rd_kafka_metadata_broker broker;
  char *group;
  rd_kafka_resp_err_t err;
  char *state;
  char *protocol_type;
  char *protocol;
  struct rd_kafka_group_member_info *members;
  int member_cnt;
};
struct rd_kafka_group_list {
  struct rd_kafka_group_info *groups;
  int group_cnt;
};
rd_kafka_resp_err_t rd_kafka_list_groups(rd_kafka_t *rk, const char *group, const struct rd_kafka_group_list **grplistp, int timeout_ms);
void rd_kafka_group_list_destroy(const struct rd_kafka_group_list *grplist);
int rd_kafka_brokers_add(rd_kafka_t *rk, const char *brokerlist);
void rd_kafka_set_logger(rd_kafka_t *rk, void (*func)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_set_log_level(rd_kafka_t *rk, int level);
void rd_kafka_log_print(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
void rd_kafka_log_syslog(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
int rd_kafka_outq_len(rd_kafka_t *rk);
void rd_kafka_dump(FILE *fp, rd_kafka_t *rk);
int rd_kafka_thread_cnt(void);
typedef enum rd_kafka_thread_type_t {
  RD_KAFKA_THREAD_MAIN,
  RD_KAFKA_THREAD_BACKGROUND,
  RD_KAFKA_THREAD_BROKER,
} rd_kafka_thread_type_t;
int rd_kafka_wait_destroyed(int timeout_ms);
int rd_kafka_unittest(void);
rd_kafka_resp_err_t rd_kafka_poll_set_consumer(rd_kafka_t *rk);
typedef int rd_kafka_event_type_t;
rd_kafka_event_type_t rd_kafka_event_type(const rd_kafka_event_t *rkev);
const char *rd_kafka_event_name(const rd_kafka_event_t *rkev);
void rd_kafka_event_destroy(rd_kafka_event_t *rkev);
const rd_kafka_message_t *rd_kafka_event_message_next(rd_kafka_event_t *rkev);
size_t rd_kafka_event_message_array(rd_kafka_event_t *rkev, const rd_kafka_message_t **rkmessages, size_t size);
size_t rd_kafka_event_message_count(rd_kafka_event_t *rkev);
const char *rd_kafka_event_config_string(rd_kafka_event_t *rkev);
rd_kafka_resp_err_t rd_kafka_event_error(rd_kafka_event_t *rkev);
const char *rd_kafka_event_error_string(rd_kafka_event_t *rkev);
int rd_kafka_event_error_is_fatal(rd_kafka_event_t *rkev);
void *rd_kafka_event_opaque(rd_kafka_event_t *rkev);
int rd_kafka_event_log(rd_kafka_event_t *rkev, const char **fac, const char **str, int *level);
const char *rd_kafka_event_stats(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_list_t *rd_kafka_event_topic_partition_list(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_t *rd_kafka_event_topic_partition(rd_kafka_event_t *rkev);
typedef rd_kafka_event_t rd_kafka_CreateTopics_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteTopics_result_t;
typedef rd_kafka_event_t rd_kafka_CreatePartitions_result_t;
typedef rd_kafka_event_t rd_kafka_AlterConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeConfigs_result_t;
const rd_kafka_CreateTopics_result_t *rd_kafka_event_CreateTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteTopics_result_t *rd_kafka_event_DeleteTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_CreatePartitions_result_t *rd_kafka_event_CreatePartitions_result(rd_kafka_event_t *rkev);
const rd_kafka_AlterConfigs_result_t *rd_kafka_event_AlterConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeConfigs_result_t *rd_kafka_event_DescribeConfigs_result(rd_kafka_event_t *rkev);
rd_kafka_event_t *rd_kafka_queue_poll(rd_kafka_queue_t *rkqu, int timeout_ms);
int rd_kafka_queue_poll_callback(rd_kafka_queue_t *rkqu, int timeout_ms);
typedef rd_kafka_resp_err_t (rd_kafka_plugin_f_conf_init_t)(rd_kafka_conf_t *conf, void **plug_opaquep, char *errstr, size_t errstr_size);
typedef rd_kafka_conf_res_t (rd_kafka_interceptor_f_on_conf_set_t)(rd_kafka_conf_t *conf, const char *name, const char *val, char *errstr, size_t errstr_size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_dup_t)(rd_kafka_conf_t *new_conf, const rd_kafka_conf_t *old_conf, size_t filter_cnt, const char **filter, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_destroy_t)(void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_new_t)(rd_kafka_t *rk, const rd_kafka_conf_t *conf, void *ic_opaque, char *errstr, size_t errstr_size);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_destroy_t)(rd_kafka_t *rk, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_send_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_acknowledgement_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_consume_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_commit_t)(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_request_sent_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_start_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_exit_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_set(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_set_t *on_conf_set, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_dup(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_dup_t *on_conf_dup, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_destroy(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_destroy_t *on_conf_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_new(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_new_t *on_new, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_destroy(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_destroy_t *on_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_send(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_send_t *on_send, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_acknowledgement(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_acknowledgement_t *on_acknowledgement, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_consume(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_consume_t *on_consume, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_commit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_commit_t *on_commit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_request_sent(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_request_sent_t *on_request_sent, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_start(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_start_t *on_thread_start, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_exit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_exit_t *on_thread_exit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_topic_result_error(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_error_string(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_name(const rd_kafka_topic_result_t *topicres);
typedef enum rd_kafka_admin_op_t {
  RD_KAFKA_ADMIN_OP_ANY = 0,
  RD_KAFKA_ADMIN_OP_CREATETOPICS,
  RD_KAFKA_ADMIN_OP_DELETETOPICS,
  RD_KAFKA_ADMIN_OP_CREATEPARTITIONS,
  RD_KAFKA_ADMIN_OP_ALTERCONFIGS,
  RD_KAFKA_ADMIN_OP_DESCRIBECONFIGS,
  RD_KAFKA_ADMIN_OP__CNT,
} rd_kafka_admin_op_t;
typedef struct rd_kafka_AdminOptions_s rd_kafka_AdminOptions_t;
rd_kafka_AdminOptions_t *rd_kafka_AdminOptions_new(rd_kafka_t *rk, rd_kafka_admin_op_t for_api);
void rd_kafka_AdminOptions_destroy(rd_kafka_AdminOptions_t *options);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_request_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_operation_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_validate_only(rd_kafka_AdminOptions_t *options, int true_or_false, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_broker(rd_kafka_AdminOptions_t *options, int32_t broker_id, char *errstr, size_t errstr_size);
void rd_kafka_AdminOptions_set_opaque(rd_kafka_AdminOptions_t *options, void *ev_opaque);
typedef struct rd_kafka_NewTopic_s rd_kafka_NewTopic_t;
rd_kafka_NewTopic_t *rd_kafka_NewTopic_new(const char *topic, int num_partitions, int replication_factor, char *errstr, size_t errstr_size);
void rd_kafka_NewTopic_destroy(rd_kafka_NewTopic_t *new_topic);
void rd_kafka_NewTopic_destroy_array(rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_replica_assignment(rd_kafka_NewTopic_t *new_topic, int32_t partition, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_config(rd_kafka_NewTopic_t *new_topic, const char *name, const char *value);
void rd_kafka_CreateTopics(rd_kafka_t *rk, rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreateTopics_result_topics(const rd_kafka_CreateTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteTopic_s rd_kafka_DeleteTopic_t;
rd_kafka_DeleteTopic_t *rd_kafka_DeleteTopic_new(const char *topic);
void rd_kafka_DeleteTopic_destroy(rd_kafka_DeleteTopic_t *del_topic);
void rd_kafka_DeleteTopic_destroy_array(rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt);
void rd_kafka_DeleteTopics(rd_kafka_t *rk, rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_DeleteTopics_result_topics(const rd_kafka_DeleteTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_NewPartitions_s rd_kafka_NewPartitions_t;
rd_kafka_NewPartitions_t *rd_kafka_NewPartitions_new(const char *topic, size_t new_total_cnt, char *errstr, size_t errstr_size);
void rd_kafka_NewPartitions_destroy(rd_kafka_NewPartitions_t *new_parts);
void rd_kafka_NewPartitions_destroy_array(rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt);
rd_kafka_resp_err_t rd_kafka_NewPartitions_set_replica_assignment(rd_kafka_NewPartitions_t *new_parts, int32_t new_partition_idx, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
void rd_kafka_CreatePartitions(rd_kafka_t *rk, rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreatePartitions_result_topics(const rd_kafka_CreatePartitions_result_t *result, size_t *cntp);
typedef enum rd_kafka_ConfigSource_t {
  RD_KAFKA_CONFIG_SOURCE_UNKNOWN_CONFIG = 0,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG = 1,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG = 2,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG = 3,
  RD_KAFKA_CONFIG_SOURCE_STATIC_BROKER_CONFIG = 4,
  RD_KAFKA_CONFIG_SOURCE_DEFAULT_CONFIG = 5,
  RD_KAFKA_CONFIG_SOURCE__CNT,
} rd_kafka_ConfigSource_t;
const char *rd_kafka_ConfigSource_name(rd_kafka_ConfigSource_t confsource);
typedef struct rd_kafka_ConfigEntry_s rd_kafka_ConfigEntry_t;
const char *rd_kafka_ConfigEntry_name(const rd_kafka_ConfigEntry_t *entry);
const char *rd_kafka_ConfigEntry_value(const rd_kafka_ConfigEntry_t *entry);
rd_kafka_ConfigSource_t rd_kafka_ConfigEntry_source(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_read_only(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_default(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_sensitive(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_synonym(const rd_kafka_ConfigEntry_t *entry);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigEntry_synonyms(const rd_kafka_ConfigEntry_t *entry, size_t *cntp);
typedef enum rd_kafka_ResourceType_t {
  RD_KAFKA_RESOURCE_UNKNOWN = 0,
  RD_KAFKA_RESOURCE_ANY = 1,
  RD_KAFKA_RESOURCE_TOPIC = 2,
  RD_KAFKA_RESOURCE_GROUP = 3,
  RD_KAFKA_RESOURCE_BROKER = 4,
  RD_KAFKA_RESOURCE__CNT,
} rd_kafka_ResourceType_t;
const char *rd_kafka_ResourceType_name(rd_kafka_ResourceType_t restype);
typedef struct rd_kafka_ConfigResource_s rd_kafka_ConfigResource_t;
rd_kafka_ConfigResource_t *rd_kafka_ConfigResource_new(rd_kafka_ResourceType_t restype, const char *resname);
void rd_kafka_ConfigResource_destroy(rd_kafka_ConfigResource_t *config);
void rd_kafka_ConfigResource_destroy_array(rd_kafka_ConfigResource_t **config, size_t config_cnt);
rd_kafka_resp_err_t rd_kafka_ConfigResource_set_config(rd_kafka_ConfigResource_t *config, const char *name, const char *value);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigResource_configs(const rd_kafka_ConfigResource_t *config, size_t *cntp);
rd_kafka_ResourceType_t rd_kafka_ConfigResource_type(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_name(const rd_kafka_ConfigResource_t *config);
rd_kafka_resp_err_t rd_kafka_ConfigResource_error(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_error_string(const rd_kafka_ConfigResource_t *config);
void rd_kafka_AlterConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_AlterConfigs_result_resources(const rd_kafka_AlterConfigs_result_t *result, size_t *cntp);
void rd_kafka_DescribeConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_DescribeConfigs_result_resources(const rd_kafka_DescribeConfigs_result_t *result, size_t *cntp);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token(rd_kafka_t *rk, const char *token_value, int64_t md_lifetime_ms, const char *md_principal_name, const char **extensions, size_t extension_size, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token_failure(rd_kafka_t *rk, const char *errstr);
'
rdkafka.h, rdkafka_mock.h

RD_KAFKA_VERSION

public RD_KAFKA_VERSION = 16908799

librdkafka version

Interpreted as hex MM.mm.rr.xx:

  • MM = Major
  • mm = minor
  • rr = revision
  • xx = pre-release id (0xff is the final release)

E.g.: 0x000801ff = 0.8.1

Remarks
This value should only be used during compile time, for runtime checks of version use rd_kafka_version()

RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE

public RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76

Unsupported compression type

RD_KAFKA_RESP_ERR_END_ALL

public RD_KAFKA_RESP_ERR_END_ALL = 82
enum rd_kafka_resp_err_t

RD_KAFKA_ADMIN_OP__CNT

public RD_KAFKA_ADMIN_OP__CNT = 6

Number of ops defined

RD_KAFKA_CDEF

public RD_KAFKA_CDEF = 'typedef long int ssize_t;
typedef struct _IO_FILE FILE;
typedef long int mode_t;
typedef signed int int16_t;
typedef unsigned int uint16_t;
typedef signed int int32_t;
typedef signed long int int64_t;
int rd_kafka_version(void);
const char *rd_kafka_version_str(void);
typedef enum rd_kafka_type_t {
  RD_KAFKA_PRODUCER,
  RD_KAFKA_CONSUMER,
} rd_kafka_type_t;
typedef enum rd_kafka_timestamp_type_t {
  RD_KAFKA_TIMESTAMP_NOT_AVAILABLE,
  RD_KAFKA_TIMESTAMP_CREATE_TIME,
  RD_KAFKA_TIMESTAMP_LOG_APPEND_TIME,
} rd_kafka_timestamp_type_t;
const char *rd_kafka_get_debug_contexts(void);
typedef struct rd_kafka_s rd_kafka_t;
typedef struct rd_kafka_topic_s rd_kafka_topic_t;
typedef struct rd_kafka_conf_s rd_kafka_conf_t;
typedef struct rd_kafka_topic_conf_s rd_kafka_topic_conf_t;
typedef struct rd_kafka_queue_s rd_kafka_queue_t;
typedef struct rd_kafka_op_s rd_kafka_event_t;
typedef struct rd_kafka_topic_result_s rd_kafka_topic_result_t;
typedef enum {
  RD_KAFKA_RESP_ERR__BEGIN = (- 200),
  RD_KAFKA_RESP_ERR__BAD_MSG = (- 199),
  RD_KAFKA_RESP_ERR__BAD_COMPRESSION = (- 198),
  RD_KAFKA_RESP_ERR__DESTROY = (- 197),
  RD_KAFKA_RESP_ERR__FAIL = (- 196),
  RD_KAFKA_RESP_ERR__TRANSPORT = (- 195),
  RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE = (- 194),
  RD_KAFKA_RESP_ERR__RESOLVE = (- 193),
  RD_KAFKA_RESP_ERR__MSG_TIMED_OUT = (- 192),
  RD_KAFKA_RESP_ERR__PARTITION_EOF = (- 191),
  RD_KAFKA_RESP_ERR__UNKNOWN_PARTITION = (- 190),
  RD_KAFKA_RESP_ERR__FS = (- 189),
  RD_KAFKA_RESP_ERR__UNKNOWN_TOPIC = (- 188),
  RD_KAFKA_RESP_ERR__ALL_BROKERS_DOWN = (- 187),
  RD_KAFKA_RESP_ERR__INVALID_ARG = (- 186),
  RD_KAFKA_RESP_ERR__TIMED_OUT = (- 185),
  RD_KAFKA_RESP_ERR__QUEUE_FULL = (- 184),
  RD_KAFKA_RESP_ERR__ISR_INSUFF = (- 183),
  RD_KAFKA_RESP_ERR__NODE_UPDATE = (- 182),
  RD_KAFKA_RESP_ERR__SSL = (- 181),
  RD_KAFKA_RESP_ERR__WAIT_COORD = (- 180),
  RD_KAFKA_RESP_ERR__UNKNOWN_GROUP = (- 179),
  RD_KAFKA_RESP_ERR__IN_PROGRESS = (- 178),
  RD_KAFKA_RESP_ERR__PREV_IN_PROGRESS = (- 177),
  RD_KAFKA_RESP_ERR__EXISTING_SUBSCRIPTION = (- 176),
  RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS = (- 175),
  RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS = (- 174),
  RD_KAFKA_RESP_ERR__CONFLICT = (- 173),
  RD_KAFKA_RESP_ERR__STATE = (- 172),
  RD_KAFKA_RESP_ERR__UNKNOWN_PROTOCOL = (- 171),
  RD_KAFKA_RESP_ERR__NOT_IMPLEMENTED = (- 170),
  RD_KAFKA_RESP_ERR__AUTHENTICATION = (- 169),
  RD_KAFKA_RESP_ERR__NO_OFFSET = (- 168),
  RD_KAFKA_RESP_ERR__OUTDATED = (- 167),
  RD_KAFKA_RESP_ERR__TIMED_OUT_QUEUE = (- 166),
  RD_KAFKA_RESP_ERR__UNSUPPORTED_FEATURE = (- 165),
  RD_KAFKA_RESP_ERR__WAIT_CACHE = (- 164),
  RD_KAFKA_RESP_ERR__INTR = (- 163),
  RD_KAFKA_RESP_ERR__KEY_SERIALIZATION = (- 162),
  RD_KAFKA_RESP_ERR__VALUE_SERIALIZATION = (- 161),
  RD_KAFKA_RESP_ERR__KEY_DESERIALIZATION = (- 160),
  RD_KAFKA_RESP_ERR__VALUE_DESERIALIZATION = (- 159),
  RD_KAFKA_RESP_ERR__PARTIAL = (- 158),
  RD_KAFKA_RESP_ERR__READ_ONLY = (- 157),
  RD_KAFKA_RESP_ERR__NOENT = (- 156),
  RD_KAFKA_RESP_ERR__UNDERFLOW = (- 155),
  RD_KAFKA_RESP_ERR__INVALID_TYPE = (- 154),
  RD_KAFKA_RESP_ERR__RETRY = (- 153),
  RD_KAFKA_RESP_ERR__PURGE_QUEUE = (- 152),
  RD_KAFKA_RESP_ERR__PURGE_INFLIGHT = (- 151),
  RD_KAFKA_RESP_ERR__FATAL = (- 150),
  RD_KAFKA_RESP_ERR__INCONSISTENT = (- 149),
  RD_KAFKA_RESP_ERR__GAPLESS_GUARANTEE = (- 148),
  RD_KAFKA_RESP_ERR__MAX_POLL_EXCEEDED = (- 147),
  RD_KAFKA_RESP_ERR__END = (- 100),
  RD_KAFKA_RESP_ERR_UNKNOWN = (- 1),
  RD_KAFKA_RESP_ERR_NO_ERROR = 0,
  RD_KAFKA_RESP_ERR_OFFSET_OUT_OF_RANGE = 1,
  RD_KAFKA_RESP_ERR_INVALID_MSG = 2,
  RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_OR_PART = 3,
  RD_KAFKA_RESP_ERR_INVALID_MSG_SIZE = 4,
  RD_KAFKA_RESP_ERR_LEADER_NOT_AVAILABLE = 5,
  RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION = 6,
  RD_KAFKA_RESP_ERR_REQUEST_TIMED_OUT = 7,
  RD_KAFKA_RESP_ERR_BROKER_NOT_AVAILABLE = 8,
  RD_KAFKA_RESP_ERR_REPLICA_NOT_AVAILABLE = 9,
  RD_KAFKA_RESP_ERR_MSG_SIZE_TOO_LARGE = 10,
  RD_KAFKA_RESP_ERR_STALE_CTRL_EPOCH = 11,
  RD_KAFKA_RESP_ERR_OFFSET_METADATA_TOO_LARGE = 12,
  RD_KAFKA_RESP_ERR_NETWORK_EXCEPTION = 13,
  RD_KAFKA_RESP_ERR_GROUP_LOAD_IN_PROGRESS = 14,
  RD_KAFKA_RESP_ERR_GROUP_COORDINATOR_NOT_AVAILABLE = 15,
  RD_KAFKA_RESP_ERR_NOT_COORDINATOR_FOR_GROUP = 16,
  RD_KAFKA_RESP_ERR_TOPIC_EXCEPTION = 17,
  RD_KAFKA_RESP_ERR_RECORD_LIST_TOO_LARGE = 18,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS = 19,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS_AFTER_APPEND = 20,
  RD_KAFKA_RESP_ERR_INVALID_REQUIRED_ACKS = 21,
  RD_KAFKA_RESP_ERR_ILLEGAL_GENERATION = 22,
  RD_KAFKA_RESP_ERR_INCONSISTENT_GROUP_PROTOCOL = 23,
  RD_KAFKA_RESP_ERR_INVALID_GROUP_ID = 24,
  RD_KAFKA_RESP_ERR_UNKNOWN_MEMBER_ID = 25,
  RD_KAFKA_RESP_ERR_INVALID_SESSION_TIMEOUT = 26,
  RD_KAFKA_RESP_ERR_REBALANCE_IN_PROGRESS = 27,
  RD_KAFKA_RESP_ERR_INVALID_COMMIT_OFFSET_SIZE = 28,
  RD_KAFKA_RESP_ERR_TOPIC_AUTHORIZATION_FAILED = 29,
  RD_KAFKA_RESP_ERR_GROUP_AUTHORIZATION_FAILED = 30,
  RD_KAFKA_RESP_ERR_CLUSTER_AUTHORIZATION_FAILED = 31,
  RD_KAFKA_RESP_ERR_INVALID_TIMESTAMP = 32,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_SASL_MECHANISM = 33,
  RD_KAFKA_RESP_ERR_ILLEGAL_SASL_STATE = 34,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_VERSION = 35,
  RD_KAFKA_RESP_ERR_TOPIC_ALREADY_EXISTS = 36,
  RD_KAFKA_RESP_ERR_INVALID_PARTITIONS = 37,
  RD_KAFKA_RESP_ERR_INVALID_REPLICATION_FACTOR = 38,
  RD_KAFKA_RESP_ERR_INVALID_REPLICA_ASSIGNMENT = 39,
  RD_KAFKA_RESP_ERR_INVALID_CONFIG = 40,
  RD_KAFKA_RESP_ERR_NOT_CONTROLLER = 41,
  RD_KAFKA_RESP_ERR_INVALID_REQUEST = 42,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_FOR_MESSAGE_FORMAT = 43,
  RD_KAFKA_RESP_ERR_POLICY_VIOLATION = 44,
  RD_KAFKA_RESP_ERR_OUT_OF_ORDER_SEQUENCE_NUMBER = 45,
  RD_KAFKA_RESP_ERR_DUPLICATE_SEQUENCE_NUMBER = 46,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_EPOCH = 47,
  RD_KAFKA_RESP_ERR_INVALID_TXN_STATE = 48,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_ID_MAPPING = 49,
  RD_KAFKA_RESP_ERR_INVALID_TRANSACTION_TIMEOUT = 50,
  RD_KAFKA_RESP_ERR_CONCURRENT_TRANSACTIONS = 51,
  RD_KAFKA_RESP_ERR_TRANSACTION_COORDINATOR_FENCED = 52,
  RD_KAFKA_RESP_ERR_TRANSACTIONAL_ID_AUTHORIZATION_FAILED = 53,
  RD_KAFKA_RESP_ERR_SECURITY_DISABLED = 54,
  RD_KAFKA_RESP_ERR_OPERATION_NOT_ATTEMPTED = 55,
  RD_KAFKA_RESP_ERR_KAFKA_STORAGE_ERROR = 56,
  RD_KAFKA_RESP_ERR_LOG_DIR_NOT_FOUND = 57,
  RD_KAFKA_RESP_ERR_SASL_AUTHENTICATION_FAILED = 58,
  RD_KAFKA_RESP_ERR_UNKNOWN_PRODUCER_ID = 59,
  RD_KAFKA_RESP_ERR_REASSIGNMENT_IN_PROGRESS = 60,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTH_DISABLED = 61,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_NOT_FOUND = 62,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_OWNER_MISMATCH = 63,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_REQUEST_NOT_ALLOWED = 64,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTHORIZATION_FAILED = 65,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_EXPIRED = 66,
  RD_KAFKA_RESP_ERR_INVALID_PRINCIPAL_TYPE = 67,
  RD_KAFKA_RESP_ERR_NON_EMPTY_GROUP = 68,
  RD_KAFKA_RESP_ERR_GROUP_ID_NOT_FOUND = 69,
  RD_KAFKA_RESP_ERR_FETCH_SESSION_ID_NOT_FOUND = 70,
  RD_KAFKA_RESP_ERR_INVALID_FETCH_SESSION_EPOCH = 71,
  RD_KAFKA_RESP_ERR_LISTENER_NOT_FOUND = 72,
  RD_KAFKA_RESP_ERR_TOPIC_DELETION_DISABLED = 73,
  RD_KAFKA_RESP_ERR_FENCED_LEADER_EPOCH = 74,
  RD_KAFKA_RESP_ERR_UNKNOWN_LEADER_EPOCH = 75,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76,
  RD_KAFKA_RESP_ERR_STALE_BROKER_EPOCH = 77,
  RD_KAFKA_RESP_ERR_OFFSET_NOT_AVAILABLE = 78,
  RD_KAFKA_RESP_ERR_MEMBER_ID_REQUIRED = 79,
  RD_KAFKA_RESP_ERR_PREFERRED_LEADER_NOT_AVAILABLE = 80,
  RD_KAFKA_RESP_ERR_GROUP_MAX_SIZE_REACHED = 81,
  RD_KAFKA_RESP_ERR_END_ALL,
} rd_kafka_resp_err_t;
struct rd_kafka_err_desc {
  rd_kafka_resp_err_t code;
  char *name;
  char *desc;
};
void rd_kafka_get_err_descs(const struct rd_kafka_err_desc **errdescs, size_t *cntp);
const char *rd_kafka_err2str(rd_kafka_resp_err_t err);
const char *rd_kafka_err2name(rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_last_error(void);
rd_kafka_resp_err_t rd_kafka_errno2err(int errnox);
int rd_kafka_errno(void);
rd_kafka_resp_err_t rd_kafka_fatal_error(rd_kafka_t *rk, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_test_fatal_error(rd_kafka_t *rk, rd_kafka_resp_err_t err, const char *reason);
typedef struct rd_kafka_topic_partition_s {
  char *topic;
  int32_t partition;
  int64_t offset;
  void *metadata;
  size_t metadata_size;
  void *opaque;
  rd_kafka_resp_err_t err;
  void *_private;
} rd_kafka_topic_partition_t;
void rd_kafka_topic_partition_destroy(rd_kafka_topic_partition_t *rktpar);
typedef struct rd_kafka_topic_partition_list_s {
  int cnt;
  int size;
  rd_kafka_topic_partition_t *elems;
} rd_kafka_topic_partition_list_t;
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_new(int size);
void rd_kafka_topic_partition_list_destroy(rd_kafka_topic_partition_list_t *rkparlist);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_add(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_add_range(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t start, int32_t stop);
int rd_kafka_topic_partition_list_del(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
int rd_kafka_topic_partition_list_del_by_idx(rd_kafka_topic_partition_list_t *rktparlist, int idx);
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_copy(const rd_kafka_topic_partition_list_t *src);
rd_kafka_resp_err_t rd_kafka_topic_partition_list_set_offset(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition, int64_t offset);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_find(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_sort(rd_kafka_topic_partition_list_t *rktparlist, int (*cmp)(const void *a, const void *b, void *cmp_opaque), void *cmp_opaque);
typedef enum rd_kafka_vtype_t {
  RD_KAFKA_VTYPE_END,
  RD_KAFKA_VTYPE_TOPIC,
  RD_KAFKA_VTYPE_RKT,
  RD_KAFKA_VTYPE_PARTITION,
  RD_KAFKA_VTYPE_VALUE,
  RD_KAFKA_VTYPE_KEY,
  RD_KAFKA_VTYPE_OPAQUE,
  RD_KAFKA_VTYPE_MSGFLAGS,
  RD_KAFKA_VTYPE_TIMESTAMP,
  RD_KAFKA_VTYPE_HEADER,
  RD_KAFKA_VTYPE_HEADERS,
} rd_kafka_vtype_t;
typedef struct rd_kafka_headers_s rd_kafka_headers_t;
rd_kafka_headers_t *rd_kafka_headers_new(size_t initial_count);
void rd_kafka_headers_destroy(rd_kafka_headers_t *hdrs);
rd_kafka_headers_t *rd_kafka_headers_copy(const rd_kafka_headers_t *src);
rd_kafka_resp_err_t rd_kafka_header_add(rd_kafka_headers_t *hdrs, const char *name, ssize_t name_size, const void *value, ssize_t value_size);
rd_kafka_resp_err_t rd_kafka_header_remove(rd_kafka_headers_t *hdrs, const char *name);
rd_kafka_resp_err_t rd_kafka_header_get_last(const rd_kafka_headers_t *hdrs, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get(const rd_kafka_headers_t *hdrs, size_t idx, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get_all(const rd_kafka_headers_t *hdrs, size_t idx, const char **namep, const void **valuep, size_t *sizep);
typedef struct rd_kafka_message_s {
  rd_kafka_resp_err_t err;
  rd_kafka_topic_t *rkt;
  int32_t partition;
  void *payload;
  size_t len;
  void *key;
  size_t key_len;
  int64_t offset;
  void *_private;
} rd_kafka_message_t;
void rd_kafka_message_destroy(rd_kafka_message_t *rkmessage);
int64_t rd_kafka_message_timestamp(const rd_kafka_message_t *rkmessage, rd_kafka_timestamp_type_t *tstype);
int64_t rd_kafka_message_latency(const rd_kafka_message_t *rkmessage);
rd_kafka_resp_err_t rd_kafka_message_headers(const rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
rd_kafka_resp_err_t rd_kafka_message_detach_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
void rd_kafka_message_set_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t *hdrs);
size_t rd_kafka_header_cnt(const rd_kafka_headers_t *hdrs);
typedef enum {
  RD_KAFKA_MSG_STATUS_NOT_PERSISTED = 0,
  RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED = 1,
  RD_KAFKA_MSG_STATUS_PERSISTED = 2,
} rd_kafka_msg_status_t;
rd_kafka_msg_status_t rd_kafka_message_status(const rd_kafka_message_t *rkmessage);
typedef enum {
  RD_KAFKA_CONF_UNKNOWN = (- 2),
  RD_KAFKA_CONF_INVALID = (- 1),
  RD_KAFKA_CONF_OK = 0,
} rd_kafka_conf_res_t;
rd_kafka_conf_t *rd_kafka_conf_new(void);
void rd_kafka_conf_destroy(rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup(const rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup_filter(const rd_kafka_conf_t *conf, size_t filter_cnt, const char **filter);
const rd_kafka_conf_t *rd_kafka_conf(rd_kafka_t *rk);
rd_kafka_conf_res_t rd_kafka_conf_set(rd_kafka_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_events(rd_kafka_conf_t *conf, int events);
void rd_kafka_conf_set_background_event_cb(rd_kafka_conf_t *conf, void (*event_cb)(rd_kafka_t *rk, rd_kafka_event_t *rkev, void *opaque));
void rd_kafka_conf_set_dr_cb(rd_kafka_conf_t *conf, void (*dr_cb)(rd_kafka_t *rk, void *payload, size_t len, rd_kafka_resp_err_t err, void *opaque, void *msg_opaque));
void rd_kafka_conf_set_dr_msg_cb(rd_kafka_conf_t *conf, void (*dr_msg_cb)(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_consume_cb(rd_kafka_conf_t *conf, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_rebalance_cb(rd_kafka_conf_t *conf, void (*rebalance_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *partitions, void *opaque));
void rd_kafka_conf_set_offset_commit_cb(rd_kafka_conf_t *conf, void (*offset_commit_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *opaque));
void rd_kafka_conf_set_error_cb(rd_kafka_conf_t *conf, void (*error_cb)(rd_kafka_t *rk, int err, const char *reason, void *opaque));
void rd_kafka_conf_set_throttle_cb(rd_kafka_conf_t *conf, void (*throttle_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int throttle_time_ms, void *opaque));
void rd_kafka_conf_set_log_cb(rd_kafka_conf_t *conf, void (*log_cb)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_conf_set_stats_cb(rd_kafka_conf_t *conf, int (*stats_cb)(rd_kafka_t *rk, char *json, size_t json_len, void *opaque));
void rd_kafka_conf_set_oauthbearer_token_refresh_cb(rd_kafka_conf_t *conf, void (*oauthbearer_token_refresh_cb)(rd_kafka_t *rk, const char *oauthbearer_config, void *opaque));
void rd_kafka_conf_set_socket_cb(rd_kafka_conf_t *conf, int (*socket_cb)(int domain, int type, int protocol, void *opaque));
void rd_kafka_conf_set_connect_cb(rd_kafka_conf_t *conf, int (*connect_cb)(int sockfd, const struct sockaddr *addr, int addrlen, const char *id, void *opaque));
void rd_kafka_conf_set_closesocket_cb(rd_kafka_conf_t *conf, int (*closesocket_cb)(int sockfd, void *opaque));
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert_verify_cb(rd_kafka_conf_t *conf, int (*ssl_cert_verify_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int *x509_error, int depth, const char *buf, size_t size, char *errstr, size_t errstr_size, void *opaque));
typedef enum rd_kafka_cert_type_t {
  RD_KAFKA_CERT_PUBLIC_KEY,
  RD_KAFKA_CERT_PRIVATE_KEY,
  RD_KAFKA_CERT_CA,
  RD_KAFKA_CERT__CNT,
} rd_kafka_cert_type_t;
typedef enum rd_kafka_cert_enc_t {
  RD_KAFKA_CERT_ENC_PKCS12,
  RD_KAFKA_CERT_ENC_DER,
  RD_KAFKA_CERT_ENC_PEM,
  RD_KAFKA_CERT_ENC__CNT,
} rd_kafka_cert_enc_t;
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert(rd_kafka_conf_t *conf, rd_kafka_cert_type_t cert_type, rd_kafka_cert_enc_t cert_enc, const void *buffer, size_t size, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_opaque(rd_kafka_conf_t *conf, void *opaque);
void *rd_kafka_opaque(const rd_kafka_t *rk);
void rd_kafka_conf_set_default_topic_conf(rd_kafka_conf_t *conf, rd_kafka_topic_conf_t *tconf);
rd_kafka_conf_res_t rd_kafka_conf_get(const rd_kafka_conf_t *conf, const char *name, char *dest, size_t *dest_size);
rd_kafka_conf_res_t rd_kafka_topic_conf_get(const rd_kafka_topic_conf_t *conf, const char *name, char *dest, size_t *dest_size);
const char **rd_kafka_conf_dump(rd_kafka_conf_t *conf, size_t *cntp);
const char **rd_kafka_topic_conf_dump(rd_kafka_topic_conf_t *conf, size_t *cntp);
void rd_kafka_conf_dump_free(const char **arr, size_t cnt);
void rd_kafka_conf_properties_show(FILE *fp);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_new(void);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_dup(const rd_kafka_topic_conf_t *conf);
rd_kafka_topic_conf_t *rd_kafka_default_topic_conf_dup(rd_kafka_t *rk);
void rd_kafka_topic_conf_destroy(rd_kafka_topic_conf_t *topic_conf);
rd_kafka_conf_res_t rd_kafka_topic_conf_set(rd_kafka_topic_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_topic_conf_set_opaque(rd_kafka_topic_conf_t *conf, void *rkt_opaque);
void rd_kafka_topic_conf_set_partitioner_cb(rd_kafka_topic_conf_t *topic_conf, int32_t (*partitioner)(const rd_kafka_topic_t *rkt, const void *keydata, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque));
void rd_kafka_topic_conf_set_msg_order_cmp(rd_kafka_topic_conf_t *topic_conf, int (*msg_order_cmp)(const rd_kafka_message_t *a, const rd_kafka_message_t *b));
int rd_kafka_topic_partition_available(const rd_kafka_topic_t *rkt, int32_t partition);
int32_t rd_kafka_msg_partitioner_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
rd_kafka_t *rd_kafka_new(rd_kafka_type_t type, rd_kafka_conf_t *conf, char *errstr, size_t errstr_size);
void rd_kafka_destroy(rd_kafka_t *rk);
void rd_kafka_destroy_flags(rd_kafka_t *rk, int flags);
const char *rd_kafka_name(const rd_kafka_t *rk);
rd_kafka_type_t rd_kafka_type(const rd_kafka_t *rk);
char *rd_kafka_memberid(const rd_kafka_t *rk);
char *rd_kafka_clusterid(rd_kafka_t *rk, int timeout_ms);
int32_t rd_kafka_controllerid(rd_kafka_t *rk, int timeout_ms);
rd_kafka_topic_t *rd_kafka_topic_new(rd_kafka_t *rk, const char *topic, rd_kafka_topic_conf_t *conf);
void rd_kafka_topic_destroy(rd_kafka_topic_t *rkt);
const char *rd_kafka_topic_name(const rd_kafka_topic_t *rkt);
void *rd_kafka_topic_opaque(const rd_kafka_topic_t *rkt);
int rd_kafka_poll(rd_kafka_t *rk, int timeout_ms);
void rd_kafka_yield(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_pause_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_resume_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_query_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_get_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high);
rd_kafka_resp_err_t rd_kafka_offsets_for_times(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets, int timeout_ms);
void rd_kafka_mem_free(rd_kafka_t *rk, void *ptr);
rd_kafka_queue_t *rd_kafka_queue_new(rd_kafka_t *rk);
void rd_kafka_queue_destroy(rd_kafka_queue_t *rkqu);
rd_kafka_queue_t *rd_kafka_queue_get_main(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_consumer(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_partition(rd_kafka_t *rk, const char *topic, int32_t partition);
rd_kafka_queue_t *rd_kafka_queue_get_background(rd_kafka_t *rk);
void rd_kafka_queue_forward(rd_kafka_queue_t *src, rd_kafka_queue_t *dst);
rd_kafka_resp_err_t rd_kafka_set_log_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu);
size_t rd_kafka_queue_length(rd_kafka_queue_t *rkqu);
void rd_kafka_queue_io_event_enable(rd_kafka_queue_t *rkqu, int fd, const void *payload, size_t size);
void rd_kafka_queue_cb_event_enable(rd_kafka_queue_t *rkqu, void (*event_cb)(rd_kafka_t *rk, void *qev_opaque), void *qev_opaque);
int rd_kafka_consume_start(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
int rd_kafka_consume_start_queue(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, rd_kafka_queue_t *rkqu);
int rd_kafka_consume_stop(rd_kafka_topic_t *rkt, int32_t partition);
rd_kafka_resp_err_t rd_kafka_seek(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, int timeout_ms);
rd_kafka_message_t *rd_kafka_consume(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms);
ssize_t rd_kafka_consume_batch(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_message_t *rd_kafka_consume_queue(rd_kafka_queue_t *rkqu, int timeout_ms);
ssize_t rd_kafka_consume_batch_queue(rd_kafka_queue_t *rkqu, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback_queue(rd_kafka_queue_t *rkqu, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_offset_store(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
rd_kafka_resp_err_t rd_kafka_offsets_store(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets);
rd_kafka_resp_err_t rd_kafka_subscribe(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *topics);
rd_kafka_resp_err_t rd_kafka_unsubscribe(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_subscription(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **topics);
rd_kafka_message_t *rd_kafka_consumer_poll(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_consumer_close(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_assignment(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **partitions);
rd_kafka_resp_err_t rd_kafka_commit(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, int async);
rd_kafka_resp_err_t rd_kafka_commit_message(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, int async);
rd_kafka_resp_err_t rd_kafka_commit_queue(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_queue_t *rkqu, void (*cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_committed(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_position(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
int rd_kafka_produce(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, void *payload, size_t len, const void *key, size_t keylen, void *msg_opaque);
rd_kafka_resp_err_t rd_kafka_producev(rd_kafka_t *rk, ...);
int rd_kafka_produce_batch(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, rd_kafka_message_t *rkmessages, int message_cnt);
rd_kafka_resp_err_t rd_kafka_flush(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_purge(rd_kafka_t *rk, int purge_flags);
typedef struct rd_kafka_metadata_broker {
  int32_t id;
  char *host;
  int port;
} rd_kafka_metadata_broker_t;
typedef struct rd_kafka_metadata_partition {
  int32_t id;
  rd_kafka_resp_err_t err;
  int32_t leader;
  int replica_cnt;
  int32_t *replicas;
  int isr_cnt;
  int32_t *isrs;
} rd_kafka_metadata_partition_t;
typedef struct rd_kafka_metadata_topic {
  char *topic;
  int partition_cnt;
  struct rd_kafka_metadata_partition *partitions;
  rd_kafka_resp_err_t err;
} rd_kafka_metadata_topic_t;
typedef struct rd_kafka_metadata {
  int broker_cnt;
  struct rd_kafka_metadata_broker *brokers;
  int topic_cnt;
  struct rd_kafka_metadata_topic *topics;
  int32_t orig_broker_id;
  char *orig_broker_name;
} rd_kafka_metadata_t;
rd_kafka_resp_err_t rd_kafka_metadata(rd_kafka_t *rk, int all_topics, rd_kafka_topic_t *only_rkt, const struct rd_kafka_metadata **metadatap, int timeout_ms);
void rd_kafka_metadata_destroy(const struct rd_kafka_metadata *metadata);
struct rd_kafka_group_member_info {
  char *member_id;
  char *client_id;
  char *client_host;
  void *member_metadata;
  int member_metadata_size;
  void *member_assignment;
  int member_assignment_size;
};
struct rd_kafka_group_info {
  struct rd_kafka_metadata_broker broker;
  char *group;
  rd_kafka_resp_err_t err;
  char *state;
  char *protocol_type;
  char *protocol;
  struct rd_kafka_group_member_info *members;
  int member_cnt;
};
struct rd_kafka_group_list {
  struct rd_kafka_group_info *groups;
  int group_cnt;
};
rd_kafka_resp_err_t rd_kafka_list_groups(rd_kafka_t *rk, const char *group, const struct rd_kafka_group_list **grplistp, int timeout_ms);
void rd_kafka_group_list_destroy(const struct rd_kafka_group_list *grplist);
int rd_kafka_brokers_add(rd_kafka_t *rk, const char *brokerlist);
void rd_kafka_set_logger(rd_kafka_t *rk, void (*func)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_set_log_level(rd_kafka_t *rk, int level);
void rd_kafka_log_print(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
void rd_kafka_log_syslog(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
int rd_kafka_outq_len(rd_kafka_t *rk);
void rd_kafka_dump(FILE *fp, rd_kafka_t *rk);
int rd_kafka_thread_cnt(void);
typedef enum rd_kafka_thread_type_t {
  RD_KAFKA_THREAD_MAIN,
  RD_KAFKA_THREAD_BACKGROUND,
  RD_KAFKA_THREAD_BROKER,
} rd_kafka_thread_type_t;
int rd_kafka_wait_destroyed(int timeout_ms);
int rd_kafka_unittest(void);
rd_kafka_resp_err_t rd_kafka_poll_set_consumer(rd_kafka_t *rk);
typedef int rd_kafka_event_type_t;
rd_kafka_event_type_t rd_kafka_event_type(const rd_kafka_event_t *rkev);
const char *rd_kafka_event_name(const rd_kafka_event_t *rkev);
void rd_kafka_event_destroy(rd_kafka_event_t *rkev);
const rd_kafka_message_t *rd_kafka_event_message_next(rd_kafka_event_t *rkev);
size_t rd_kafka_event_message_array(rd_kafka_event_t *rkev, const rd_kafka_message_t **rkmessages, size_t size);
size_t rd_kafka_event_message_count(rd_kafka_event_t *rkev);
const char *rd_kafka_event_config_string(rd_kafka_event_t *rkev);
rd_kafka_resp_err_t rd_kafka_event_error(rd_kafka_event_t *rkev);
const char *rd_kafka_event_error_string(rd_kafka_event_t *rkev);
int rd_kafka_event_error_is_fatal(rd_kafka_event_t *rkev);
void *rd_kafka_event_opaque(rd_kafka_event_t *rkev);
int rd_kafka_event_log(rd_kafka_event_t *rkev, const char **fac, const char **str, int *level);
const char *rd_kafka_event_stats(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_list_t *rd_kafka_event_topic_partition_list(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_t *rd_kafka_event_topic_partition(rd_kafka_event_t *rkev);
typedef rd_kafka_event_t rd_kafka_CreateTopics_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteTopics_result_t;
typedef rd_kafka_event_t rd_kafka_CreatePartitions_result_t;
typedef rd_kafka_event_t rd_kafka_AlterConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeConfigs_result_t;
const rd_kafka_CreateTopics_result_t *rd_kafka_event_CreateTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteTopics_result_t *rd_kafka_event_DeleteTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_CreatePartitions_result_t *rd_kafka_event_CreatePartitions_result(rd_kafka_event_t *rkev);
const rd_kafka_AlterConfigs_result_t *rd_kafka_event_AlterConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeConfigs_result_t *rd_kafka_event_DescribeConfigs_result(rd_kafka_event_t *rkev);
rd_kafka_event_t *rd_kafka_queue_poll(rd_kafka_queue_t *rkqu, int timeout_ms);
int rd_kafka_queue_poll_callback(rd_kafka_queue_t *rkqu, int timeout_ms);
typedef rd_kafka_resp_err_t (rd_kafka_plugin_f_conf_init_t)(rd_kafka_conf_t *conf, void **plug_opaquep, char *errstr, size_t errstr_size);
typedef rd_kafka_conf_res_t (rd_kafka_interceptor_f_on_conf_set_t)(rd_kafka_conf_t *conf, const char *name, const char *val, char *errstr, size_t errstr_size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_dup_t)(rd_kafka_conf_t *new_conf, const rd_kafka_conf_t *old_conf, size_t filter_cnt, const char **filter, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_destroy_t)(void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_new_t)(rd_kafka_t *rk, const rd_kafka_conf_t *conf, void *ic_opaque, char *errstr, size_t errstr_size);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_destroy_t)(rd_kafka_t *rk, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_send_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_acknowledgement_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_consume_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_commit_t)(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_request_sent_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_start_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_exit_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_set(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_set_t *on_conf_set, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_dup(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_dup_t *on_conf_dup, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_destroy(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_destroy_t *on_conf_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_new(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_new_t *on_new, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_destroy(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_destroy_t *on_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_send(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_send_t *on_send, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_acknowledgement(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_acknowledgement_t *on_acknowledgement, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_consume(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_consume_t *on_consume, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_commit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_commit_t *on_commit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_request_sent(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_request_sent_t *on_request_sent, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_start(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_start_t *on_thread_start, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_exit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_exit_t *on_thread_exit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_topic_result_error(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_error_string(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_name(const rd_kafka_topic_result_t *topicres);
typedef enum rd_kafka_admin_op_t {
  RD_KAFKA_ADMIN_OP_ANY = 0,
  RD_KAFKA_ADMIN_OP_CREATETOPICS,
  RD_KAFKA_ADMIN_OP_DELETETOPICS,
  RD_KAFKA_ADMIN_OP_CREATEPARTITIONS,
  RD_KAFKA_ADMIN_OP_ALTERCONFIGS,
  RD_KAFKA_ADMIN_OP_DESCRIBECONFIGS,
  RD_KAFKA_ADMIN_OP__CNT,
} rd_kafka_admin_op_t;
typedef struct rd_kafka_AdminOptions_s rd_kafka_AdminOptions_t;
rd_kafka_AdminOptions_t *rd_kafka_AdminOptions_new(rd_kafka_t *rk, rd_kafka_admin_op_t for_api);
void rd_kafka_AdminOptions_destroy(rd_kafka_AdminOptions_t *options);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_request_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_operation_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_validate_only(rd_kafka_AdminOptions_t *options, int true_or_false, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_broker(rd_kafka_AdminOptions_t *options, int32_t broker_id, char *errstr, size_t errstr_size);
void rd_kafka_AdminOptions_set_opaque(rd_kafka_AdminOptions_t *options, void *ev_opaque);
typedef struct rd_kafka_NewTopic_s rd_kafka_NewTopic_t;
rd_kafka_NewTopic_t *rd_kafka_NewTopic_new(const char *topic, int num_partitions, int replication_factor, char *errstr, size_t errstr_size);
void rd_kafka_NewTopic_destroy(rd_kafka_NewTopic_t *new_topic);
void rd_kafka_NewTopic_destroy_array(rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_replica_assignment(rd_kafka_NewTopic_t *new_topic, int32_t partition, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_config(rd_kafka_NewTopic_t *new_topic, const char *name, const char *value);
void rd_kafka_CreateTopics(rd_kafka_t *rk, rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreateTopics_result_topics(const rd_kafka_CreateTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteTopic_s rd_kafka_DeleteTopic_t;
rd_kafka_DeleteTopic_t *rd_kafka_DeleteTopic_new(const char *topic);
void rd_kafka_DeleteTopic_destroy(rd_kafka_DeleteTopic_t *del_topic);
void rd_kafka_DeleteTopic_destroy_array(rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt);
void rd_kafka_DeleteTopics(rd_kafka_t *rk, rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_DeleteTopics_result_topics(const rd_kafka_DeleteTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_NewPartitions_s rd_kafka_NewPartitions_t;
rd_kafka_NewPartitions_t *rd_kafka_NewPartitions_new(const char *topic, size_t new_total_cnt, char *errstr, size_t errstr_size);
void rd_kafka_NewPartitions_destroy(rd_kafka_NewPartitions_t *new_parts);
void rd_kafka_NewPartitions_destroy_array(rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt);
rd_kafka_resp_err_t rd_kafka_NewPartitions_set_replica_assignment(rd_kafka_NewPartitions_t *new_parts, int32_t new_partition_idx, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
void rd_kafka_CreatePartitions(rd_kafka_t *rk, rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreatePartitions_result_topics(const rd_kafka_CreatePartitions_result_t *result, size_t *cntp);
typedef enum rd_kafka_ConfigSource_t {
  RD_KAFKA_CONFIG_SOURCE_UNKNOWN_CONFIG = 0,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG = 1,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG = 2,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG = 3,
  RD_KAFKA_CONFIG_SOURCE_STATIC_BROKER_CONFIG = 4,
  RD_KAFKA_CONFIG_SOURCE_DEFAULT_CONFIG = 5,
  RD_KAFKA_CONFIG_SOURCE__CNT,
} rd_kafka_ConfigSource_t;
const char *rd_kafka_ConfigSource_name(rd_kafka_ConfigSource_t confsource);
typedef struct rd_kafka_ConfigEntry_s rd_kafka_ConfigEntry_t;
const char *rd_kafka_ConfigEntry_name(const rd_kafka_ConfigEntry_t *entry);
const char *rd_kafka_ConfigEntry_value(const rd_kafka_ConfigEntry_t *entry);
rd_kafka_ConfigSource_t rd_kafka_ConfigEntry_source(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_read_only(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_default(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_sensitive(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_synonym(const rd_kafka_ConfigEntry_t *entry);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigEntry_synonyms(const rd_kafka_ConfigEntry_t *entry, size_t *cntp);
typedef enum rd_kafka_ResourceType_t {
  RD_KAFKA_RESOURCE_UNKNOWN = 0,
  RD_KAFKA_RESOURCE_ANY = 1,
  RD_KAFKA_RESOURCE_TOPIC = 2,
  RD_KAFKA_RESOURCE_GROUP = 3,
  RD_KAFKA_RESOURCE_BROKER = 4,
  RD_KAFKA_RESOURCE__CNT,
} rd_kafka_ResourceType_t;
const char *rd_kafka_ResourceType_name(rd_kafka_ResourceType_t restype);
typedef struct rd_kafka_ConfigResource_s rd_kafka_ConfigResource_t;
rd_kafka_ConfigResource_t *rd_kafka_ConfigResource_new(rd_kafka_ResourceType_t restype, const char *resname);
void rd_kafka_ConfigResource_destroy(rd_kafka_ConfigResource_t *config);
void rd_kafka_ConfigResource_destroy_array(rd_kafka_ConfigResource_t **config, size_t config_cnt);
rd_kafka_resp_err_t rd_kafka_ConfigResource_set_config(rd_kafka_ConfigResource_t *config, const char *name, const char *value);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigResource_configs(const rd_kafka_ConfigResource_t *config, size_t *cntp);
rd_kafka_ResourceType_t rd_kafka_ConfigResource_type(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_name(const rd_kafka_ConfigResource_t *config);
rd_kafka_resp_err_t rd_kafka_ConfigResource_error(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_error_string(const rd_kafka_ConfigResource_t *config);
void rd_kafka_AlterConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_AlterConfigs_result_resources(const rd_kafka_AlterConfigs_result_t *result, size_t *cntp);
void rd_kafka_DescribeConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_DescribeConfigs_result_resources(const rd_kafka_DescribeConfigs_result_t *result, size_t *cntp);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token(rd_kafka_t *rk, const char *token_value, int64_t md_lifetime_ms, const char *md_principal_name, const char **extensions, size_t extension_size, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token_failure(rd_kafka_t *rk, const char *errstr);
'
rdkafka.h, rdkafka_mock.h

RD_KAFKA_VERSION

public RD_KAFKA_VERSION = 16909055

librdkafka version

Interpreted as hex MM.mm.rr.xx:

  • MM = Major
  • mm = minor
  • rr = revision
  • xx = pre-release id (0xff is the final release)

E.g.: 0x000801ff = 0.8.1

Remarks
This value should only be used during compile time, for runtime checks of version use rd_kafka_version()

RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE

public RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76

Unsupported compression type

RD_KAFKA_RESP_ERR_END_ALL

public RD_KAFKA_RESP_ERR_END_ALL = 82
enum rd_kafka_resp_err_t

RD_KAFKA_ADMIN_OP__CNT

public RD_KAFKA_ADMIN_OP__CNT = 6

Number of ops defined

RD_KAFKA_CDEF

public RD_KAFKA_CDEF = 'typedef long int ssize_t;
typedef struct _IO_FILE FILE;
typedef long int mode_t;
typedef signed int int16_t;
typedef unsigned int uint16_t;
typedef signed int int32_t;
typedef signed long int int64_t;
int rd_kafka_version(void);
const char *rd_kafka_version_str(void);
typedef enum rd_kafka_type_t {
  RD_KAFKA_PRODUCER,
  RD_KAFKA_CONSUMER,
} rd_kafka_type_t;
typedef enum rd_kafka_timestamp_type_t {
  RD_KAFKA_TIMESTAMP_NOT_AVAILABLE,
  RD_KAFKA_TIMESTAMP_CREATE_TIME,
  RD_KAFKA_TIMESTAMP_LOG_APPEND_TIME,
} rd_kafka_timestamp_type_t;
const char *rd_kafka_get_debug_contexts(void);
typedef struct rd_kafka_s rd_kafka_t;
typedef struct rd_kafka_topic_s rd_kafka_topic_t;
typedef struct rd_kafka_conf_s rd_kafka_conf_t;
typedef struct rd_kafka_topic_conf_s rd_kafka_topic_conf_t;
typedef struct rd_kafka_queue_s rd_kafka_queue_t;
typedef struct rd_kafka_op_s rd_kafka_event_t;
typedef struct rd_kafka_topic_result_s rd_kafka_topic_result_t;
typedef enum {
  RD_KAFKA_RESP_ERR__BEGIN = (- 200),
  RD_KAFKA_RESP_ERR__BAD_MSG = (- 199),
  RD_KAFKA_RESP_ERR__BAD_COMPRESSION = (- 198),
  RD_KAFKA_RESP_ERR__DESTROY = (- 197),
  RD_KAFKA_RESP_ERR__FAIL = (- 196),
  RD_KAFKA_RESP_ERR__TRANSPORT = (- 195),
  RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE = (- 194),
  RD_KAFKA_RESP_ERR__RESOLVE = (- 193),
  RD_KAFKA_RESP_ERR__MSG_TIMED_OUT = (- 192),
  RD_KAFKA_RESP_ERR__PARTITION_EOF = (- 191),
  RD_KAFKA_RESP_ERR__UNKNOWN_PARTITION = (- 190),
  RD_KAFKA_RESP_ERR__FS = (- 189),
  RD_KAFKA_RESP_ERR__UNKNOWN_TOPIC = (- 188),
  RD_KAFKA_RESP_ERR__ALL_BROKERS_DOWN = (- 187),
  RD_KAFKA_RESP_ERR__INVALID_ARG = (- 186),
  RD_KAFKA_RESP_ERR__TIMED_OUT = (- 185),
  RD_KAFKA_RESP_ERR__QUEUE_FULL = (- 184),
  RD_KAFKA_RESP_ERR__ISR_INSUFF = (- 183),
  RD_KAFKA_RESP_ERR__NODE_UPDATE = (- 182),
  RD_KAFKA_RESP_ERR__SSL = (- 181),
  RD_KAFKA_RESP_ERR__WAIT_COORD = (- 180),
  RD_KAFKA_RESP_ERR__UNKNOWN_GROUP = (- 179),
  RD_KAFKA_RESP_ERR__IN_PROGRESS = (- 178),
  RD_KAFKA_RESP_ERR__PREV_IN_PROGRESS = (- 177),
  RD_KAFKA_RESP_ERR__EXISTING_SUBSCRIPTION = (- 176),
  RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS = (- 175),
  RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS = (- 174),
  RD_KAFKA_RESP_ERR__CONFLICT = (- 173),
  RD_KAFKA_RESP_ERR__STATE = (- 172),
  RD_KAFKA_RESP_ERR__UNKNOWN_PROTOCOL = (- 171),
  RD_KAFKA_RESP_ERR__NOT_IMPLEMENTED = (- 170),
  RD_KAFKA_RESP_ERR__AUTHENTICATION = (- 169),
  RD_KAFKA_RESP_ERR__NO_OFFSET = (- 168),
  RD_KAFKA_RESP_ERR__OUTDATED = (- 167),
  RD_KAFKA_RESP_ERR__TIMED_OUT_QUEUE = (- 166),
  RD_KAFKA_RESP_ERR__UNSUPPORTED_FEATURE = (- 165),
  RD_KAFKA_RESP_ERR__WAIT_CACHE = (- 164),
  RD_KAFKA_RESP_ERR__INTR = (- 163),
  RD_KAFKA_RESP_ERR__KEY_SERIALIZATION = (- 162),
  RD_KAFKA_RESP_ERR__VALUE_SERIALIZATION = (- 161),
  RD_KAFKA_RESP_ERR__KEY_DESERIALIZATION = (- 160),
  RD_KAFKA_RESP_ERR__VALUE_DESERIALIZATION = (- 159),
  RD_KAFKA_RESP_ERR__PARTIAL = (- 158),
  RD_KAFKA_RESP_ERR__READ_ONLY = (- 157),
  RD_KAFKA_RESP_ERR__NOENT = (- 156),
  RD_KAFKA_RESP_ERR__UNDERFLOW = (- 155),
  RD_KAFKA_RESP_ERR__INVALID_TYPE = (- 154),
  RD_KAFKA_RESP_ERR__RETRY = (- 153),
  RD_KAFKA_RESP_ERR__PURGE_QUEUE = (- 152),
  RD_KAFKA_RESP_ERR__PURGE_INFLIGHT = (- 151),
  RD_KAFKA_RESP_ERR__FATAL = (- 150),
  RD_KAFKA_RESP_ERR__INCONSISTENT = (- 149),
  RD_KAFKA_RESP_ERR__GAPLESS_GUARANTEE = (- 148),
  RD_KAFKA_RESP_ERR__MAX_POLL_EXCEEDED = (- 147),
  RD_KAFKA_RESP_ERR__END = (- 100),
  RD_KAFKA_RESP_ERR_UNKNOWN = (- 1),
  RD_KAFKA_RESP_ERR_NO_ERROR = 0,
  RD_KAFKA_RESP_ERR_OFFSET_OUT_OF_RANGE = 1,
  RD_KAFKA_RESP_ERR_INVALID_MSG = 2,
  RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_OR_PART = 3,
  RD_KAFKA_RESP_ERR_INVALID_MSG_SIZE = 4,
  RD_KAFKA_RESP_ERR_LEADER_NOT_AVAILABLE = 5,
  RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION = 6,
  RD_KAFKA_RESP_ERR_REQUEST_TIMED_OUT = 7,
  RD_KAFKA_RESP_ERR_BROKER_NOT_AVAILABLE = 8,
  RD_KAFKA_RESP_ERR_REPLICA_NOT_AVAILABLE = 9,
  RD_KAFKA_RESP_ERR_MSG_SIZE_TOO_LARGE = 10,
  RD_KAFKA_RESP_ERR_STALE_CTRL_EPOCH = 11,
  RD_KAFKA_RESP_ERR_OFFSET_METADATA_TOO_LARGE = 12,
  RD_KAFKA_RESP_ERR_NETWORK_EXCEPTION = 13,
  RD_KAFKA_RESP_ERR_GROUP_LOAD_IN_PROGRESS = 14,
  RD_KAFKA_RESP_ERR_GROUP_COORDINATOR_NOT_AVAILABLE = 15,
  RD_KAFKA_RESP_ERR_NOT_COORDINATOR_FOR_GROUP = 16,
  RD_KAFKA_RESP_ERR_TOPIC_EXCEPTION = 17,
  RD_KAFKA_RESP_ERR_RECORD_LIST_TOO_LARGE = 18,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS = 19,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS_AFTER_APPEND = 20,
  RD_KAFKA_RESP_ERR_INVALID_REQUIRED_ACKS = 21,
  RD_KAFKA_RESP_ERR_ILLEGAL_GENERATION = 22,
  RD_KAFKA_RESP_ERR_INCONSISTENT_GROUP_PROTOCOL = 23,
  RD_KAFKA_RESP_ERR_INVALID_GROUP_ID = 24,
  RD_KAFKA_RESP_ERR_UNKNOWN_MEMBER_ID = 25,
  RD_KAFKA_RESP_ERR_INVALID_SESSION_TIMEOUT = 26,
  RD_KAFKA_RESP_ERR_REBALANCE_IN_PROGRESS = 27,
  RD_KAFKA_RESP_ERR_INVALID_COMMIT_OFFSET_SIZE = 28,
  RD_KAFKA_RESP_ERR_TOPIC_AUTHORIZATION_FAILED = 29,
  RD_KAFKA_RESP_ERR_GROUP_AUTHORIZATION_FAILED = 30,
  RD_KAFKA_RESP_ERR_CLUSTER_AUTHORIZATION_FAILED = 31,
  RD_KAFKA_RESP_ERR_INVALID_TIMESTAMP = 32,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_SASL_MECHANISM = 33,
  RD_KAFKA_RESP_ERR_ILLEGAL_SASL_STATE = 34,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_VERSION = 35,
  RD_KAFKA_RESP_ERR_TOPIC_ALREADY_EXISTS = 36,
  RD_KAFKA_RESP_ERR_INVALID_PARTITIONS = 37,
  RD_KAFKA_RESP_ERR_INVALID_REPLICATION_FACTOR = 38,
  RD_KAFKA_RESP_ERR_INVALID_REPLICA_ASSIGNMENT = 39,
  RD_KAFKA_RESP_ERR_INVALID_CONFIG = 40,
  RD_KAFKA_RESP_ERR_NOT_CONTROLLER = 41,
  RD_KAFKA_RESP_ERR_INVALID_REQUEST = 42,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_FOR_MESSAGE_FORMAT = 43,
  RD_KAFKA_RESP_ERR_POLICY_VIOLATION = 44,
  RD_KAFKA_RESP_ERR_OUT_OF_ORDER_SEQUENCE_NUMBER = 45,
  RD_KAFKA_RESP_ERR_DUPLICATE_SEQUENCE_NUMBER = 46,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_EPOCH = 47,
  RD_KAFKA_RESP_ERR_INVALID_TXN_STATE = 48,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_ID_MAPPING = 49,
  RD_KAFKA_RESP_ERR_INVALID_TRANSACTION_TIMEOUT = 50,
  RD_KAFKA_RESP_ERR_CONCURRENT_TRANSACTIONS = 51,
  RD_KAFKA_RESP_ERR_TRANSACTION_COORDINATOR_FENCED = 52,
  RD_KAFKA_RESP_ERR_TRANSACTIONAL_ID_AUTHORIZATION_FAILED = 53,
  RD_KAFKA_RESP_ERR_SECURITY_DISABLED = 54,
  RD_KAFKA_RESP_ERR_OPERATION_NOT_ATTEMPTED = 55,
  RD_KAFKA_RESP_ERR_KAFKA_STORAGE_ERROR = 56,
  RD_KAFKA_RESP_ERR_LOG_DIR_NOT_FOUND = 57,
  RD_KAFKA_RESP_ERR_SASL_AUTHENTICATION_FAILED = 58,
  RD_KAFKA_RESP_ERR_UNKNOWN_PRODUCER_ID = 59,
  RD_KAFKA_RESP_ERR_REASSIGNMENT_IN_PROGRESS = 60,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTH_DISABLED = 61,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_NOT_FOUND = 62,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_OWNER_MISMATCH = 63,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_REQUEST_NOT_ALLOWED = 64,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTHORIZATION_FAILED = 65,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_EXPIRED = 66,
  RD_KAFKA_RESP_ERR_INVALID_PRINCIPAL_TYPE = 67,
  RD_KAFKA_RESP_ERR_NON_EMPTY_GROUP = 68,
  RD_KAFKA_RESP_ERR_GROUP_ID_NOT_FOUND = 69,
  RD_KAFKA_RESP_ERR_FETCH_SESSION_ID_NOT_FOUND = 70,
  RD_KAFKA_RESP_ERR_INVALID_FETCH_SESSION_EPOCH = 71,
  RD_KAFKA_RESP_ERR_LISTENER_NOT_FOUND = 72,
  RD_KAFKA_RESP_ERR_TOPIC_DELETION_DISABLED = 73,
  RD_KAFKA_RESP_ERR_FENCED_LEADER_EPOCH = 74,
  RD_KAFKA_RESP_ERR_UNKNOWN_LEADER_EPOCH = 75,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76,
  RD_KAFKA_RESP_ERR_STALE_BROKER_EPOCH = 77,
  RD_KAFKA_RESP_ERR_OFFSET_NOT_AVAILABLE = 78,
  RD_KAFKA_RESP_ERR_MEMBER_ID_REQUIRED = 79,
  RD_KAFKA_RESP_ERR_PREFERRED_LEADER_NOT_AVAILABLE = 80,
  RD_KAFKA_RESP_ERR_GROUP_MAX_SIZE_REACHED = 81,
  RD_KAFKA_RESP_ERR_END_ALL,
} rd_kafka_resp_err_t;
struct rd_kafka_err_desc {
  rd_kafka_resp_err_t code;
  char *name;
  char *desc;
};
void rd_kafka_get_err_descs(const struct rd_kafka_err_desc **errdescs, size_t *cntp);
const char *rd_kafka_err2str(rd_kafka_resp_err_t err);
const char *rd_kafka_err2name(rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_last_error(void);
rd_kafka_resp_err_t rd_kafka_errno2err(int errnox);
int rd_kafka_errno(void);
rd_kafka_resp_err_t rd_kafka_fatal_error(rd_kafka_t *rk, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_test_fatal_error(rd_kafka_t *rk, rd_kafka_resp_err_t err, const char *reason);
typedef struct rd_kafka_topic_partition_s {
  char *topic;
  int32_t partition;
  int64_t offset;
  void *metadata;
  size_t metadata_size;
  void *opaque;
  rd_kafka_resp_err_t err;
  void *_private;
} rd_kafka_topic_partition_t;
void rd_kafka_topic_partition_destroy(rd_kafka_topic_partition_t *rktpar);
typedef struct rd_kafka_topic_partition_list_s {
  int cnt;
  int size;
  rd_kafka_topic_partition_t *elems;
} rd_kafka_topic_partition_list_t;
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_new(int size);
void rd_kafka_topic_partition_list_destroy(rd_kafka_topic_partition_list_t *rkparlist);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_add(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_add_range(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t start, int32_t stop);
int rd_kafka_topic_partition_list_del(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
int rd_kafka_topic_partition_list_del_by_idx(rd_kafka_topic_partition_list_t *rktparlist, int idx);
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_copy(const rd_kafka_topic_partition_list_t *src);
rd_kafka_resp_err_t rd_kafka_topic_partition_list_set_offset(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition, int64_t offset);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_find(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_sort(rd_kafka_topic_partition_list_t *rktparlist, int (*cmp)(const void *a, const void *b, void *cmp_opaque), void *cmp_opaque);
typedef enum rd_kafka_vtype_t {
  RD_KAFKA_VTYPE_END,
  RD_KAFKA_VTYPE_TOPIC,
  RD_KAFKA_VTYPE_RKT,
  RD_KAFKA_VTYPE_PARTITION,
  RD_KAFKA_VTYPE_VALUE,
  RD_KAFKA_VTYPE_KEY,
  RD_KAFKA_VTYPE_OPAQUE,
  RD_KAFKA_VTYPE_MSGFLAGS,
  RD_KAFKA_VTYPE_TIMESTAMP,
  RD_KAFKA_VTYPE_HEADER,
  RD_KAFKA_VTYPE_HEADERS,
} rd_kafka_vtype_t;
typedef struct rd_kafka_headers_s rd_kafka_headers_t;
rd_kafka_headers_t *rd_kafka_headers_new(size_t initial_count);
void rd_kafka_headers_destroy(rd_kafka_headers_t *hdrs);
rd_kafka_headers_t *rd_kafka_headers_copy(const rd_kafka_headers_t *src);
rd_kafka_resp_err_t rd_kafka_header_add(rd_kafka_headers_t *hdrs, const char *name, ssize_t name_size, const void *value, ssize_t value_size);
rd_kafka_resp_err_t rd_kafka_header_remove(rd_kafka_headers_t *hdrs, const char *name);
rd_kafka_resp_err_t rd_kafka_header_get_last(const rd_kafka_headers_t *hdrs, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get(const rd_kafka_headers_t *hdrs, size_t idx, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get_all(const rd_kafka_headers_t *hdrs, size_t idx, const char **namep, const void **valuep, size_t *sizep);
typedef struct rd_kafka_message_s {
  rd_kafka_resp_err_t err;
  rd_kafka_topic_t *rkt;
  int32_t partition;
  void *payload;
  size_t len;
  void *key;
  size_t key_len;
  int64_t offset;
  void *_private;
} rd_kafka_message_t;
void rd_kafka_message_destroy(rd_kafka_message_t *rkmessage);
int64_t rd_kafka_message_timestamp(const rd_kafka_message_t *rkmessage, rd_kafka_timestamp_type_t *tstype);
int64_t rd_kafka_message_latency(const rd_kafka_message_t *rkmessage);
rd_kafka_resp_err_t rd_kafka_message_headers(const rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
rd_kafka_resp_err_t rd_kafka_message_detach_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
void rd_kafka_message_set_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t *hdrs);
size_t rd_kafka_header_cnt(const rd_kafka_headers_t *hdrs);
typedef enum {
  RD_KAFKA_MSG_STATUS_NOT_PERSISTED = 0,
  RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED = 1,
  RD_KAFKA_MSG_STATUS_PERSISTED = 2,
} rd_kafka_msg_status_t;
rd_kafka_msg_status_t rd_kafka_message_status(const rd_kafka_message_t *rkmessage);
typedef enum {
  RD_KAFKA_CONF_UNKNOWN = (- 2),
  RD_KAFKA_CONF_INVALID = (- 1),
  RD_KAFKA_CONF_OK = 0,
} rd_kafka_conf_res_t;
rd_kafka_conf_t *rd_kafka_conf_new(void);
void rd_kafka_conf_destroy(rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup(const rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup_filter(const rd_kafka_conf_t *conf, size_t filter_cnt, const char **filter);
const rd_kafka_conf_t *rd_kafka_conf(rd_kafka_t *rk);
rd_kafka_conf_res_t rd_kafka_conf_set(rd_kafka_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_events(rd_kafka_conf_t *conf, int events);
void rd_kafka_conf_set_background_event_cb(rd_kafka_conf_t *conf, void (*event_cb)(rd_kafka_t *rk, rd_kafka_event_t *rkev, void *opaque));
void rd_kafka_conf_set_dr_cb(rd_kafka_conf_t *conf, void (*dr_cb)(rd_kafka_t *rk, void *payload, size_t len, rd_kafka_resp_err_t err, void *opaque, void *msg_opaque));
void rd_kafka_conf_set_dr_msg_cb(rd_kafka_conf_t *conf, void (*dr_msg_cb)(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_consume_cb(rd_kafka_conf_t *conf, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_rebalance_cb(rd_kafka_conf_t *conf, void (*rebalance_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *partitions, void *opaque));
void rd_kafka_conf_set_offset_commit_cb(rd_kafka_conf_t *conf, void (*offset_commit_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *opaque));
void rd_kafka_conf_set_error_cb(rd_kafka_conf_t *conf, void (*error_cb)(rd_kafka_t *rk, int err, const char *reason, void *opaque));
void rd_kafka_conf_set_throttle_cb(rd_kafka_conf_t *conf, void (*throttle_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int throttle_time_ms, void *opaque));
void rd_kafka_conf_set_log_cb(rd_kafka_conf_t *conf, void (*log_cb)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_conf_set_stats_cb(rd_kafka_conf_t *conf, int (*stats_cb)(rd_kafka_t *rk, char *json, size_t json_len, void *opaque));
void rd_kafka_conf_set_oauthbearer_token_refresh_cb(rd_kafka_conf_t *conf, void (*oauthbearer_token_refresh_cb)(rd_kafka_t *rk, const char *oauthbearer_config, void *opaque));
void rd_kafka_conf_set_socket_cb(rd_kafka_conf_t *conf, int (*socket_cb)(int domain, int type, int protocol, void *opaque));
void rd_kafka_conf_set_connect_cb(rd_kafka_conf_t *conf, int (*connect_cb)(int sockfd, const struct sockaddr *addr, int addrlen, const char *id, void *opaque));
void rd_kafka_conf_set_closesocket_cb(rd_kafka_conf_t *conf, int (*closesocket_cb)(int sockfd, void *opaque));
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert_verify_cb(rd_kafka_conf_t *conf, int (*ssl_cert_verify_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int *x509_error, int depth, const char *buf, size_t size, char *errstr, size_t errstr_size, void *opaque));
typedef enum rd_kafka_cert_type_t {
  RD_KAFKA_CERT_PUBLIC_KEY,
  RD_KAFKA_CERT_PRIVATE_KEY,
  RD_KAFKA_CERT_CA,
  RD_KAFKA_CERT__CNT,
} rd_kafka_cert_type_t;
typedef enum rd_kafka_cert_enc_t {
  RD_KAFKA_CERT_ENC_PKCS12,
  RD_KAFKA_CERT_ENC_DER,
  RD_KAFKA_CERT_ENC_PEM,
  RD_KAFKA_CERT_ENC__CNT,
} rd_kafka_cert_enc_t;
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert(rd_kafka_conf_t *conf, rd_kafka_cert_type_t cert_type, rd_kafka_cert_enc_t cert_enc, const void *buffer, size_t size, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_opaque(rd_kafka_conf_t *conf, void *opaque);
void *rd_kafka_opaque(const rd_kafka_t *rk);
void rd_kafka_conf_set_default_topic_conf(rd_kafka_conf_t *conf, rd_kafka_topic_conf_t *tconf);
rd_kafka_conf_res_t rd_kafka_conf_get(const rd_kafka_conf_t *conf, const char *name, char *dest, size_t *dest_size);
rd_kafka_conf_res_t rd_kafka_topic_conf_get(const rd_kafka_topic_conf_t *conf, const char *name, char *dest, size_t *dest_size);
const char **rd_kafka_conf_dump(rd_kafka_conf_t *conf, size_t *cntp);
const char **rd_kafka_topic_conf_dump(rd_kafka_topic_conf_t *conf, size_t *cntp);
void rd_kafka_conf_dump_free(const char **arr, size_t cnt);
void rd_kafka_conf_properties_show(FILE *fp);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_new(void);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_dup(const rd_kafka_topic_conf_t *conf);
rd_kafka_topic_conf_t *rd_kafka_default_topic_conf_dup(rd_kafka_t *rk);
void rd_kafka_topic_conf_destroy(rd_kafka_topic_conf_t *topic_conf);
rd_kafka_conf_res_t rd_kafka_topic_conf_set(rd_kafka_topic_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_topic_conf_set_opaque(rd_kafka_topic_conf_t *conf, void *rkt_opaque);
void rd_kafka_topic_conf_set_partitioner_cb(rd_kafka_topic_conf_t *topic_conf, int32_t (*partitioner)(const rd_kafka_topic_t *rkt, const void *keydata, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque));
void rd_kafka_topic_conf_set_msg_order_cmp(rd_kafka_topic_conf_t *topic_conf, int (*msg_order_cmp)(const rd_kafka_message_t *a, const rd_kafka_message_t *b));
int rd_kafka_topic_partition_available(const rd_kafka_topic_t *rkt, int32_t partition);
int32_t rd_kafka_msg_partitioner_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
rd_kafka_t *rd_kafka_new(rd_kafka_type_t type, rd_kafka_conf_t *conf, char *errstr, size_t errstr_size);
void rd_kafka_destroy(rd_kafka_t *rk);
void rd_kafka_destroy_flags(rd_kafka_t *rk, int flags);
const char *rd_kafka_name(const rd_kafka_t *rk);
rd_kafka_type_t rd_kafka_type(const rd_kafka_t *rk);
char *rd_kafka_memberid(const rd_kafka_t *rk);
char *rd_kafka_clusterid(rd_kafka_t *rk, int timeout_ms);
int32_t rd_kafka_controllerid(rd_kafka_t *rk, int timeout_ms);
rd_kafka_topic_t *rd_kafka_topic_new(rd_kafka_t *rk, const char *topic, rd_kafka_topic_conf_t *conf);
void rd_kafka_topic_destroy(rd_kafka_topic_t *rkt);
const char *rd_kafka_topic_name(const rd_kafka_topic_t *rkt);
void *rd_kafka_topic_opaque(const rd_kafka_topic_t *rkt);
int rd_kafka_poll(rd_kafka_t *rk, int timeout_ms);
void rd_kafka_yield(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_pause_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_resume_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_query_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_get_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high);
rd_kafka_resp_err_t rd_kafka_offsets_for_times(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets, int timeout_ms);
void rd_kafka_mem_free(rd_kafka_t *rk, void *ptr);
rd_kafka_queue_t *rd_kafka_queue_new(rd_kafka_t *rk);
void rd_kafka_queue_destroy(rd_kafka_queue_t *rkqu);
rd_kafka_queue_t *rd_kafka_queue_get_main(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_consumer(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_partition(rd_kafka_t *rk, const char *topic, int32_t partition);
rd_kafka_queue_t *rd_kafka_queue_get_background(rd_kafka_t *rk);
void rd_kafka_queue_forward(rd_kafka_queue_t *src, rd_kafka_queue_t *dst);
rd_kafka_resp_err_t rd_kafka_set_log_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu);
size_t rd_kafka_queue_length(rd_kafka_queue_t *rkqu);
void rd_kafka_queue_io_event_enable(rd_kafka_queue_t *rkqu, int fd, const void *payload, size_t size);
void rd_kafka_queue_cb_event_enable(rd_kafka_queue_t *rkqu, void (*event_cb)(rd_kafka_t *rk, void *qev_opaque), void *qev_opaque);
int rd_kafka_consume_start(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
int rd_kafka_consume_start_queue(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, rd_kafka_queue_t *rkqu);
int rd_kafka_consume_stop(rd_kafka_topic_t *rkt, int32_t partition);
rd_kafka_resp_err_t rd_kafka_seek(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, int timeout_ms);
rd_kafka_message_t *rd_kafka_consume(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms);
ssize_t rd_kafka_consume_batch(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_message_t *rd_kafka_consume_queue(rd_kafka_queue_t *rkqu, int timeout_ms);
ssize_t rd_kafka_consume_batch_queue(rd_kafka_queue_t *rkqu, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback_queue(rd_kafka_queue_t *rkqu, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_offset_store(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
rd_kafka_resp_err_t rd_kafka_offsets_store(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets);
rd_kafka_resp_err_t rd_kafka_subscribe(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *topics);
rd_kafka_resp_err_t rd_kafka_unsubscribe(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_subscription(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **topics);
rd_kafka_message_t *rd_kafka_consumer_poll(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_consumer_close(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_assignment(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **partitions);
rd_kafka_resp_err_t rd_kafka_commit(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, int async);
rd_kafka_resp_err_t rd_kafka_commit_message(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, int async);
rd_kafka_resp_err_t rd_kafka_commit_queue(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_queue_t *rkqu, void (*cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_committed(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_position(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
int rd_kafka_produce(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, void *payload, size_t len, const void *key, size_t keylen, void *msg_opaque);
rd_kafka_resp_err_t rd_kafka_producev(rd_kafka_t *rk, ...);
int rd_kafka_produce_batch(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, rd_kafka_message_t *rkmessages, int message_cnt);
rd_kafka_resp_err_t rd_kafka_flush(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_purge(rd_kafka_t *rk, int purge_flags);
typedef struct rd_kafka_metadata_broker {
  int32_t id;
  char *host;
  int port;
} rd_kafka_metadata_broker_t;
typedef struct rd_kafka_metadata_partition {
  int32_t id;
  rd_kafka_resp_err_t err;
  int32_t leader;
  int replica_cnt;
  int32_t *replicas;
  int isr_cnt;
  int32_t *isrs;
} rd_kafka_metadata_partition_t;
typedef struct rd_kafka_metadata_topic {
  char *topic;
  int partition_cnt;
  struct rd_kafka_metadata_partition *partitions;
  rd_kafka_resp_err_t err;
} rd_kafka_metadata_topic_t;
typedef struct rd_kafka_metadata {
  int broker_cnt;
  struct rd_kafka_metadata_broker *brokers;
  int topic_cnt;
  struct rd_kafka_metadata_topic *topics;
  int32_t orig_broker_id;
  char *orig_broker_name;
} rd_kafka_metadata_t;
rd_kafka_resp_err_t rd_kafka_metadata(rd_kafka_t *rk, int all_topics, rd_kafka_topic_t *only_rkt, const struct rd_kafka_metadata **metadatap, int timeout_ms);
void rd_kafka_metadata_destroy(const struct rd_kafka_metadata *metadata);
struct rd_kafka_group_member_info {
  char *member_id;
  char *client_id;
  char *client_host;
  void *member_metadata;
  int member_metadata_size;
  void *member_assignment;
  int member_assignment_size;
};
struct rd_kafka_group_info {
  struct rd_kafka_metadata_broker broker;
  char *group;
  rd_kafka_resp_err_t err;
  char *state;
  char *protocol_type;
  char *protocol;
  struct rd_kafka_group_member_info *members;
  int member_cnt;
};
struct rd_kafka_group_list {
  struct rd_kafka_group_info *groups;
  int group_cnt;
};
rd_kafka_resp_err_t rd_kafka_list_groups(rd_kafka_t *rk, const char *group, const struct rd_kafka_group_list **grplistp, int timeout_ms);
void rd_kafka_group_list_destroy(const struct rd_kafka_group_list *grplist);
int rd_kafka_brokers_add(rd_kafka_t *rk, const char *brokerlist);
void rd_kafka_set_logger(rd_kafka_t *rk, void (*func)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_set_log_level(rd_kafka_t *rk, int level);
void rd_kafka_log_print(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
void rd_kafka_log_syslog(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
int rd_kafka_outq_len(rd_kafka_t *rk);
void rd_kafka_dump(FILE *fp, rd_kafka_t *rk);
int rd_kafka_thread_cnt(void);
typedef enum rd_kafka_thread_type_t {
  RD_KAFKA_THREAD_MAIN,
  RD_KAFKA_THREAD_BACKGROUND,
  RD_KAFKA_THREAD_BROKER,
} rd_kafka_thread_type_t;
int rd_kafka_wait_destroyed(int timeout_ms);
int rd_kafka_unittest(void);
rd_kafka_resp_err_t rd_kafka_poll_set_consumer(rd_kafka_t *rk);
typedef int rd_kafka_event_type_t;
rd_kafka_event_type_t rd_kafka_event_type(const rd_kafka_event_t *rkev);
const char *rd_kafka_event_name(const rd_kafka_event_t *rkev);
void rd_kafka_event_destroy(rd_kafka_event_t *rkev);
const rd_kafka_message_t *rd_kafka_event_message_next(rd_kafka_event_t *rkev);
size_t rd_kafka_event_message_array(rd_kafka_event_t *rkev, const rd_kafka_message_t **rkmessages, size_t size);
size_t rd_kafka_event_message_count(rd_kafka_event_t *rkev);
const char *rd_kafka_event_config_string(rd_kafka_event_t *rkev);
rd_kafka_resp_err_t rd_kafka_event_error(rd_kafka_event_t *rkev);
const char *rd_kafka_event_error_string(rd_kafka_event_t *rkev);
int rd_kafka_event_error_is_fatal(rd_kafka_event_t *rkev);
void *rd_kafka_event_opaque(rd_kafka_event_t *rkev);
int rd_kafka_event_log(rd_kafka_event_t *rkev, const char **fac, const char **str, int *level);
const char *rd_kafka_event_stats(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_list_t *rd_kafka_event_topic_partition_list(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_t *rd_kafka_event_topic_partition(rd_kafka_event_t *rkev);
typedef rd_kafka_event_t rd_kafka_CreateTopics_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteTopics_result_t;
typedef rd_kafka_event_t rd_kafka_CreatePartitions_result_t;
typedef rd_kafka_event_t rd_kafka_AlterConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeConfigs_result_t;
const rd_kafka_CreateTopics_result_t *rd_kafka_event_CreateTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteTopics_result_t *rd_kafka_event_DeleteTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_CreatePartitions_result_t *rd_kafka_event_CreatePartitions_result(rd_kafka_event_t *rkev);
const rd_kafka_AlterConfigs_result_t *rd_kafka_event_AlterConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeConfigs_result_t *rd_kafka_event_DescribeConfigs_result(rd_kafka_event_t *rkev);
rd_kafka_event_t *rd_kafka_queue_poll(rd_kafka_queue_t *rkqu, int timeout_ms);
int rd_kafka_queue_poll_callback(rd_kafka_queue_t *rkqu, int timeout_ms);
typedef rd_kafka_resp_err_t (rd_kafka_plugin_f_conf_init_t)(rd_kafka_conf_t *conf, void **plug_opaquep, char *errstr, size_t errstr_size);
typedef rd_kafka_conf_res_t (rd_kafka_interceptor_f_on_conf_set_t)(rd_kafka_conf_t *conf, const char *name, const char *val, char *errstr, size_t errstr_size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_dup_t)(rd_kafka_conf_t *new_conf, const rd_kafka_conf_t *old_conf, size_t filter_cnt, const char **filter, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_destroy_t)(void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_new_t)(rd_kafka_t *rk, const rd_kafka_conf_t *conf, void *ic_opaque, char *errstr, size_t errstr_size);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_destroy_t)(rd_kafka_t *rk, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_send_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_acknowledgement_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_consume_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_commit_t)(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_request_sent_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_start_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_exit_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_set(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_set_t *on_conf_set, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_dup(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_dup_t *on_conf_dup, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_destroy(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_destroy_t *on_conf_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_new(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_new_t *on_new, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_destroy(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_destroy_t *on_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_send(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_send_t *on_send, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_acknowledgement(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_acknowledgement_t *on_acknowledgement, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_consume(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_consume_t *on_consume, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_commit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_commit_t *on_commit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_request_sent(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_request_sent_t *on_request_sent, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_start(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_start_t *on_thread_start, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_exit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_exit_t *on_thread_exit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_topic_result_error(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_error_string(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_name(const rd_kafka_topic_result_t *topicres);
typedef enum rd_kafka_admin_op_t {
  RD_KAFKA_ADMIN_OP_ANY = 0,
  RD_KAFKA_ADMIN_OP_CREATETOPICS,
  RD_KAFKA_ADMIN_OP_DELETETOPICS,
  RD_KAFKA_ADMIN_OP_CREATEPARTITIONS,
  RD_KAFKA_ADMIN_OP_ALTERCONFIGS,
  RD_KAFKA_ADMIN_OP_DESCRIBECONFIGS,
  RD_KAFKA_ADMIN_OP__CNT,
} rd_kafka_admin_op_t;
typedef struct rd_kafka_AdminOptions_s rd_kafka_AdminOptions_t;
rd_kafka_AdminOptions_t *rd_kafka_AdminOptions_new(rd_kafka_t *rk, rd_kafka_admin_op_t for_api);
void rd_kafka_AdminOptions_destroy(rd_kafka_AdminOptions_t *options);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_request_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_operation_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_validate_only(rd_kafka_AdminOptions_t *options, int true_or_false, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_broker(rd_kafka_AdminOptions_t *options, int32_t broker_id, char *errstr, size_t errstr_size);
void rd_kafka_AdminOptions_set_opaque(rd_kafka_AdminOptions_t *options, void *ev_opaque);
typedef struct rd_kafka_NewTopic_s rd_kafka_NewTopic_t;
rd_kafka_NewTopic_t *rd_kafka_NewTopic_new(const char *topic, int num_partitions, int replication_factor, char *errstr, size_t errstr_size);
void rd_kafka_NewTopic_destroy(rd_kafka_NewTopic_t *new_topic);
void rd_kafka_NewTopic_destroy_array(rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_replica_assignment(rd_kafka_NewTopic_t *new_topic, int32_t partition, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_config(rd_kafka_NewTopic_t *new_topic, const char *name, const char *value);
void rd_kafka_CreateTopics(rd_kafka_t *rk, rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreateTopics_result_topics(const rd_kafka_CreateTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteTopic_s rd_kafka_DeleteTopic_t;
rd_kafka_DeleteTopic_t *rd_kafka_DeleteTopic_new(const char *topic);
void rd_kafka_DeleteTopic_destroy(rd_kafka_DeleteTopic_t *del_topic);
void rd_kafka_DeleteTopic_destroy_array(rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt);
void rd_kafka_DeleteTopics(rd_kafka_t *rk, rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_DeleteTopics_result_topics(const rd_kafka_DeleteTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_NewPartitions_s rd_kafka_NewPartitions_t;
rd_kafka_NewPartitions_t *rd_kafka_NewPartitions_new(const char *topic, size_t new_total_cnt, char *errstr, size_t errstr_size);
void rd_kafka_NewPartitions_destroy(rd_kafka_NewPartitions_t *new_parts);
void rd_kafka_NewPartitions_destroy_array(rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt);
rd_kafka_resp_err_t rd_kafka_NewPartitions_set_replica_assignment(rd_kafka_NewPartitions_t *new_parts, int32_t new_partition_idx, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
void rd_kafka_CreatePartitions(rd_kafka_t *rk, rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreatePartitions_result_topics(const rd_kafka_CreatePartitions_result_t *result, size_t *cntp);
typedef enum rd_kafka_ConfigSource_t {
  RD_KAFKA_CONFIG_SOURCE_UNKNOWN_CONFIG = 0,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG = 1,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG = 2,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG = 3,
  RD_KAFKA_CONFIG_SOURCE_STATIC_BROKER_CONFIG = 4,
  RD_KAFKA_CONFIG_SOURCE_DEFAULT_CONFIG = 5,
  RD_KAFKA_CONFIG_SOURCE__CNT,
} rd_kafka_ConfigSource_t;
const char *rd_kafka_ConfigSource_name(rd_kafka_ConfigSource_t confsource);
typedef struct rd_kafka_ConfigEntry_s rd_kafka_ConfigEntry_t;
const char *rd_kafka_ConfigEntry_name(const rd_kafka_ConfigEntry_t *entry);
const char *rd_kafka_ConfigEntry_value(const rd_kafka_ConfigEntry_t *entry);
rd_kafka_ConfigSource_t rd_kafka_ConfigEntry_source(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_read_only(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_default(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_sensitive(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_synonym(const rd_kafka_ConfigEntry_t *entry);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigEntry_synonyms(const rd_kafka_ConfigEntry_t *entry, size_t *cntp);
typedef enum rd_kafka_ResourceType_t {
  RD_KAFKA_RESOURCE_UNKNOWN = 0,
  RD_KAFKA_RESOURCE_ANY = 1,
  RD_KAFKA_RESOURCE_TOPIC = 2,
  RD_KAFKA_RESOURCE_GROUP = 3,
  RD_KAFKA_RESOURCE_BROKER = 4,
  RD_KAFKA_RESOURCE__CNT,
} rd_kafka_ResourceType_t;
const char *rd_kafka_ResourceType_name(rd_kafka_ResourceType_t restype);
typedef struct rd_kafka_ConfigResource_s rd_kafka_ConfigResource_t;
rd_kafka_ConfigResource_t *rd_kafka_ConfigResource_new(rd_kafka_ResourceType_t restype, const char *resname);
void rd_kafka_ConfigResource_destroy(rd_kafka_ConfigResource_t *config);
void rd_kafka_ConfigResource_destroy_array(rd_kafka_ConfigResource_t **config, size_t config_cnt);
rd_kafka_resp_err_t rd_kafka_ConfigResource_set_config(rd_kafka_ConfigResource_t *config, const char *name, const char *value);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigResource_configs(const rd_kafka_ConfigResource_t *config, size_t *cntp);
rd_kafka_ResourceType_t rd_kafka_ConfigResource_type(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_name(const rd_kafka_ConfigResource_t *config);
rd_kafka_resp_err_t rd_kafka_ConfigResource_error(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_error_string(const rd_kafka_ConfigResource_t *config);
void rd_kafka_AlterConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_AlterConfigs_result_resources(const rd_kafka_AlterConfigs_result_t *result, size_t *cntp);
void rd_kafka_DescribeConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_DescribeConfigs_result_resources(const rd_kafka_DescribeConfigs_result_t *result, size_t *cntp);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token(rd_kafka_t *rk, const char *token_value, int64_t md_lifetime_ms, const char *md_principal_name, const char **extensions, size_t extension_size, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token_failure(rd_kafka_t *rk, const char *errstr);
'
rdkafka.h, rdkafka_mock.h

RD_KAFKA_VERSION

public RD_KAFKA_VERSION = 16974079

librdkafka version

Interpreted as hex MM.mm.rr.xx:

  • MM = Major
  • mm = minor
  • rr = revision
  • xx = pre-release id (0xff is the final release)

E.g.: 0x000801ff = 0.8.1

Remarks
This value should only be used during compile time, for runtime checks of version use rd_kafka_version()

RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE

public RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76

Unsupported compression type

RD_KAFKA_RESP_ERR_END_ALL

public RD_KAFKA_RESP_ERR_END_ALL = 82
enum rd_kafka_resp_err_t

RD_KAFKA_ADMIN_OP__CNT

public RD_KAFKA_ADMIN_OP__CNT = 6

Number of ops defined

RD_KAFKA_CDEF

public RD_KAFKA_CDEF = 'typedef long int ssize_t;
typedef struct _IO_FILE FILE;
typedef long int mode_t;
typedef signed int int16_t;
typedef unsigned int uint16_t;
typedef signed int int32_t;
typedef signed long int int64_t;
int rd_kafka_version(void);
const char *rd_kafka_version_str(void);
typedef enum rd_kafka_type_t {
  RD_KAFKA_PRODUCER,
  RD_KAFKA_CONSUMER,
} rd_kafka_type_t;
typedef enum rd_kafka_timestamp_type_t {
  RD_KAFKA_TIMESTAMP_NOT_AVAILABLE,
  RD_KAFKA_TIMESTAMP_CREATE_TIME,
  RD_KAFKA_TIMESTAMP_LOG_APPEND_TIME,
} rd_kafka_timestamp_type_t;
const char *rd_kafka_get_debug_contexts(void);
typedef struct rd_kafka_s rd_kafka_t;
typedef struct rd_kafka_topic_s rd_kafka_topic_t;
typedef struct rd_kafka_conf_s rd_kafka_conf_t;
typedef struct rd_kafka_topic_conf_s rd_kafka_topic_conf_t;
typedef struct rd_kafka_queue_s rd_kafka_queue_t;
typedef struct rd_kafka_op_s rd_kafka_event_t;
typedef struct rd_kafka_topic_result_s rd_kafka_topic_result_t;
typedef enum {
  RD_KAFKA_RESP_ERR__BEGIN = (- 200),
  RD_KAFKA_RESP_ERR__BAD_MSG = (- 199),
  RD_KAFKA_RESP_ERR__BAD_COMPRESSION = (- 198),
  RD_KAFKA_RESP_ERR__DESTROY = (- 197),
  RD_KAFKA_RESP_ERR__FAIL = (- 196),
  RD_KAFKA_RESP_ERR__TRANSPORT = (- 195),
  RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE = (- 194),
  RD_KAFKA_RESP_ERR__RESOLVE = (- 193),
  RD_KAFKA_RESP_ERR__MSG_TIMED_OUT = (- 192),
  RD_KAFKA_RESP_ERR__PARTITION_EOF = (- 191),
  RD_KAFKA_RESP_ERR__UNKNOWN_PARTITION = (- 190),
  RD_KAFKA_RESP_ERR__FS = (- 189),
  RD_KAFKA_RESP_ERR__UNKNOWN_TOPIC = (- 188),
  RD_KAFKA_RESP_ERR__ALL_BROKERS_DOWN = (- 187),
  RD_KAFKA_RESP_ERR__INVALID_ARG = (- 186),
  RD_KAFKA_RESP_ERR__TIMED_OUT = (- 185),
  RD_KAFKA_RESP_ERR__QUEUE_FULL = (- 184),
  RD_KAFKA_RESP_ERR__ISR_INSUFF = (- 183),
  RD_KAFKA_RESP_ERR__NODE_UPDATE = (- 182),
  RD_KAFKA_RESP_ERR__SSL = (- 181),
  RD_KAFKA_RESP_ERR__WAIT_COORD = (- 180),
  RD_KAFKA_RESP_ERR__UNKNOWN_GROUP = (- 179),
  RD_KAFKA_RESP_ERR__IN_PROGRESS = (- 178),
  RD_KAFKA_RESP_ERR__PREV_IN_PROGRESS = (- 177),
  RD_KAFKA_RESP_ERR__EXISTING_SUBSCRIPTION = (- 176),
  RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS = (- 175),
  RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS = (- 174),
  RD_KAFKA_RESP_ERR__CONFLICT = (- 173),
  RD_KAFKA_RESP_ERR__STATE = (- 172),
  RD_KAFKA_RESP_ERR__UNKNOWN_PROTOCOL = (- 171),
  RD_KAFKA_RESP_ERR__NOT_IMPLEMENTED = (- 170),
  RD_KAFKA_RESP_ERR__AUTHENTICATION = (- 169),
  RD_KAFKA_RESP_ERR__NO_OFFSET = (- 168),
  RD_KAFKA_RESP_ERR__OUTDATED = (- 167),
  RD_KAFKA_RESP_ERR__TIMED_OUT_QUEUE = (- 166),
  RD_KAFKA_RESP_ERR__UNSUPPORTED_FEATURE = (- 165),
  RD_KAFKA_RESP_ERR__WAIT_CACHE = (- 164),
  RD_KAFKA_RESP_ERR__INTR = (- 163),
  RD_KAFKA_RESP_ERR__KEY_SERIALIZATION = (- 162),
  RD_KAFKA_RESP_ERR__VALUE_SERIALIZATION = (- 161),
  RD_KAFKA_RESP_ERR__KEY_DESERIALIZATION = (- 160),
  RD_KAFKA_RESP_ERR__VALUE_DESERIALIZATION = (- 159),
  RD_KAFKA_RESP_ERR__PARTIAL = (- 158),
  RD_KAFKA_RESP_ERR__READ_ONLY = (- 157),
  RD_KAFKA_RESP_ERR__NOENT = (- 156),
  RD_KAFKA_RESP_ERR__UNDERFLOW = (- 155),
  RD_KAFKA_RESP_ERR__INVALID_TYPE = (- 154),
  RD_KAFKA_RESP_ERR__RETRY = (- 153),
  RD_KAFKA_RESP_ERR__PURGE_QUEUE = (- 152),
  RD_KAFKA_RESP_ERR__PURGE_INFLIGHT = (- 151),
  RD_KAFKA_RESP_ERR__FATAL = (- 150),
  RD_KAFKA_RESP_ERR__INCONSISTENT = (- 149),
  RD_KAFKA_RESP_ERR__GAPLESS_GUARANTEE = (- 148),
  RD_KAFKA_RESP_ERR__MAX_POLL_EXCEEDED = (- 147),
  RD_KAFKA_RESP_ERR__UNKNOWN_BROKER = (- 146),
  RD_KAFKA_RESP_ERR__END = (- 100),
  RD_KAFKA_RESP_ERR_UNKNOWN = (- 1),
  RD_KAFKA_RESP_ERR_NO_ERROR = 0,
  RD_KAFKA_RESP_ERR_OFFSET_OUT_OF_RANGE = 1,
  RD_KAFKA_RESP_ERR_INVALID_MSG = 2,
  RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_OR_PART = 3,
  RD_KAFKA_RESP_ERR_INVALID_MSG_SIZE = 4,
  RD_KAFKA_RESP_ERR_LEADER_NOT_AVAILABLE = 5,
  RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION = 6,
  RD_KAFKA_RESP_ERR_REQUEST_TIMED_OUT = 7,
  RD_KAFKA_RESP_ERR_BROKER_NOT_AVAILABLE = 8,
  RD_KAFKA_RESP_ERR_REPLICA_NOT_AVAILABLE = 9,
  RD_KAFKA_RESP_ERR_MSG_SIZE_TOO_LARGE = 10,
  RD_KAFKA_RESP_ERR_STALE_CTRL_EPOCH = 11,
  RD_KAFKA_RESP_ERR_OFFSET_METADATA_TOO_LARGE = 12,
  RD_KAFKA_RESP_ERR_NETWORK_EXCEPTION = 13,
  RD_KAFKA_RESP_ERR_COORDINATOR_LOAD_IN_PROGRESS = 14,
  RD_KAFKA_RESP_ERR_COORDINATOR_NOT_AVAILABLE = 15,
  RD_KAFKA_RESP_ERR_NOT_COORDINATOR = 16,
  RD_KAFKA_RESP_ERR_TOPIC_EXCEPTION = 17,
  RD_KAFKA_RESP_ERR_RECORD_LIST_TOO_LARGE = 18,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS = 19,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS_AFTER_APPEND = 20,
  RD_KAFKA_RESP_ERR_INVALID_REQUIRED_ACKS = 21,
  RD_KAFKA_RESP_ERR_ILLEGAL_GENERATION = 22,
  RD_KAFKA_RESP_ERR_INCONSISTENT_GROUP_PROTOCOL = 23,
  RD_KAFKA_RESP_ERR_INVALID_GROUP_ID = 24,
  RD_KAFKA_RESP_ERR_UNKNOWN_MEMBER_ID = 25,
  RD_KAFKA_RESP_ERR_INVALID_SESSION_TIMEOUT = 26,
  RD_KAFKA_RESP_ERR_REBALANCE_IN_PROGRESS = 27,
  RD_KAFKA_RESP_ERR_INVALID_COMMIT_OFFSET_SIZE = 28,
  RD_KAFKA_RESP_ERR_TOPIC_AUTHORIZATION_FAILED = 29,
  RD_KAFKA_RESP_ERR_GROUP_AUTHORIZATION_FAILED = 30,
  RD_KAFKA_RESP_ERR_CLUSTER_AUTHORIZATION_FAILED = 31,
  RD_KAFKA_RESP_ERR_INVALID_TIMESTAMP = 32,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_SASL_MECHANISM = 33,
  RD_KAFKA_RESP_ERR_ILLEGAL_SASL_STATE = 34,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_VERSION = 35,
  RD_KAFKA_RESP_ERR_TOPIC_ALREADY_EXISTS = 36,
  RD_KAFKA_RESP_ERR_INVALID_PARTITIONS = 37,
  RD_KAFKA_RESP_ERR_INVALID_REPLICATION_FACTOR = 38,
  RD_KAFKA_RESP_ERR_INVALID_REPLICA_ASSIGNMENT = 39,
  RD_KAFKA_RESP_ERR_INVALID_CONFIG = 40,
  RD_KAFKA_RESP_ERR_NOT_CONTROLLER = 41,
  RD_KAFKA_RESP_ERR_INVALID_REQUEST = 42,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_FOR_MESSAGE_FORMAT = 43,
  RD_KAFKA_RESP_ERR_POLICY_VIOLATION = 44,
  RD_KAFKA_RESP_ERR_OUT_OF_ORDER_SEQUENCE_NUMBER = 45,
  RD_KAFKA_RESP_ERR_DUPLICATE_SEQUENCE_NUMBER = 46,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_EPOCH = 47,
  RD_KAFKA_RESP_ERR_INVALID_TXN_STATE = 48,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_ID_MAPPING = 49,
  RD_KAFKA_RESP_ERR_INVALID_TRANSACTION_TIMEOUT = 50,
  RD_KAFKA_RESP_ERR_CONCURRENT_TRANSACTIONS = 51,
  RD_KAFKA_RESP_ERR_TRANSACTION_COORDINATOR_FENCED = 52,
  RD_KAFKA_RESP_ERR_TRANSACTIONAL_ID_AUTHORIZATION_FAILED = 53,
  RD_KAFKA_RESP_ERR_SECURITY_DISABLED = 54,
  RD_KAFKA_RESP_ERR_OPERATION_NOT_ATTEMPTED = 55,
  RD_KAFKA_RESP_ERR_KAFKA_STORAGE_ERROR = 56,
  RD_KAFKA_RESP_ERR_LOG_DIR_NOT_FOUND = 57,
  RD_KAFKA_RESP_ERR_SASL_AUTHENTICATION_FAILED = 58,
  RD_KAFKA_RESP_ERR_UNKNOWN_PRODUCER_ID = 59,
  RD_KAFKA_RESP_ERR_REASSIGNMENT_IN_PROGRESS = 60,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTH_DISABLED = 61,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_NOT_FOUND = 62,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_OWNER_MISMATCH = 63,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_REQUEST_NOT_ALLOWED = 64,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTHORIZATION_FAILED = 65,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_EXPIRED = 66,
  RD_KAFKA_RESP_ERR_INVALID_PRINCIPAL_TYPE = 67,
  RD_KAFKA_RESP_ERR_NON_EMPTY_GROUP = 68,
  RD_KAFKA_RESP_ERR_GROUP_ID_NOT_FOUND = 69,
  RD_KAFKA_RESP_ERR_FETCH_SESSION_ID_NOT_FOUND = 70,
  RD_KAFKA_RESP_ERR_INVALID_FETCH_SESSION_EPOCH = 71,
  RD_KAFKA_RESP_ERR_LISTENER_NOT_FOUND = 72,
  RD_KAFKA_RESP_ERR_TOPIC_DELETION_DISABLED = 73,
  RD_KAFKA_RESP_ERR_FENCED_LEADER_EPOCH = 74,
  RD_KAFKA_RESP_ERR_UNKNOWN_LEADER_EPOCH = 75,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76,
  RD_KAFKA_RESP_ERR_STALE_BROKER_EPOCH = 77,
  RD_KAFKA_RESP_ERR_OFFSET_NOT_AVAILABLE = 78,
  RD_KAFKA_RESP_ERR_MEMBER_ID_REQUIRED = 79,
  RD_KAFKA_RESP_ERR_PREFERRED_LEADER_NOT_AVAILABLE = 80,
  RD_KAFKA_RESP_ERR_GROUP_MAX_SIZE_REACHED = 81,
  RD_KAFKA_RESP_ERR_END_ALL,
} rd_kafka_resp_err_t;
struct rd_kafka_err_desc {
  rd_kafka_resp_err_t code;
  char *name;
  char *desc;
};
void rd_kafka_get_err_descs(const struct rd_kafka_err_desc **errdescs, size_t *cntp);
const char *rd_kafka_err2str(rd_kafka_resp_err_t err);
const char *rd_kafka_err2name(rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_last_error(void);
rd_kafka_resp_err_t rd_kafka_errno2err(int errnox);
int rd_kafka_errno(void);
rd_kafka_resp_err_t rd_kafka_fatal_error(rd_kafka_t *rk, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_test_fatal_error(rd_kafka_t *rk, rd_kafka_resp_err_t err, const char *reason);
typedef struct rd_kafka_topic_partition_s {
  char *topic;
  int32_t partition;
  int64_t offset;
  void *metadata;
  size_t metadata_size;
  void *opaque;
  rd_kafka_resp_err_t err;
  void *_private;
} rd_kafka_topic_partition_t;
void rd_kafka_topic_partition_destroy(rd_kafka_topic_partition_t *rktpar);
typedef struct rd_kafka_topic_partition_list_s {
  int cnt;
  int size;
  rd_kafka_topic_partition_t *elems;
} rd_kafka_topic_partition_list_t;
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_new(int size);
void rd_kafka_topic_partition_list_destroy(rd_kafka_topic_partition_list_t *rkparlist);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_add(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_add_range(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t start, int32_t stop);
int rd_kafka_topic_partition_list_del(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
int rd_kafka_topic_partition_list_del_by_idx(rd_kafka_topic_partition_list_t *rktparlist, int idx);
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_copy(const rd_kafka_topic_partition_list_t *src);
rd_kafka_resp_err_t rd_kafka_topic_partition_list_set_offset(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition, int64_t offset);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_find(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_sort(rd_kafka_topic_partition_list_t *rktparlist, int (*cmp)(const void *a, const void *b, void *cmp_opaque), void *cmp_opaque);
typedef enum rd_kafka_vtype_t {
  RD_KAFKA_VTYPE_END,
  RD_KAFKA_VTYPE_TOPIC,
  RD_KAFKA_VTYPE_RKT,
  RD_KAFKA_VTYPE_PARTITION,
  RD_KAFKA_VTYPE_VALUE,
  RD_KAFKA_VTYPE_KEY,
  RD_KAFKA_VTYPE_OPAQUE,
  RD_KAFKA_VTYPE_MSGFLAGS,
  RD_KAFKA_VTYPE_TIMESTAMP,
  RD_KAFKA_VTYPE_HEADER,
  RD_KAFKA_VTYPE_HEADERS,
} rd_kafka_vtype_t;
typedef struct rd_kafka_headers_s rd_kafka_headers_t;
rd_kafka_headers_t *rd_kafka_headers_new(size_t initial_count);
void rd_kafka_headers_destroy(rd_kafka_headers_t *hdrs);
rd_kafka_headers_t *rd_kafka_headers_copy(const rd_kafka_headers_t *src);
rd_kafka_resp_err_t rd_kafka_header_add(rd_kafka_headers_t *hdrs, const char *name, ssize_t name_size, const void *value, ssize_t value_size);
rd_kafka_resp_err_t rd_kafka_header_remove(rd_kafka_headers_t *hdrs, const char *name);
rd_kafka_resp_err_t rd_kafka_header_get_last(const rd_kafka_headers_t *hdrs, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get(const rd_kafka_headers_t *hdrs, size_t idx, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get_all(const rd_kafka_headers_t *hdrs, size_t idx, const char **namep, const void **valuep, size_t *sizep);
typedef struct rd_kafka_message_s {
  rd_kafka_resp_err_t err;
  rd_kafka_topic_t *rkt;
  int32_t partition;
  void *payload;
  size_t len;
  void *key;
  size_t key_len;
  int64_t offset;
  void *_private;
} rd_kafka_message_t;
void rd_kafka_message_destroy(rd_kafka_message_t *rkmessage);
int64_t rd_kafka_message_timestamp(const rd_kafka_message_t *rkmessage, rd_kafka_timestamp_type_t *tstype);
int64_t rd_kafka_message_latency(const rd_kafka_message_t *rkmessage);
rd_kafka_resp_err_t rd_kafka_message_headers(const rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
rd_kafka_resp_err_t rd_kafka_message_detach_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
void rd_kafka_message_set_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t *hdrs);
size_t rd_kafka_header_cnt(const rd_kafka_headers_t *hdrs);
typedef enum {
  RD_KAFKA_MSG_STATUS_NOT_PERSISTED = 0,
  RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED = 1,
  RD_KAFKA_MSG_STATUS_PERSISTED = 2,
} rd_kafka_msg_status_t;
rd_kafka_msg_status_t rd_kafka_message_status(const rd_kafka_message_t *rkmessage);
typedef enum {
  RD_KAFKA_CONF_UNKNOWN = (- 2),
  RD_KAFKA_CONF_INVALID = (- 1),
  RD_KAFKA_CONF_OK = 0,
} rd_kafka_conf_res_t;
rd_kafka_conf_t *rd_kafka_conf_new(void);
void rd_kafka_conf_destroy(rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup(const rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup_filter(const rd_kafka_conf_t *conf, size_t filter_cnt, const char **filter);
const rd_kafka_conf_t *rd_kafka_conf(rd_kafka_t *rk);
rd_kafka_conf_res_t rd_kafka_conf_set(rd_kafka_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_events(rd_kafka_conf_t *conf, int events);
void rd_kafka_conf_set_background_event_cb(rd_kafka_conf_t *conf, void (*event_cb)(rd_kafka_t *rk, rd_kafka_event_t *rkev, void *opaque));
void rd_kafka_conf_set_dr_cb(rd_kafka_conf_t *conf, void (*dr_cb)(rd_kafka_t *rk, void *payload, size_t len, rd_kafka_resp_err_t err, void *opaque, void *msg_opaque));
void rd_kafka_conf_set_dr_msg_cb(rd_kafka_conf_t *conf, void (*dr_msg_cb)(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_consume_cb(rd_kafka_conf_t *conf, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_rebalance_cb(rd_kafka_conf_t *conf, void (*rebalance_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *partitions, void *opaque));
void rd_kafka_conf_set_offset_commit_cb(rd_kafka_conf_t *conf, void (*offset_commit_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *opaque));
void rd_kafka_conf_set_error_cb(rd_kafka_conf_t *conf, void (*error_cb)(rd_kafka_t *rk, int err, const char *reason, void *opaque));
void rd_kafka_conf_set_throttle_cb(rd_kafka_conf_t *conf, void (*throttle_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int throttle_time_ms, void *opaque));
void rd_kafka_conf_set_log_cb(rd_kafka_conf_t *conf, void (*log_cb)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_conf_set_stats_cb(rd_kafka_conf_t *conf, int (*stats_cb)(rd_kafka_t *rk, char *json, size_t json_len, void *opaque));
void rd_kafka_conf_set_oauthbearer_token_refresh_cb(rd_kafka_conf_t *conf, void (*oauthbearer_token_refresh_cb)(rd_kafka_t *rk, const char *oauthbearer_config, void *opaque));
void rd_kafka_conf_set_socket_cb(rd_kafka_conf_t *conf, int (*socket_cb)(int domain, int type, int protocol, void *opaque));
void rd_kafka_conf_set_connect_cb(rd_kafka_conf_t *conf, int (*connect_cb)(int sockfd, const struct sockaddr *addr, int addrlen, const char *id, void *opaque));
void rd_kafka_conf_set_closesocket_cb(rd_kafka_conf_t *conf, int (*closesocket_cb)(int sockfd, void *opaque));
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert_verify_cb(rd_kafka_conf_t *conf, int (*ssl_cert_verify_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int *x509_error, int depth, const char *buf, size_t size, char *errstr, size_t errstr_size, void *opaque));
typedef enum rd_kafka_cert_type_t {
  RD_KAFKA_CERT_PUBLIC_KEY,
  RD_KAFKA_CERT_PRIVATE_KEY,
  RD_KAFKA_CERT_CA,
  RD_KAFKA_CERT__CNT,
} rd_kafka_cert_type_t;
typedef enum rd_kafka_cert_enc_t {
  RD_KAFKA_CERT_ENC_PKCS12,
  RD_KAFKA_CERT_ENC_DER,
  RD_KAFKA_CERT_ENC_PEM,
  RD_KAFKA_CERT_ENC__CNT,
} rd_kafka_cert_enc_t;
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert(rd_kafka_conf_t *conf, rd_kafka_cert_type_t cert_type, rd_kafka_cert_enc_t cert_enc, const void *buffer, size_t size, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_opaque(rd_kafka_conf_t *conf, void *opaque);
void *rd_kafka_opaque(const rd_kafka_t *rk);
void rd_kafka_conf_set_default_topic_conf(rd_kafka_conf_t *conf, rd_kafka_topic_conf_t *tconf);
rd_kafka_conf_res_t rd_kafka_conf_get(const rd_kafka_conf_t *conf, const char *name, char *dest, size_t *dest_size);
rd_kafka_conf_res_t rd_kafka_topic_conf_get(const rd_kafka_topic_conf_t *conf, const char *name, char *dest, size_t *dest_size);
const char **rd_kafka_conf_dump(rd_kafka_conf_t *conf, size_t *cntp);
const char **rd_kafka_topic_conf_dump(rd_kafka_topic_conf_t *conf, size_t *cntp);
void rd_kafka_conf_dump_free(const char **arr, size_t cnt);
void rd_kafka_conf_properties_show(FILE *fp);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_new(void);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_dup(const rd_kafka_topic_conf_t *conf);
rd_kafka_topic_conf_t *rd_kafka_default_topic_conf_dup(rd_kafka_t *rk);
void rd_kafka_topic_conf_destroy(rd_kafka_topic_conf_t *topic_conf);
rd_kafka_conf_res_t rd_kafka_topic_conf_set(rd_kafka_topic_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_topic_conf_set_opaque(rd_kafka_topic_conf_t *conf, void *rkt_opaque);
void rd_kafka_topic_conf_set_partitioner_cb(rd_kafka_topic_conf_t *topic_conf, int32_t (*partitioner)(const rd_kafka_topic_t *rkt, const void *keydata, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque));
void rd_kafka_topic_conf_set_msg_order_cmp(rd_kafka_topic_conf_t *topic_conf, int (*msg_order_cmp)(const rd_kafka_message_t *a, const rd_kafka_message_t *b));
int rd_kafka_topic_partition_available(const rd_kafka_topic_t *rkt, int32_t partition);
int32_t rd_kafka_msg_partitioner_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
rd_kafka_t *rd_kafka_new(rd_kafka_type_t type, rd_kafka_conf_t *conf, char *errstr, size_t errstr_size);
void rd_kafka_destroy(rd_kafka_t *rk);
void rd_kafka_destroy_flags(rd_kafka_t *rk, int flags);
const char *rd_kafka_name(const rd_kafka_t *rk);
rd_kafka_type_t rd_kafka_type(const rd_kafka_t *rk);
char *rd_kafka_memberid(const rd_kafka_t *rk);
char *rd_kafka_clusterid(rd_kafka_t *rk, int timeout_ms);
int32_t rd_kafka_controllerid(rd_kafka_t *rk, int timeout_ms);
rd_kafka_topic_t *rd_kafka_topic_new(rd_kafka_t *rk, const char *topic, rd_kafka_topic_conf_t *conf);
void rd_kafka_topic_destroy(rd_kafka_topic_t *rkt);
const char *rd_kafka_topic_name(const rd_kafka_topic_t *rkt);
void *rd_kafka_topic_opaque(const rd_kafka_topic_t *rkt);
int rd_kafka_poll(rd_kafka_t *rk, int timeout_ms);
void rd_kafka_yield(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_pause_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_resume_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_query_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_get_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high);
rd_kafka_resp_err_t rd_kafka_offsets_for_times(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets, int timeout_ms);
void rd_kafka_mem_free(rd_kafka_t *rk, void *ptr);
rd_kafka_queue_t *rd_kafka_queue_new(rd_kafka_t *rk);
void rd_kafka_queue_destroy(rd_kafka_queue_t *rkqu);
rd_kafka_queue_t *rd_kafka_queue_get_main(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_consumer(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_partition(rd_kafka_t *rk, const char *topic, int32_t partition);
rd_kafka_queue_t *rd_kafka_queue_get_background(rd_kafka_t *rk);
void rd_kafka_queue_forward(rd_kafka_queue_t *src, rd_kafka_queue_t *dst);
rd_kafka_resp_err_t rd_kafka_set_log_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu);
size_t rd_kafka_queue_length(rd_kafka_queue_t *rkqu);
void rd_kafka_queue_io_event_enable(rd_kafka_queue_t *rkqu, int fd, const void *payload, size_t size);
void rd_kafka_queue_cb_event_enable(rd_kafka_queue_t *rkqu, void (*event_cb)(rd_kafka_t *rk, void *qev_opaque), void *qev_opaque);
int rd_kafka_consume_start(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
int rd_kafka_consume_start_queue(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, rd_kafka_queue_t *rkqu);
int rd_kafka_consume_stop(rd_kafka_topic_t *rkt, int32_t partition);
rd_kafka_resp_err_t rd_kafka_seek(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, int timeout_ms);
rd_kafka_message_t *rd_kafka_consume(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms);
ssize_t rd_kafka_consume_batch(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_message_t *rd_kafka_consume_queue(rd_kafka_queue_t *rkqu, int timeout_ms);
ssize_t rd_kafka_consume_batch_queue(rd_kafka_queue_t *rkqu, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback_queue(rd_kafka_queue_t *rkqu, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_offset_store(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
rd_kafka_resp_err_t rd_kafka_offsets_store(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets);
rd_kafka_resp_err_t rd_kafka_subscribe(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *topics);
rd_kafka_resp_err_t rd_kafka_unsubscribe(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_subscription(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **topics);
rd_kafka_message_t *rd_kafka_consumer_poll(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_consumer_close(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_assignment(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **partitions);
rd_kafka_resp_err_t rd_kafka_commit(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, int async);
rd_kafka_resp_err_t rd_kafka_commit_message(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, int async);
rd_kafka_resp_err_t rd_kafka_commit_queue(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_queue_t *rkqu, void (*cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_committed(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_position(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
int rd_kafka_produce(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, void *payload, size_t len, const void *key, size_t keylen, void *msg_opaque);
rd_kafka_resp_err_t rd_kafka_producev(rd_kafka_t *rk, ...);
int rd_kafka_produce_batch(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, rd_kafka_message_t *rkmessages, int message_cnt);
rd_kafka_resp_err_t rd_kafka_flush(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_purge(rd_kafka_t *rk, int purge_flags);
typedef struct rd_kafka_metadata_broker {
  int32_t id;
  char *host;
  int port;
} rd_kafka_metadata_broker_t;
typedef struct rd_kafka_metadata_partition {
  int32_t id;
  rd_kafka_resp_err_t err;
  int32_t leader;
  int replica_cnt;
  int32_t *replicas;
  int isr_cnt;
  int32_t *isrs;
} rd_kafka_metadata_partition_t;
typedef struct rd_kafka_metadata_topic {
  char *topic;
  int partition_cnt;
  struct rd_kafka_metadata_partition *partitions;
  rd_kafka_resp_err_t err;
} rd_kafka_metadata_topic_t;
typedef struct rd_kafka_metadata {
  int broker_cnt;
  struct rd_kafka_metadata_broker *brokers;
  int topic_cnt;
  struct rd_kafka_metadata_topic *topics;
  int32_t orig_broker_id;
  char *orig_broker_name;
} rd_kafka_metadata_t;
rd_kafka_resp_err_t rd_kafka_metadata(rd_kafka_t *rk, int all_topics, rd_kafka_topic_t *only_rkt, const struct rd_kafka_metadata **metadatap, int timeout_ms);
void rd_kafka_metadata_destroy(const struct rd_kafka_metadata *metadata);
struct rd_kafka_group_member_info {
  char *member_id;
  char *client_id;
  char *client_host;
  void *member_metadata;
  int member_metadata_size;
  void *member_assignment;
  int member_assignment_size;
};
struct rd_kafka_group_info {
  struct rd_kafka_metadata_broker broker;
  char *group;
  rd_kafka_resp_err_t err;
  char *state;
  char *protocol_type;
  char *protocol;
  struct rd_kafka_group_member_info *members;
  int member_cnt;
};
struct rd_kafka_group_list {
  struct rd_kafka_group_info *groups;
  int group_cnt;
};
rd_kafka_resp_err_t rd_kafka_list_groups(rd_kafka_t *rk, const char *group, const struct rd_kafka_group_list **grplistp, int timeout_ms);
void rd_kafka_group_list_destroy(const struct rd_kafka_group_list *grplist);
int rd_kafka_brokers_add(rd_kafka_t *rk, const char *brokerlist);
void rd_kafka_set_logger(rd_kafka_t *rk, void (*func)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_set_log_level(rd_kafka_t *rk, int level);
void rd_kafka_log_print(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
void rd_kafka_log_syslog(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
int rd_kafka_outq_len(rd_kafka_t *rk);
void rd_kafka_dump(FILE *fp, rd_kafka_t *rk);
int rd_kafka_thread_cnt(void);
typedef enum rd_kafka_thread_type_t {
  RD_KAFKA_THREAD_MAIN,
  RD_KAFKA_THREAD_BACKGROUND,
  RD_KAFKA_THREAD_BROKER,
} rd_kafka_thread_type_t;
int rd_kafka_wait_destroyed(int timeout_ms);
int rd_kafka_unittest(void);
rd_kafka_resp_err_t rd_kafka_poll_set_consumer(rd_kafka_t *rk);
typedef int rd_kafka_event_type_t;
rd_kafka_event_type_t rd_kafka_event_type(const rd_kafka_event_t *rkev);
const char *rd_kafka_event_name(const rd_kafka_event_t *rkev);
void rd_kafka_event_destroy(rd_kafka_event_t *rkev);
const rd_kafka_message_t *rd_kafka_event_message_next(rd_kafka_event_t *rkev);
size_t rd_kafka_event_message_array(rd_kafka_event_t *rkev, const rd_kafka_message_t **rkmessages, size_t size);
size_t rd_kafka_event_message_count(rd_kafka_event_t *rkev);
const char *rd_kafka_event_config_string(rd_kafka_event_t *rkev);
rd_kafka_resp_err_t rd_kafka_event_error(rd_kafka_event_t *rkev);
const char *rd_kafka_event_error_string(rd_kafka_event_t *rkev);
int rd_kafka_event_error_is_fatal(rd_kafka_event_t *rkev);
void *rd_kafka_event_opaque(rd_kafka_event_t *rkev);
int rd_kafka_event_log(rd_kafka_event_t *rkev, const char **fac, const char **str, int *level);
const char *rd_kafka_event_stats(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_list_t *rd_kafka_event_topic_partition_list(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_t *rd_kafka_event_topic_partition(rd_kafka_event_t *rkev);
typedef rd_kafka_event_t rd_kafka_CreateTopics_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteTopics_result_t;
typedef rd_kafka_event_t rd_kafka_CreatePartitions_result_t;
typedef rd_kafka_event_t rd_kafka_AlterConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeConfigs_result_t;
const rd_kafka_CreateTopics_result_t *rd_kafka_event_CreateTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteTopics_result_t *rd_kafka_event_DeleteTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_CreatePartitions_result_t *rd_kafka_event_CreatePartitions_result(rd_kafka_event_t *rkev);
const rd_kafka_AlterConfigs_result_t *rd_kafka_event_AlterConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeConfigs_result_t *rd_kafka_event_DescribeConfigs_result(rd_kafka_event_t *rkev);
rd_kafka_event_t *rd_kafka_queue_poll(rd_kafka_queue_t *rkqu, int timeout_ms);
int rd_kafka_queue_poll_callback(rd_kafka_queue_t *rkqu, int timeout_ms);
typedef rd_kafka_resp_err_t (rd_kafka_plugin_f_conf_init_t)(rd_kafka_conf_t *conf, void **plug_opaquep, char *errstr, size_t errstr_size);
typedef rd_kafka_conf_res_t (rd_kafka_interceptor_f_on_conf_set_t)(rd_kafka_conf_t *conf, const char *name, const char *val, char *errstr, size_t errstr_size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_dup_t)(rd_kafka_conf_t *new_conf, const rd_kafka_conf_t *old_conf, size_t filter_cnt, const char **filter, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_destroy_t)(void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_new_t)(rd_kafka_t *rk, const rd_kafka_conf_t *conf, void *ic_opaque, char *errstr, size_t errstr_size);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_destroy_t)(rd_kafka_t *rk, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_send_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_acknowledgement_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_consume_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_commit_t)(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_request_sent_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_start_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_exit_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_set(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_set_t *on_conf_set, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_dup(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_dup_t *on_conf_dup, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_destroy(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_destroy_t *on_conf_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_new(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_new_t *on_new, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_destroy(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_destroy_t *on_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_send(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_send_t *on_send, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_acknowledgement(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_acknowledgement_t *on_acknowledgement, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_consume(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_consume_t *on_consume, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_commit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_commit_t *on_commit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_request_sent(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_request_sent_t *on_request_sent, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_start(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_start_t *on_thread_start, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_exit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_exit_t *on_thread_exit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_topic_result_error(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_error_string(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_name(const rd_kafka_topic_result_t *topicres);
typedef enum rd_kafka_admin_op_t {
  RD_KAFKA_ADMIN_OP_ANY = 0,
  RD_KAFKA_ADMIN_OP_CREATETOPICS,
  RD_KAFKA_ADMIN_OP_DELETETOPICS,
  RD_KAFKA_ADMIN_OP_CREATEPARTITIONS,
  RD_KAFKA_ADMIN_OP_ALTERCONFIGS,
  RD_KAFKA_ADMIN_OP_DESCRIBECONFIGS,
  RD_KAFKA_ADMIN_OP__CNT,
} rd_kafka_admin_op_t;
typedef struct rd_kafka_AdminOptions_s rd_kafka_AdminOptions_t;
rd_kafka_AdminOptions_t *rd_kafka_AdminOptions_new(rd_kafka_t *rk, rd_kafka_admin_op_t for_api);
void rd_kafka_AdminOptions_destroy(rd_kafka_AdminOptions_t *options);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_request_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_operation_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_validate_only(rd_kafka_AdminOptions_t *options, int true_or_false, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_broker(rd_kafka_AdminOptions_t *options, int32_t broker_id, char *errstr, size_t errstr_size);
void rd_kafka_AdminOptions_set_opaque(rd_kafka_AdminOptions_t *options, void *ev_opaque);
typedef struct rd_kafka_NewTopic_s rd_kafka_NewTopic_t;
rd_kafka_NewTopic_t *rd_kafka_NewTopic_new(const char *topic, int num_partitions, int replication_factor, char *errstr, size_t errstr_size);
void rd_kafka_NewTopic_destroy(rd_kafka_NewTopic_t *new_topic);
void rd_kafka_NewTopic_destroy_array(rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_replica_assignment(rd_kafka_NewTopic_t *new_topic, int32_t partition, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_config(rd_kafka_NewTopic_t *new_topic, const char *name, const char *value);
void rd_kafka_CreateTopics(rd_kafka_t *rk, rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreateTopics_result_topics(const rd_kafka_CreateTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteTopic_s rd_kafka_DeleteTopic_t;
rd_kafka_DeleteTopic_t *rd_kafka_DeleteTopic_new(const char *topic);
void rd_kafka_DeleteTopic_destroy(rd_kafka_DeleteTopic_t *del_topic);
void rd_kafka_DeleteTopic_destroy_array(rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt);
void rd_kafka_DeleteTopics(rd_kafka_t *rk, rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_DeleteTopics_result_topics(const rd_kafka_DeleteTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_NewPartitions_s rd_kafka_NewPartitions_t;
rd_kafka_NewPartitions_t *rd_kafka_NewPartitions_new(const char *topic, size_t new_total_cnt, char *errstr, size_t errstr_size);
void rd_kafka_NewPartitions_destroy(rd_kafka_NewPartitions_t *new_parts);
void rd_kafka_NewPartitions_destroy_array(rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt);
rd_kafka_resp_err_t rd_kafka_NewPartitions_set_replica_assignment(rd_kafka_NewPartitions_t *new_parts, int32_t new_partition_idx, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
void rd_kafka_CreatePartitions(rd_kafka_t *rk, rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreatePartitions_result_topics(const rd_kafka_CreatePartitions_result_t *result, size_t *cntp);
typedef enum rd_kafka_ConfigSource_t {
  RD_KAFKA_CONFIG_SOURCE_UNKNOWN_CONFIG = 0,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG = 1,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG = 2,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG = 3,
  RD_KAFKA_CONFIG_SOURCE_STATIC_BROKER_CONFIG = 4,
  RD_KAFKA_CONFIG_SOURCE_DEFAULT_CONFIG = 5,
  RD_KAFKA_CONFIG_SOURCE__CNT,
} rd_kafka_ConfigSource_t;
const char *rd_kafka_ConfigSource_name(rd_kafka_ConfigSource_t confsource);
typedef struct rd_kafka_ConfigEntry_s rd_kafka_ConfigEntry_t;
const char *rd_kafka_ConfigEntry_name(const rd_kafka_ConfigEntry_t *entry);
const char *rd_kafka_ConfigEntry_value(const rd_kafka_ConfigEntry_t *entry);
rd_kafka_ConfigSource_t rd_kafka_ConfigEntry_source(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_read_only(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_default(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_sensitive(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_synonym(const rd_kafka_ConfigEntry_t *entry);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigEntry_synonyms(const rd_kafka_ConfigEntry_t *entry, size_t *cntp);
typedef enum rd_kafka_ResourceType_t {
  RD_KAFKA_RESOURCE_UNKNOWN = 0,
  RD_KAFKA_RESOURCE_ANY = 1,
  RD_KAFKA_RESOURCE_TOPIC = 2,
  RD_KAFKA_RESOURCE_GROUP = 3,
  RD_KAFKA_RESOURCE_BROKER = 4,
  RD_KAFKA_RESOURCE__CNT,
} rd_kafka_ResourceType_t;
const char *rd_kafka_ResourceType_name(rd_kafka_ResourceType_t restype);
typedef struct rd_kafka_ConfigResource_s rd_kafka_ConfigResource_t;
rd_kafka_ConfigResource_t *rd_kafka_ConfigResource_new(rd_kafka_ResourceType_t restype, const char *resname);
void rd_kafka_ConfigResource_destroy(rd_kafka_ConfigResource_t *config);
void rd_kafka_ConfigResource_destroy_array(rd_kafka_ConfigResource_t **config, size_t config_cnt);
rd_kafka_resp_err_t rd_kafka_ConfigResource_set_config(rd_kafka_ConfigResource_t *config, const char *name, const char *value);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigResource_configs(const rd_kafka_ConfigResource_t *config, size_t *cntp);
rd_kafka_ResourceType_t rd_kafka_ConfigResource_type(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_name(const rd_kafka_ConfigResource_t *config);
rd_kafka_resp_err_t rd_kafka_ConfigResource_error(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_error_string(const rd_kafka_ConfigResource_t *config);
void rd_kafka_AlterConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_AlterConfigs_result_resources(const rd_kafka_AlterConfigs_result_t *result, size_t *cntp);
void rd_kafka_DescribeConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_DescribeConfigs_result_resources(const rd_kafka_DescribeConfigs_result_t *result, size_t *cntp);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token(rd_kafka_t *rk, const char *token_value, int64_t md_lifetime_ms, const char *md_principal_name, const char **extensions, size_t extension_size, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token_failure(rd_kafka_t *rk, const char *errstr);
typedef struct rd_kafka_mock_cluster_s rd_kafka_mock_cluster_t;
rd_kafka_mock_cluster_t *rd_kafka_mock_cluster_new(rd_kafka_t *rk, int broker_cnt);
void rd_kafka_mock_cluster_destroy(rd_kafka_mock_cluster_t *mcluster);
rd_kafka_t *rd_kafka_mock_cluster_handle(const rd_kafka_mock_cluster_t *mcluster);
const char *rd_kafka_mock_cluster_bootstraps(const rd_kafka_mock_cluster_t *mcluster);
void rd_kafka_mock_push_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, ...);
void rd_kafka_mock_topic_set_error(rd_kafka_mock_cluster_t *mcluster, const char *topic, rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_leader(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower_wmarks(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int64_t lo, int64_t hi);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rack(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, const char *rack);
'
rdkafka.h, rdkafka_mock.h

RD_KAFKA_VERSION

public RD_KAFKA_VERSION = 17039615

librdkafka version

Interpreted as hex MM.mm.rr.xx:

  • MM = Major
  • mm = minor
  • rr = revision
  • xx = pre-release id (0xff is the final release)

E.g.: 0x000801ff = 0.8.1

Remarks
This value should only be used during compile time, for runtime checks of version use rd_kafka_version()

RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE

public RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76

Unsupported compression type

RD_KAFKA_RESP_ERR_END_ALL

public RD_KAFKA_RESP_ERR_END_ALL = 83
enum rd_kafka_resp_err_t

RD_KAFKA_ADMIN_OP__CNT

public RD_KAFKA_ADMIN_OP__CNT = 6

Number of ops defined

RD_KAFKA_CDEF

public RD_KAFKA_CDEF = 'typedef long int ssize_t;
typedef struct _IO_FILE FILE;
typedef long int mode_t;
typedef signed int int16_t;
typedef unsigned int uint16_t;
typedef signed int int32_t;
typedef signed long int int64_t;
int rd_kafka_version(void);
const char *rd_kafka_version_str(void);
typedef enum rd_kafka_type_t {
  RD_KAFKA_PRODUCER,
  RD_KAFKA_CONSUMER,
} rd_kafka_type_t;
typedef enum rd_kafka_timestamp_type_t {
  RD_KAFKA_TIMESTAMP_NOT_AVAILABLE,
  RD_KAFKA_TIMESTAMP_CREATE_TIME,
  RD_KAFKA_TIMESTAMP_LOG_APPEND_TIME,
} rd_kafka_timestamp_type_t;
const char *rd_kafka_get_debug_contexts(void);
typedef struct rd_kafka_s rd_kafka_t;
typedef struct rd_kafka_topic_s rd_kafka_topic_t;
typedef struct rd_kafka_conf_s rd_kafka_conf_t;
typedef struct rd_kafka_topic_conf_s rd_kafka_topic_conf_t;
typedef struct rd_kafka_queue_s rd_kafka_queue_t;
typedef struct rd_kafka_op_s rd_kafka_event_t;
typedef struct rd_kafka_topic_result_s rd_kafka_topic_result_t;
typedef struct rd_kafka_consumer_group_metadata_s rd_kafka_consumer_group_metadata_t;
typedef struct rd_kafka_error_s {
  unsigned int code;
  char *errstr;
  unsigned char fatal;
  unsigned char retriable;
  unsigned char txn_requires_abort;
} rd_kafka_error_t;
typedef enum {
  RD_KAFKA_RESP_ERR__BEGIN = (- 200),
  RD_KAFKA_RESP_ERR__BAD_MSG = (- 199),
  RD_KAFKA_RESP_ERR__BAD_COMPRESSION = (- 198),
  RD_KAFKA_RESP_ERR__DESTROY = (- 197),
  RD_KAFKA_RESP_ERR__FAIL = (- 196),
  RD_KAFKA_RESP_ERR__TRANSPORT = (- 195),
  RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE = (- 194),
  RD_KAFKA_RESP_ERR__RESOLVE = (- 193),
  RD_KAFKA_RESP_ERR__MSG_TIMED_OUT = (- 192),
  RD_KAFKA_RESP_ERR__PARTITION_EOF = (- 191),
  RD_KAFKA_RESP_ERR__UNKNOWN_PARTITION = (- 190),
  RD_KAFKA_RESP_ERR__FS = (- 189),
  RD_KAFKA_RESP_ERR__UNKNOWN_TOPIC = (- 188),
  RD_KAFKA_RESP_ERR__ALL_BROKERS_DOWN = (- 187),
  RD_KAFKA_RESP_ERR__INVALID_ARG = (- 186),
  RD_KAFKA_RESP_ERR__TIMED_OUT = (- 185),
  RD_KAFKA_RESP_ERR__QUEUE_FULL = (- 184),
  RD_KAFKA_RESP_ERR__ISR_INSUFF = (- 183),
  RD_KAFKA_RESP_ERR__NODE_UPDATE = (- 182),
  RD_KAFKA_RESP_ERR__SSL = (- 181),
  RD_KAFKA_RESP_ERR__WAIT_COORD = (- 180),
  RD_KAFKA_RESP_ERR__UNKNOWN_GROUP = (- 179),
  RD_KAFKA_RESP_ERR__IN_PROGRESS = (- 178),
  RD_KAFKA_RESP_ERR__PREV_IN_PROGRESS = (- 177),
  RD_KAFKA_RESP_ERR__EXISTING_SUBSCRIPTION = (- 176),
  RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS = (- 175),
  RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS = (- 174),
  RD_KAFKA_RESP_ERR__CONFLICT = (- 173),
  RD_KAFKA_RESP_ERR__STATE = (- 172),
  RD_KAFKA_RESP_ERR__UNKNOWN_PROTOCOL = (- 171),
  RD_KAFKA_RESP_ERR__NOT_IMPLEMENTED = (- 170),
  RD_KAFKA_RESP_ERR__AUTHENTICATION = (- 169),
  RD_KAFKA_RESP_ERR__NO_OFFSET = (- 168),
  RD_KAFKA_RESP_ERR__OUTDATED = (- 167),
  RD_KAFKA_RESP_ERR__TIMED_OUT_QUEUE = (- 166),
  RD_KAFKA_RESP_ERR__UNSUPPORTED_FEATURE = (- 165),
  RD_KAFKA_RESP_ERR__WAIT_CACHE = (- 164),
  RD_KAFKA_RESP_ERR__INTR = (- 163),
  RD_KAFKA_RESP_ERR__KEY_SERIALIZATION = (- 162),
  RD_KAFKA_RESP_ERR__VALUE_SERIALIZATION = (- 161),
  RD_KAFKA_RESP_ERR__KEY_DESERIALIZATION = (- 160),
  RD_KAFKA_RESP_ERR__VALUE_DESERIALIZATION = (- 159),
  RD_KAFKA_RESP_ERR__PARTIAL = (- 158),
  RD_KAFKA_RESP_ERR__READ_ONLY = (- 157),
  RD_KAFKA_RESP_ERR__NOENT = (- 156),
  RD_KAFKA_RESP_ERR__UNDERFLOW = (- 155),
  RD_KAFKA_RESP_ERR__INVALID_TYPE = (- 154),
  RD_KAFKA_RESP_ERR__RETRY = (- 153),
  RD_KAFKA_RESP_ERR__PURGE_QUEUE = (- 152),
  RD_KAFKA_RESP_ERR__PURGE_INFLIGHT = (- 151),
  RD_KAFKA_RESP_ERR__FATAL = (- 150),
  RD_KAFKA_RESP_ERR__INCONSISTENT = (- 149),
  RD_KAFKA_RESP_ERR__GAPLESS_GUARANTEE = (- 148),
  RD_KAFKA_RESP_ERR__MAX_POLL_EXCEEDED = (- 147),
  RD_KAFKA_RESP_ERR__UNKNOWN_BROKER = (- 146),
  RD_KAFKA_RESP_ERR__NOT_CONFIGURED = (- 145),
  RD_KAFKA_RESP_ERR__FENCED = (- 144),
  RD_KAFKA_RESP_ERR__APPLICATION = (- 143),
  RD_KAFKA_RESP_ERR__END = (- 100),
  RD_KAFKA_RESP_ERR_UNKNOWN = (- 1),
  RD_KAFKA_RESP_ERR_NO_ERROR = 0,
  RD_KAFKA_RESP_ERR_OFFSET_OUT_OF_RANGE = 1,
  RD_KAFKA_RESP_ERR_INVALID_MSG = 2,
  RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_OR_PART = 3,
  RD_KAFKA_RESP_ERR_INVALID_MSG_SIZE = 4,
  RD_KAFKA_RESP_ERR_LEADER_NOT_AVAILABLE = 5,
  RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION = 6,
  RD_KAFKA_RESP_ERR_REQUEST_TIMED_OUT = 7,
  RD_KAFKA_RESP_ERR_BROKER_NOT_AVAILABLE = 8,
  RD_KAFKA_RESP_ERR_REPLICA_NOT_AVAILABLE = 9,
  RD_KAFKA_RESP_ERR_MSG_SIZE_TOO_LARGE = 10,
  RD_KAFKA_RESP_ERR_STALE_CTRL_EPOCH = 11,
  RD_KAFKA_RESP_ERR_OFFSET_METADATA_TOO_LARGE = 12,
  RD_KAFKA_RESP_ERR_NETWORK_EXCEPTION = 13,
  RD_KAFKA_RESP_ERR_COORDINATOR_LOAD_IN_PROGRESS = 14,
  RD_KAFKA_RESP_ERR_COORDINATOR_NOT_AVAILABLE = 15,
  RD_KAFKA_RESP_ERR_NOT_COORDINATOR = 16,
  RD_KAFKA_RESP_ERR_TOPIC_EXCEPTION = 17,
  RD_KAFKA_RESP_ERR_RECORD_LIST_TOO_LARGE = 18,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS = 19,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS_AFTER_APPEND = 20,
  RD_KAFKA_RESP_ERR_INVALID_REQUIRED_ACKS = 21,
  RD_KAFKA_RESP_ERR_ILLEGAL_GENERATION = 22,
  RD_KAFKA_RESP_ERR_INCONSISTENT_GROUP_PROTOCOL = 23,
  RD_KAFKA_RESP_ERR_INVALID_GROUP_ID = 24,
  RD_KAFKA_RESP_ERR_UNKNOWN_MEMBER_ID = 25,
  RD_KAFKA_RESP_ERR_INVALID_SESSION_TIMEOUT = 26,
  RD_KAFKA_RESP_ERR_REBALANCE_IN_PROGRESS = 27,
  RD_KAFKA_RESP_ERR_INVALID_COMMIT_OFFSET_SIZE = 28,
  RD_KAFKA_RESP_ERR_TOPIC_AUTHORIZATION_FAILED = 29,
  RD_KAFKA_RESP_ERR_GROUP_AUTHORIZATION_FAILED = 30,
  RD_KAFKA_RESP_ERR_CLUSTER_AUTHORIZATION_FAILED = 31,
  RD_KAFKA_RESP_ERR_INVALID_TIMESTAMP = 32,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_SASL_MECHANISM = 33,
  RD_KAFKA_RESP_ERR_ILLEGAL_SASL_STATE = 34,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_VERSION = 35,
  RD_KAFKA_RESP_ERR_TOPIC_ALREADY_EXISTS = 36,
  RD_KAFKA_RESP_ERR_INVALID_PARTITIONS = 37,
  RD_KAFKA_RESP_ERR_INVALID_REPLICATION_FACTOR = 38,
  RD_KAFKA_RESP_ERR_INVALID_REPLICA_ASSIGNMENT = 39,
  RD_KAFKA_RESP_ERR_INVALID_CONFIG = 40,
  RD_KAFKA_RESP_ERR_NOT_CONTROLLER = 41,
  RD_KAFKA_RESP_ERR_INVALID_REQUEST = 42,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_FOR_MESSAGE_FORMAT = 43,
  RD_KAFKA_RESP_ERR_POLICY_VIOLATION = 44,
  RD_KAFKA_RESP_ERR_OUT_OF_ORDER_SEQUENCE_NUMBER = 45,
  RD_KAFKA_RESP_ERR_DUPLICATE_SEQUENCE_NUMBER = 46,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_EPOCH = 47,
  RD_KAFKA_RESP_ERR_INVALID_TXN_STATE = 48,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_ID_MAPPING = 49,
  RD_KAFKA_RESP_ERR_INVALID_TRANSACTION_TIMEOUT = 50,
  RD_KAFKA_RESP_ERR_CONCURRENT_TRANSACTIONS = 51,
  RD_KAFKA_RESP_ERR_TRANSACTION_COORDINATOR_FENCED = 52,
  RD_KAFKA_RESP_ERR_TRANSACTIONAL_ID_AUTHORIZATION_FAILED = 53,
  RD_KAFKA_RESP_ERR_SECURITY_DISABLED = 54,
  RD_KAFKA_RESP_ERR_OPERATION_NOT_ATTEMPTED = 55,
  RD_KAFKA_RESP_ERR_KAFKA_STORAGE_ERROR = 56,
  RD_KAFKA_RESP_ERR_LOG_DIR_NOT_FOUND = 57,
  RD_KAFKA_RESP_ERR_SASL_AUTHENTICATION_FAILED = 58,
  RD_KAFKA_RESP_ERR_UNKNOWN_PRODUCER_ID = 59,
  RD_KAFKA_RESP_ERR_REASSIGNMENT_IN_PROGRESS = 60,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTH_DISABLED = 61,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_NOT_FOUND = 62,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_OWNER_MISMATCH = 63,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_REQUEST_NOT_ALLOWED = 64,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTHORIZATION_FAILED = 65,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_EXPIRED = 66,
  RD_KAFKA_RESP_ERR_INVALID_PRINCIPAL_TYPE = 67,
  RD_KAFKA_RESP_ERR_NON_EMPTY_GROUP = 68,
  RD_KAFKA_RESP_ERR_GROUP_ID_NOT_FOUND = 69,
  RD_KAFKA_RESP_ERR_FETCH_SESSION_ID_NOT_FOUND = 70,
  RD_KAFKA_RESP_ERR_INVALID_FETCH_SESSION_EPOCH = 71,
  RD_KAFKA_RESP_ERR_LISTENER_NOT_FOUND = 72,
  RD_KAFKA_RESP_ERR_TOPIC_DELETION_DISABLED = 73,
  RD_KAFKA_RESP_ERR_FENCED_LEADER_EPOCH = 74,
  RD_KAFKA_RESP_ERR_UNKNOWN_LEADER_EPOCH = 75,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76,
  RD_KAFKA_RESP_ERR_STALE_BROKER_EPOCH = 77,
  RD_KAFKA_RESP_ERR_OFFSET_NOT_AVAILABLE = 78,
  RD_KAFKA_RESP_ERR_MEMBER_ID_REQUIRED = 79,
  RD_KAFKA_RESP_ERR_PREFERRED_LEADER_NOT_AVAILABLE = 80,
  RD_KAFKA_RESP_ERR_GROUP_MAX_SIZE_REACHED = 81,
  RD_KAFKA_RESP_ERR_FENCED_INSTANCE_ID = 82,
  RD_KAFKA_RESP_ERR_END_ALL,
} rd_kafka_resp_err_t;
struct rd_kafka_err_desc {
  rd_kafka_resp_err_t code;
  char *name;
  char *desc;
};
void rd_kafka_get_err_descs(const struct rd_kafka_err_desc **errdescs, size_t *cntp);
const char *rd_kafka_err2str(rd_kafka_resp_err_t err);
const char *rd_kafka_err2name(rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_last_error(void);
rd_kafka_resp_err_t rd_kafka_errno2err(int errnox);
int rd_kafka_errno(void);
rd_kafka_resp_err_t rd_kafka_fatal_error(rd_kafka_t *rk, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_test_fatal_error(rd_kafka_t *rk, rd_kafka_resp_err_t err, const char *reason);
rd_kafka_resp_err_t rd_kafka_error_code(const rd_kafka_error_t *error);
const char *rd_kafka_error_name(const rd_kafka_error_t *error);
const char *rd_kafka_error_string(const rd_kafka_error_t *error);
int rd_kafka_error_is_fatal(const rd_kafka_error_t *error);
int rd_kafka_error_is_retriable(const rd_kafka_error_t *error);
int rd_kafka_error_txn_requires_abort(const rd_kafka_error_t *error);
void rd_kafka_error_destroy(rd_kafka_error_t *error);
rd_kafka_error_t *rd_kafka_error_new(rd_kafka_resp_err_t code, const char *fmt, ...);
typedef struct rd_kafka_topic_partition_s {
  char *topic;
  int32_t partition;
  int64_t offset;
  void *metadata;
  size_t metadata_size;
  void *opaque;
  rd_kafka_resp_err_t err;
  void *_private;
} rd_kafka_topic_partition_t;
void rd_kafka_topic_partition_destroy(rd_kafka_topic_partition_t *rktpar);
typedef struct rd_kafka_topic_partition_list_s {
  int cnt;
  int size;
  rd_kafka_topic_partition_t *elems;
} rd_kafka_topic_partition_list_t;
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_new(int size);
void rd_kafka_topic_partition_list_destroy(rd_kafka_topic_partition_list_t *rkparlist);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_add(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_add_range(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t start, int32_t stop);
int rd_kafka_topic_partition_list_del(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
int rd_kafka_topic_partition_list_del_by_idx(rd_kafka_topic_partition_list_t *rktparlist, int idx);
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_copy(const rd_kafka_topic_partition_list_t *src);
rd_kafka_resp_err_t rd_kafka_topic_partition_list_set_offset(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition, int64_t offset);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_find(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_sort(rd_kafka_topic_partition_list_t *rktparlist, int (*cmp)(const void *a, const void *b, void *cmp_opaque), void *cmp_opaque);
typedef enum rd_kafka_vtype_t {
  RD_KAFKA_VTYPE_END,
  RD_KAFKA_VTYPE_TOPIC,
  RD_KAFKA_VTYPE_RKT,
  RD_KAFKA_VTYPE_PARTITION,
  RD_KAFKA_VTYPE_VALUE,
  RD_KAFKA_VTYPE_KEY,
  RD_KAFKA_VTYPE_OPAQUE,
  RD_KAFKA_VTYPE_MSGFLAGS,
  RD_KAFKA_VTYPE_TIMESTAMP,
  RD_KAFKA_VTYPE_HEADER,
  RD_KAFKA_VTYPE_HEADERS,
} rd_kafka_vtype_t;
typedef struct rd_kafka_headers_s rd_kafka_headers_t;
rd_kafka_headers_t *rd_kafka_headers_new(size_t initial_count);
void rd_kafka_headers_destroy(rd_kafka_headers_t *hdrs);
rd_kafka_headers_t *rd_kafka_headers_copy(const rd_kafka_headers_t *src);
rd_kafka_resp_err_t rd_kafka_header_add(rd_kafka_headers_t *hdrs, const char *name, ssize_t name_size, const void *value, ssize_t value_size);
rd_kafka_resp_err_t rd_kafka_header_remove(rd_kafka_headers_t *hdrs, const char *name);
rd_kafka_resp_err_t rd_kafka_header_get_last(const rd_kafka_headers_t *hdrs, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get(const rd_kafka_headers_t *hdrs, size_t idx, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get_all(const rd_kafka_headers_t *hdrs, size_t idx, const char **namep, const void **valuep, size_t *sizep);
typedef struct rd_kafka_message_s {
  rd_kafka_resp_err_t err;
  rd_kafka_topic_t *rkt;
  int32_t partition;
  void *payload;
  size_t len;
  void *key;
  size_t key_len;
  int64_t offset;
  void *_private;
} rd_kafka_message_t;
void rd_kafka_message_destroy(rd_kafka_message_t *rkmessage);
int64_t rd_kafka_message_timestamp(const rd_kafka_message_t *rkmessage, rd_kafka_timestamp_type_t *tstype);
int64_t rd_kafka_message_latency(const rd_kafka_message_t *rkmessage);
rd_kafka_resp_err_t rd_kafka_message_headers(const rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
rd_kafka_resp_err_t rd_kafka_message_detach_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
void rd_kafka_message_set_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t *hdrs);
size_t rd_kafka_header_cnt(const rd_kafka_headers_t *hdrs);
typedef enum {
  RD_KAFKA_MSG_STATUS_NOT_PERSISTED = 0,
  RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED = 1,
  RD_KAFKA_MSG_STATUS_PERSISTED = 2,
} rd_kafka_msg_status_t;
rd_kafka_msg_status_t rd_kafka_message_status(const rd_kafka_message_t *rkmessage);
typedef enum {
  RD_KAFKA_CONF_UNKNOWN = (- 2),
  RD_KAFKA_CONF_INVALID = (- 1),
  RD_KAFKA_CONF_OK = 0,
} rd_kafka_conf_res_t;
rd_kafka_conf_t *rd_kafka_conf_new(void);
void rd_kafka_conf_destroy(rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup(const rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup_filter(const rd_kafka_conf_t *conf, size_t filter_cnt, const char **filter);
const rd_kafka_conf_t *rd_kafka_conf(rd_kafka_t *rk);
rd_kafka_conf_res_t rd_kafka_conf_set(rd_kafka_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_events(rd_kafka_conf_t *conf, int events);
void rd_kafka_conf_set_background_event_cb(rd_kafka_conf_t *conf, void (*event_cb)(rd_kafka_t *rk, rd_kafka_event_t *rkev, void *opaque));
void rd_kafka_conf_set_dr_cb(rd_kafka_conf_t *conf, void (*dr_cb)(rd_kafka_t *rk, void *payload, size_t len, rd_kafka_resp_err_t err, void *opaque, void *msg_opaque));
void rd_kafka_conf_set_dr_msg_cb(rd_kafka_conf_t *conf, void (*dr_msg_cb)(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_consume_cb(rd_kafka_conf_t *conf, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_rebalance_cb(rd_kafka_conf_t *conf, void (*rebalance_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *partitions, void *opaque));
void rd_kafka_conf_set_offset_commit_cb(rd_kafka_conf_t *conf, void (*offset_commit_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *opaque));
void rd_kafka_conf_set_error_cb(rd_kafka_conf_t *conf, void (*error_cb)(rd_kafka_t *rk, int err, const char *reason, void *opaque));
void rd_kafka_conf_set_throttle_cb(rd_kafka_conf_t *conf, void (*throttle_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int throttle_time_ms, void *opaque));
void rd_kafka_conf_set_log_cb(rd_kafka_conf_t *conf, void (*log_cb)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_conf_set_stats_cb(rd_kafka_conf_t *conf, int (*stats_cb)(rd_kafka_t *rk, char *json, size_t json_len, void *opaque));
void rd_kafka_conf_set_oauthbearer_token_refresh_cb(rd_kafka_conf_t *conf, void (*oauthbearer_token_refresh_cb)(rd_kafka_t *rk, const char *oauthbearer_config, void *opaque));
void rd_kafka_conf_set_socket_cb(rd_kafka_conf_t *conf, int (*socket_cb)(int domain, int type, int protocol, void *opaque));
void rd_kafka_conf_set_connect_cb(rd_kafka_conf_t *conf, int (*connect_cb)(int sockfd, const struct sockaddr *addr, int addrlen, const char *id, void *opaque));
void rd_kafka_conf_set_closesocket_cb(rd_kafka_conf_t *conf, int (*closesocket_cb)(int sockfd, void *opaque));
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert_verify_cb(rd_kafka_conf_t *conf, int (*ssl_cert_verify_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int *x509_error, int depth, const char *buf, size_t size, char *errstr, size_t errstr_size, void *opaque));
typedef enum rd_kafka_cert_type_t {
  RD_KAFKA_CERT_PUBLIC_KEY,
  RD_KAFKA_CERT_PRIVATE_KEY,
  RD_KAFKA_CERT_CA,
  RD_KAFKA_CERT__CNT,
} rd_kafka_cert_type_t;
typedef enum rd_kafka_cert_enc_t {
  RD_KAFKA_CERT_ENC_PKCS12,
  RD_KAFKA_CERT_ENC_DER,
  RD_KAFKA_CERT_ENC_PEM,
  RD_KAFKA_CERT_ENC__CNT,
} rd_kafka_cert_enc_t;
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert(rd_kafka_conf_t *conf, rd_kafka_cert_type_t cert_type, rd_kafka_cert_enc_t cert_enc, const void *buffer, size_t size, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_opaque(rd_kafka_conf_t *conf, void *opaque);
void *rd_kafka_opaque(const rd_kafka_t *rk);
void rd_kafka_conf_set_default_topic_conf(rd_kafka_conf_t *conf, rd_kafka_topic_conf_t *tconf);
rd_kafka_conf_res_t rd_kafka_conf_get(const rd_kafka_conf_t *conf, const char *name, char *dest, size_t *dest_size);
rd_kafka_conf_res_t rd_kafka_topic_conf_get(const rd_kafka_topic_conf_t *conf, const char *name, char *dest, size_t *dest_size);
const char **rd_kafka_conf_dump(rd_kafka_conf_t *conf, size_t *cntp);
const char **rd_kafka_topic_conf_dump(rd_kafka_topic_conf_t *conf, size_t *cntp);
void rd_kafka_conf_dump_free(const char **arr, size_t cnt);
void rd_kafka_conf_properties_show(FILE *fp);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_new(void);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_dup(const rd_kafka_topic_conf_t *conf);
rd_kafka_topic_conf_t *rd_kafka_default_topic_conf_dup(rd_kafka_t *rk);
void rd_kafka_topic_conf_destroy(rd_kafka_topic_conf_t *topic_conf);
rd_kafka_conf_res_t rd_kafka_topic_conf_set(rd_kafka_topic_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_topic_conf_set_opaque(rd_kafka_topic_conf_t *conf, void *rkt_opaque);
void rd_kafka_topic_conf_set_partitioner_cb(rd_kafka_topic_conf_t *topic_conf, int32_t (*partitioner)(const rd_kafka_topic_t *rkt, const void *keydata, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque));
void rd_kafka_topic_conf_set_msg_order_cmp(rd_kafka_topic_conf_t *topic_conf, int (*msg_order_cmp)(const rd_kafka_message_t *a, const rd_kafka_message_t *b));
int rd_kafka_topic_partition_available(const rd_kafka_topic_t *rkt, int32_t partition);
int32_t rd_kafka_msg_partitioner_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
rd_kafka_t *rd_kafka_new(rd_kafka_type_t type, rd_kafka_conf_t *conf, char *errstr, size_t errstr_size);
void rd_kafka_destroy(rd_kafka_t *rk);
void rd_kafka_destroy_flags(rd_kafka_t *rk, int flags);
const char *rd_kafka_name(const rd_kafka_t *rk);
rd_kafka_type_t rd_kafka_type(const rd_kafka_t *rk);
char *rd_kafka_memberid(const rd_kafka_t *rk);
char *rd_kafka_clusterid(rd_kafka_t *rk, int timeout_ms);
int32_t rd_kafka_controllerid(rd_kafka_t *rk, int timeout_ms);
rd_kafka_topic_t *rd_kafka_topic_new(rd_kafka_t *rk, const char *topic, rd_kafka_topic_conf_t *conf);
void rd_kafka_topic_destroy(rd_kafka_topic_t *rkt);
const char *rd_kafka_topic_name(const rd_kafka_topic_t *rkt);
void *rd_kafka_topic_opaque(const rd_kafka_topic_t *rkt);
int rd_kafka_poll(rd_kafka_t *rk, int timeout_ms);
void rd_kafka_yield(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_pause_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_resume_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_query_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_get_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high);
rd_kafka_resp_err_t rd_kafka_offsets_for_times(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets, int timeout_ms);
void rd_kafka_mem_free(rd_kafka_t *rk, void *ptr);
rd_kafka_queue_t *rd_kafka_queue_new(rd_kafka_t *rk);
void rd_kafka_queue_destroy(rd_kafka_queue_t *rkqu);
rd_kafka_queue_t *rd_kafka_queue_get_main(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_consumer(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_partition(rd_kafka_t *rk, const char *topic, int32_t partition);
rd_kafka_queue_t *rd_kafka_queue_get_background(rd_kafka_t *rk);
void rd_kafka_queue_forward(rd_kafka_queue_t *src, rd_kafka_queue_t *dst);
rd_kafka_resp_err_t rd_kafka_set_log_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu);
size_t rd_kafka_queue_length(rd_kafka_queue_t *rkqu);
void rd_kafka_queue_io_event_enable(rd_kafka_queue_t *rkqu, int fd, const void *payload, size_t size);
void rd_kafka_queue_cb_event_enable(rd_kafka_queue_t *rkqu, void (*event_cb)(rd_kafka_t *rk, void *qev_opaque), void *qev_opaque);
int rd_kafka_consume_start(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
int rd_kafka_consume_start_queue(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, rd_kafka_queue_t *rkqu);
int rd_kafka_consume_stop(rd_kafka_topic_t *rkt, int32_t partition);
rd_kafka_resp_err_t rd_kafka_seek(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, int timeout_ms);
rd_kafka_message_t *rd_kafka_consume(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms);
ssize_t rd_kafka_consume_batch(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_message_t *rd_kafka_consume_queue(rd_kafka_queue_t *rkqu, int timeout_ms);
ssize_t rd_kafka_consume_batch_queue(rd_kafka_queue_t *rkqu, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback_queue(rd_kafka_queue_t *rkqu, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_offset_store(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
rd_kafka_resp_err_t rd_kafka_offsets_store(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets);
rd_kafka_resp_err_t rd_kafka_subscribe(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *topics);
rd_kafka_resp_err_t rd_kafka_unsubscribe(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_subscription(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **topics);
rd_kafka_message_t *rd_kafka_consumer_poll(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_consumer_close(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_assignment(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **partitions);
rd_kafka_resp_err_t rd_kafka_commit(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, int async);
rd_kafka_resp_err_t rd_kafka_commit_message(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, int async);
rd_kafka_resp_err_t rd_kafka_commit_queue(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_queue_t *rkqu, void (*cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_committed(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_position(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata(rd_kafka_t *rk);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new(const char *group_id);
void rd_kafka_consumer_group_metadata_destroy(rd_kafka_consumer_group_metadata_t *);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_write(const rd_kafka_consumer_group_metadata_t *cgmd, void **bufferp, size_t *sizep);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_read(rd_kafka_consumer_group_metadata_t **cgmdp, const void *buffer, size_t size);
int rd_kafka_produce(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, void *payload, size_t len, const void *key, size_t keylen, void *msg_opaque);
rd_kafka_resp_err_t rd_kafka_producev(rd_kafka_t *rk, ...);
int rd_kafka_produce_batch(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, rd_kafka_message_t *rkmessages, int message_cnt);
rd_kafka_resp_err_t rd_kafka_flush(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_purge(rd_kafka_t *rk, int purge_flags);
typedef struct rd_kafka_metadata_broker {
  int32_t id;
  char *host;
  int port;
} rd_kafka_metadata_broker_t;
typedef struct rd_kafka_metadata_partition {
  int32_t id;
  rd_kafka_resp_err_t err;
  int32_t leader;
  int replica_cnt;
  int32_t *replicas;
  int isr_cnt;
  int32_t *isrs;
} rd_kafka_metadata_partition_t;
typedef struct rd_kafka_metadata_topic {
  char *topic;
  int partition_cnt;
  struct rd_kafka_metadata_partition *partitions;
  rd_kafka_resp_err_t err;
} rd_kafka_metadata_topic_t;
typedef struct rd_kafka_metadata {
  int broker_cnt;
  struct rd_kafka_metadata_broker *brokers;
  int topic_cnt;
  struct rd_kafka_metadata_topic *topics;
  int32_t orig_broker_id;
  char *orig_broker_name;
} rd_kafka_metadata_t;
rd_kafka_resp_err_t rd_kafka_metadata(rd_kafka_t *rk, int all_topics, rd_kafka_topic_t *only_rkt, const struct rd_kafka_metadata **metadatap, int timeout_ms);
void rd_kafka_metadata_destroy(const struct rd_kafka_metadata *metadata);
struct rd_kafka_group_member_info {
  char *member_id;
  char *client_id;
  char *client_host;
  void *member_metadata;
  int member_metadata_size;
  void *member_assignment;
  int member_assignment_size;
};
struct rd_kafka_group_info {
  struct rd_kafka_metadata_broker broker;
  char *group;
  rd_kafka_resp_err_t err;
  char *state;
  char *protocol_type;
  char *protocol;
  struct rd_kafka_group_member_info *members;
  int member_cnt;
};
struct rd_kafka_group_list {
  struct rd_kafka_group_info *groups;
  int group_cnt;
};
rd_kafka_resp_err_t rd_kafka_list_groups(rd_kafka_t *rk, const char *group, const struct rd_kafka_group_list **grplistp, int timeout_ms);
void rd_kafka_group_list_destroy(const struct rd_kafka_group_list *grplist);
int rd_kafka_brokers_add(rd_kafka_t *rk, const char *brokerlist);
void rd_kafka_set_logger(rd_kafka_t *rk, void (*func)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_set_log_level(rd_kafka_t *rk, int level);
void rd_kafka_log_print(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
void rd_kafka_log_syslog(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
int rd_kafka_outq_len(rd_kafka_t *rk);
void rd_kafka_dump(FILE *fp, rd_kafka_t *rk);
int rd_kafka_thread_cnt(void);
typedef enum rd_kafka_thread_type_t {
  RD_KAFKA_THREAD_MAIN,
  RD_KAFKA_THREAD_BACKGROUND,
  RD_KAFKA_THREAD_BROKER,
} rd_kafka_thread_type_t;
int rd_kafka_wait_destroyed(int timeout_ms);
int rd_kafka_unittest(void);
rd_kafka_resp_err_t rd_kafka_poll_set_consumer(rd_kafka_t *rk);
typedef int rd_kafka_event_type_t;
rd_kafka_event_type_t rd_kafka_event_type(const rd_kafka_event_t *rkev);
const char *rd_kafka_event_name(const rd_kafka_event_t *rkev);
void rd_kafka_event_destroy(rd_kafka_event_t *rkev);
const rd_kafka_message_t *rd_kafka_event_message_next(rd_kafka_event_t *rkev);
size_t rd_kafka_event_message_array(rd_kafka_event_t *rkev, const rd_kafka_message_t **rkmessages, size_t size);
size_t rd_kafka_event_message_count(rd_kafka_event_t *rkev);
const char *rd_kafka_event_config_string(rd_kafka_event_t *rkev);
rd_kafka_resp_err_t rd_kafka_event_error(rd_kafka_event_t *rkev);
const char *rd_kafka_event_error_string(rd_kafka_event_t *rkev);
int rd_kafka_event_error_is_fatal(rd_kafka_event_t *rkev);
void *rd_kafka_event_opaque(rd_kafka_event_t *rkev);
int rd_kafka_event_log(rd_kafka_event_t *rkev, const char **fac, const char **str, int *level);
const char *rd_kafka_event_stats(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_list_t *rd_kafka_event_topic_partition_list(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_t *rd_kafka_event_topic_partition(rd_kafka_event_t *rkev);
typedef rd_kafka_event_t rd_kafka_CreateTopics_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteTopics_result_t;
typedef rd_kafka_event_t rd_kafka_CreatePartitions_result_t;
typedef rd_kafka_event_t rd_kafka_AlterConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeConfigs_result_t;
const rd_kafka_CreateTopics_result_t *rd_kafka_event_CreateTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteTopics_result_t *rd_kafka_event_DeleteTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_CreatePartitions_result_t *rd_kafka_event_CreatePartitions_result(rd_kafka_event_t *rkev);
const rd_kafka_AlterConfigs_result_t *rd_kafka_event_AlterConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeConfigs_result_t *rd_kafka_event_DescribeConfigs_result(rd_kafka_event_t *rkev);
rd_kafka_event_t *rd_kafka_queue_poll(rd_kafka_queue_t *rkqu, int timeout_ms);
int rd_kafka_queue_poll_callback(rd_kafka_queue_t *rkqu, int timeout_ms);
typedef rd_kafka_resp_err_t (rd_kafka_plugin_f_conf_init_t)(rd_kafka_conf_t *conf, void **plug_opaquep, char *errstr, size_t errstr_size);
typedef rd_kafka_conf_res_t (rd_kafka_interceptor_f_on_conf_set_t)(rd_kafka_conf_t *conf, const char *name, const char *val, char *errstr, size_t errstr_size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_dup_t)(rd_kafka_conf_t *new_conf, const rd_kafka_conf_t *old_conf, size_t filter_cnt, const char **filter, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_destroy_t)(void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_new_t)(rd_kafka_t *rk, const rd_kafka_conf_t *conf, void *ic_opaque, char *errstr, size_t errstr_size);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_destroy_t)(rd_kafka_t *rk, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_send_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_acknowledgement_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_consume_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_commit_t)(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_request_sent_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_start_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_exit_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_set(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_set_t *on_conf_set, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_dup(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_dup_t *on_conf_dup, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_destroy(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_destroy_t *on_conf_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_new(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_new_t *on_new, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_destroy(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_destroy_t *on_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_send(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_send_t *on_send, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_acknowledgement(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_acknowledgement_t *on_acknowledgement, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_consume(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_consume_t *on_consume, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_commit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_commit_t *on_commit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_request_sent(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_request_sent_t *on_request_sent, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_start(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_start_t *on_thread_start, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_exit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_exit_t *on_thread_exit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_topic_result_error(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_error_string(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_name(const rd_kafka_topic_result_t *topicres);
typedef enum rd_kafka_admin_op_t {
  RD_KAFKA_ADMIN_OP_ANY = 0,
  RD_KAFKA_ADMIN_OP_CREATETOPICS,
  RD_KAFKA_ADMIN_OP_DELETETOPICS,
  RD_KAFKA_ADMIN_OP_CREATEPARTITIONS,
  RD_KAFKA_ADMIN_OP_ALTERCONFIGS,
  RD_KAFKA_ADMIN_OP_DESCRIBECONFIGS,
  RD_KAFKA_ADMIN_OP__CNT,
} rd_kafka_admin_op_t;
typedef struct rd_kafka_AdminOptions_s rd_kafka_AdminOptions_t;
rd_kafka_AdminOptions_t *rd_kafka_AdminOptions_new(rd_kafka_t *rk, rd_kafka_admin_op_t for_api);
void rd_kafka_AdminOptions_destroy(rd_kafka_AdminOptions_t *options);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_request_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_operation_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_validate_only(rd_kafka_AdminOptions_t *options, int true_or_false, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_broker(rd_kafka_AdminOptions_t *options, int32_t broker_id, char *errstr, size_t errstr_size);
void rd_kafka_AdminOptions_set_opaque(rd_kafka_AdminOptions_t *options, void *ev_opaque);
typedef struct rd_kafka_NewTopic_s rd_kafka_NewTopic_t;
rd_kafka_NewTopic_t *rd_kafka_NewTopic_new(const char *topic, int num_partitions, int replication_factor, char *errstr, size_t errstr_size);
void rd_kafka_NewTopic_destroy(rd_kafka_NewTopic_t *new_topic);
void rd_kafka_NewTopic_destroy_array(rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_replica_assignment(rd_kafka_NewTopic_t *new_topic, int32_t partition, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_config(rd_kafka_NewTopic_t *new_topic, const char *name, const char *value);
void rd_kafka_CreateTopics(rd_kafka_t *rk, rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreateTopics_result_topics(const rd_kafka_CreateTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteTopic_s rd_kafka_DeleteTopic_t;
rd_kafka_DeleteTopic_t *rd_kafka_DeleteTopic_new(const char *topic);
void rd_kafka_DeleteTopic_destroy(rd_kafka_DeleteTopic_t *del_topic);
void rd_kafka_DeleteTopic_destroy_array(rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt);
void rd_kafka_DeleteTopics(rd_kafka_t *rk, rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_DeleteTopics_result_topics(const rd_kafka_DeleteTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_NewPartitions_s rd_kafka_NewPartitions_t;
rd_kafka_NewPartitions_t *rd_kafka_NewPartitions_new(const char *topic, size_t new_total_cnt, char *errstr, size_t errstr_size);
void rd_kafka_NewPartitions_destroy(rd_kafka_NewPartitions_t *new_parts);
void rd_kafka_NewPartitions_destroy_array(rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt);
rd_kafka_resp_err_t rd_kafka_NewPartitions_set_replica_assignment(rd_kafka_NewPartitions_t *new_parts, int32_t new_partition_idx, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
void rd_kafka_CreatePartitions(rd_kafka_t *rk, rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreatePartitions_result_topics(const rd_kafka_CreatePartitions_result_t *result, size_t *cntp);
typedef enum rd_kafka_ConfigSource_t {
  RD_KAFKA_CONFIG_SOURCE_UNKNOWN_CONFIG = 0,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG = 1,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG = 2,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG = 3,
  RD_KAFKA_CONFIG_SOURCE_STATIC_BROKER_CONFIG = 4,
  RD_KAFKA_CONFIG_SOURCE_DEFAULT_CONFIG = 5,
  RD_KAFKA_CONFIG_SOURCE__CNT,
} rd_kafka_ConfigSource_t;
const char *rd_kafka_ConfigSource_name(rd_kafka_ConfigSource_t confsource);
typedef struct rd_kafka_ConfigEntry_s rd_kafka_ConfigEntry_t;
const char *rd_kafka_ConfigEntry_name(const rd_kafka_ConfigEntry_t *entry);
const char *rd_kafka_ConfigEntry_value(const rd_kafka_ConfigEntry_t *entry);
rd_kafka_ConfigSource_t rd_kafka_ConfigEntry_source(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_read_only(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_default(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_sensitive(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_synonym(const rd_kafka_ConfigEntry_t *entry);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigEntry_synonyms(const rd_kafka_ConfigEntry_t *entry, size_t *cntp);
typedef enum rd_kafka_ResourceType_t {
  RD_KAFKA_RESOURCE_UNKNOWN = 0,
  RD_KAFKA_RESOURCE_ANY = 1,
  RD_KAFKA_RESOURCE_TOPIC = 2,
  RD_KAFKA_RESOURCE_GROUP = 3,
  RD_KAFKA_RESOURCE_BROKER = 4,
  RD_KAFKA_RESOURCE__CNT,
} rd_kafka_ResourceType_t;
const char *rd_kafka_ResourceType_name(rd_kafka_ResourceType_t restype);
typedef struct rd_kafka_ConfigResource_s rd_kafka_ConfigResource_t;
rd_kafka_ConfigResource_t *rd_kafka_ConfigResource_new(rd_kafka_ResourceType_t restype, const char *resname);
void rd_kafka_ConfigResource_destroy(rd_kafka_ConfigResource_t *config);
void rd_kafka_ConfigResource_destroy_array(rd_kafka_ConfigResource_t **config, size_t config_cnt);
rd_kafka_resp_err_t rd_kafka_ConfigResource_set_config(rd_kafka_ConfigResource_t *config, const char *name, const char *value);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigResource_configs(const rd_kafka_ConfigResource_t *config, size_t *cntp);
rd_kafka_ResourceType_t rd_kafka_ConfigResource_type(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_name(const rd_kafka_ConfigResource_t *config);
rd_kafka_resp_err_t rd_kafka_ConfigResource_error(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_error_string(const rd_kafka_ConfigResource_t *config);
void rd_kafka_AlterConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_AlterConfigs_result_resources(const rd_kafka_AlterConfigs_result_t *result, size_t *cntp);
void rd_kafka_DescribeConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_DescribeConfigs_result_resources(const rd_kafka_DescribeConfigs_result_t *result, size_t *cntp);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token(rd_kafka_t *rk, const char *token_value, int64_t md_lifetime_ms, const char *md_principal_name, const char **extensions, size_t extension_size, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token_failure(rd_kafka_t *rk, const char *errstr);
rd_kafka_error_t *rd_kafka_init_transactions(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_begin_transaction(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_send_offsets_to_transaction(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, const rd_kafka_consumer_group_metadata_t *cgmetadata, int timeout_ms);
rd_kafka_error_t *rd_kafka_commit_transaction(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_abort_transaction(rd_kafka_t *rk, int timeout_ms);
typedef struct rd_kafka_mock_cluster_s rd_kafka_mock_cluster_t;
rd_kafka_mock_cluster_t *rd_kafka_mock_cluster_new(rd_kafka_t *rk, int broker_cnt);
void rd_kafka_mock_cluster_destroy(rd_kafka_mock_cluster_t *mcluster);
rd_kafka_t *rd_kafka_mock_cluster_handle(const rd_kafka_mock_cluster_t *mcluster);
rd_kafka_mock_cluster_t *rd_kafka_handle_mock_cluster(const rd_kafka_t *rk);
const char *rd_kafka_mock_cluster_bootstraps(const rd_kafka_mock_cluster_t *mcluster);
void rd_kafka_mock_push_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, ...);
void rd_kafka_mock_topic_set_error(rd_kafka_mock_cluster_t *mcluster, const char *topic, rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_mock_topic_create(rd_kafka_mock_cluster_t *mcluster, const char *topic, int partition_cnt, int replication_factor);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_leader(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower_wmarks(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int64_t lo, int64_t hi);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_down(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_up(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rack(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, const char *rack);
rd_kafka_resp_err_t rd_kafka_mock_coordinator_set(rd_kafka_mock_cluster_t *mcluster, const char *key_type, const char *key, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_set_apiversion(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, int16_t MinVersion, int16_t MaxVersion);
'
rdkafka.h, rdkafka_mock.h

RD_KAFKA_VERSION

public RD_KAFKA_VERSION = 17040127

librdkafka version

Interpreted as hex MM.mm.rr.xx:

  • MM = Major
  • mm = minor
  • rr = revision
  • xx = pre-release id (0xff is the final release)

E.g.: 0x000801ff = 0.8.1

Remarks
This value should only be used during compile time, for runtime checks of version use rd_kafka_version()

RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE

public RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76

Unsupported compression type

RD_KAFKA_RESP_ERR_END_ALL

public RD_KAFKA_RESP_ERR_END_ALL = 83
enum rd_kafka_resp_err_t

RD_KAFKA_ADMIN_OP__CNT

public RD_KAFKA_ADMIN_OP__CNT = 6

Number of ops defined

RD_KAFKA_CDEF

public RD_KAFKA_CDEF = 'typedef long int ssize_t;
typedef struct _IO_FILE FILE;
typedef long int mode_t;
typedef signed int int16_t;
typedef unsigned int uint16_t;
typedef signed int int32_t;
typedef signed long int int64_t;
int rd_kafka_version(void);
const char *rd_kafka_version_str(void);
typedef enum rd_kafka_type_t {
  RD_KAFKA_PRODUCER,
  RD_KAFKA_CONSUMER,
} rd_kafka_type_t;
typedef enum rd_kafka_timestamp_type_t {
  RD_KAFKA_TIMESTAMP_NOT_AVAILABLE,
  RD_KAFKA_TIMESTAMP_CREATE_TIME,
  RD_KAFKA_TIMESTAMP_LOG_APPEND_TIME,
} rd_kafka_timestamp_type_t;
const char *rd_kafka_get_debug_contexts(void);
typedef struct rd_kafka_s rd_kafka_t;
typedef struct rd_kafka_topic_s rd_kafka_topic_t;
typedef struct rd_kafka_conf_s rd_kafka_conf_t;
typedef struct rd_kafka_topic_conf_s rd_kafka_topic_conf_t;
typedef struct rd_kafka_queue_s rd_kafka_queue_t;
typedef struct rd_kafka_op_s rd_kafka_event_t;
typedef struct rd_kafka_topic_result_s rd_kafka_topic_result_t;
typedef struct rd_kafka_consumer_group_metadata_s rd_kafka_consumer_group_metadata_t;
typedef struct rd_kafka_error_s {
  unsigned int code;
  char *errstr;
  unsigned char fatal;
  unsigned char retriable;
  unsigned char txn_requires_abort;
} rd_kafka_error_t;
typedef enum {
  RD_KAFKA_RESP_ERR__BEGIN = (- 200),
  RD_KAFKA_RESP_ERR__BAD_MSG = (- 199),
  RD_KAFKA_RESP_ERR__BAD_COMPRESSION = (- 198),
  RD_KAFKA_RESP_ERR__DESTROY = (- 197),
  RD_KAFKA_RESP_ERR__FAIL = (- 196),
  RD_KAFKA_RESP_ERR__TRANSPORT = (- 195),
  RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE = (- 194),
  RD_KAFKA_RESP_ERR__RESOLVE = (- 193),
  RD_KAFKA_RESP_ERR__MSG_TIMED_OUT = (- 192),
  RD_KAFKA_RESP_ERR__PARTITION_EOF = (- 191),
  RD_KAFKA_RESP_ERR__UNKNOWN_PARTITION = (- 190),
  RD_KAFKA_RESP_ERR__FS = (- 189),
  RD_KAFKA_RESP_ERR__UNKNOWN_TOPIC = (- 188),
  RD_KAFKA_RESP_ERR__ALL_BROKERS_DOWN = (- 187),
  RD_KAFKA_RESP_ERR__INVALID_ARG = (- 186),
  RD_KAFKA_RESP_ERR__TIMED_OUT = (- 185),
  RD_KAFKA_RESP_ERR__QUEUE_FULL = (- 184),
  RD_KAFKA_RESP_ERR__ISR_INSUFF = (- 183),
  RD_KAFKA_RESP_ERR__NODE_UPDATE = (- 182),
  RD_KAFKA_RESP_ERR__SSL = (- 181),
  RD_KAFKA_RESP_ERR__WAIT_COORD = (- 180),
  RD_KAFKA_RESP_ERR__UNKNOWN_GROUP = (- 179),
  RD_KAFKA_RESP_ERR__IN_PROGRESS = (- 178),
  RD_KAFKA_RESP_ERR__PREV_IN_PROGRESS = (- 177),
  RD_KAFKA_RESP_ERR__EXISTING_SUBSCRIPTION = (- 176),
  RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS = (- 175),
  RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS = (- 174),
  RD_KAFKA_RESP_ERR__CONFLICT = (- 173),
  RD_KAFKA_RESP_ERR__STATE = (- 172),
  RD_KAFKA_RESP_ERR__UNKNOWN_PROTOCOL = (- 171),
  RD_KAFKA_RESP_ERR__NOT_IMPLEMENTED = (- 170),
  RD_KAFKA_RESP_ERR__AUTHENTICATION = (- 169),
  RD_KAFKA_RESP_ERR__NO_OFFSET = (- 168),
  RD_KAFKA_RESP_ERR__OUTDATED = (- 167),
  RD_KAFKA_RESP_ERR__TIMED_OUT_QUEUE = (- 166),
  RD_KAFKA_RESP_ERR__UNSUPPORTED_FEATURE = (- 165),
  RD_KAFKA_RESP_ERR__WAIT_CACHE = (- 164),
  RD_KAFKA_RESP_ERR__INTR = (- 163),
  RD_KAFKA_RESP_ERR__KEY_SERIALIZATION = (- 162),
  RD_KAFKA_RESP_ERR__VALUE_SERIALIZATION = (- 161),
  RD_KAFKA_RESP_ERR__KEY_DESERIALIZATION = (- 160),
  RD_KAFKA_RESP_ERR__VALUE_DESERIALIZATION = (- 159),
  RD_KAFKA_RESP_ERR__PARTIAL = (- 158),
  RD_KAFKA_RESP_ERR__READ_ONLY = (- 157),
  RD_KAFKA_RESP_ERR__NOENT = (- 156),
  RD_KAFKA_RESP_ERR__UNDERFLOW = (- 155),
  RD_KAFKA_RESP_ERR__INVALID_TYPE = (- 154),
  RD_KAFKA_RESP_ERR__RETRY = (- 153),
  RD_KAFKA_RESP_ERR__PURGE_QUEUE = (- 152),
  RD_KAFKA_RESP_ERR__PURGE_INFLIGHT = (- 151),
  RD_KAFKA_RESP_ERR__FATAL = (- 150),
  RD_KAFKA_RESP_ERR__INCONSISTENT = (- 149),
  RD_KAFKA_RESP_ERR__GAPLESS_GUARANTEE = (- 148),
  RD_KAFKA_RESP_ERR__MAX_POLL_EXCEEDED = (- 147),
  RD_KAFKA_RESP_ERR__UNKNOWN_BROKER = (- 146),
  RD_KAFKA_RESP_ERR__NOT_CONFIGURED = (- 145),
  RD_KAFKA_RESP_ERR__FENCED = (- 144),
  RD_KAFKA_RESP_ERR__APPLICATION = (- 143),
  RD_KAFKA_RESP_ERR__END = (- 100),
  RD_KAFKA_RESP_ERR_UNKNOWN = (- 1),
  RD_KAFKA_RESP_ERR_NO_ERROR = 0,
  RD_KAFKA_RESP_ERR_OFFSET_OUT_OF_RANGE = 1,
  RD_KAFKA_RESP_ERR_INVALID_MSG = 2,
  RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_OR_PART = 3,
  RD_KAFKA_RESP_ERR_INVALID_MSG_SIZE = 4,
  RD_KAFKA_RESP_ERR_LEADER_NOT_AVAILABLE = 5,
  RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION = 6,
  RD_KAFKA_RESP_ERR_REQUEST_TIMED_OUT = 7,
  RD_KAFKA_RESP_ERR_BROKER_NOT_AVAILABLE = 8,
  RD_KAFKA_RESP_ERR_REPLICA_NOT_AVAILABLE = 9,
  RD_KAFKA_RESP_ERR_MSG_SIZE_TOO_LARGE = 10,
  RD_KAFKA_RESP_ERR_STALE_CTRL_EPOCH = 11,
  RD_KAFKA_RESP_ERR_OFFSET_METADATA_TOO_LARGE = 12,
  RD_KAFKA_RESP_ERR_NETWORK_EXCEPTION = 13,
  RD_KAFKA_RESP_ERR_COORDINATOR_LOAD_IN_PROGRESS = 14,
  RD_KAFKA_RESP_ERR_COORDINATOR_NOT_AVAILABLE = 15,
  RD_KAFKA_RESP_ERR_NOT_COORDINATOR = 16,
  RD_KAFKA_RESP_ERR_TOPIC_EXCEPTION = 17,
  RD_KAFKA_RESP_ERR_RECORD_LIST_TOO_LARGE = 18,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS = 19,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS_AFTER_APPEND = 20,
  RD_KAFKA_RESP_ERR_INVALID_REQUIRED_ACKS = 21,
  RD_KAFKA_RESP_ERR_ILLEGAL_GENERATION = 22,
  RD_KAFKA_RESP_ERR_INCONSISTENT_GROUP_PROTOCOL = 23,
  RD_KAFKA_RESP_ERR_INVALID_GROUP_ID = 24,
  RD_KAFKA_RESP_ERR_UNKNOWN_MEMBER_ID = 25,
  RD_KAFKA_RESP_ERR_INVALID_SESSION_TIMEOUT = 26,
  RD_KAFKA_RESP_ERR_REBALANCE_IN_PROGRESS = 27,
  RD_KAFKA_RESP_ERR_INVALID_COMMIT_OFFSET_SIZE = 28,
  RD_KAFKA_RESP_ERR_TOPIC_AUTHORIZATION_FAILED = 29,
  RD_KAFKA_RESP_ERR_GROUP_AUTHORIZATION_FAILED = 30,
  RD_KAFKA_RESP_ERR_CLUSTER_AUTHORIZATION_FAILED = 31,
  RD_KAFKA_RESP_ERR_INVALID_TIMESTAMP = 32,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_SASL_MECHANISM = 33,
  RD_KAFKA_RESP_ERR_ILLEGAL_SASL_STATE = 34,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_VERSION = 35,
  RD_KAFKA_RESP_ERR_TOPIC_ALREADY_EXISTS = 36,
  RD_KAFKA_RESP_ERR_INVALID_PARTITIONS = 37,
  RD_KAFKA_RESP_ERR_INVALID_REPLICATION_FACTOR = 38,
  RD_KAFKA_RESP_ERR_INVALID_REPLICA_ASSIGNMENT = 39,
  RD_KAFKA_RESP_ERR_INVALID_CONFIG = 40,
  RD_KAFKA_RESP_ERR_NOT_CONTROLLER = 41,
  RD_KAFKA_RESP_ERR_INVALID_REQUEST = 42,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_FOR_MESSAGE_FORMAT = 43,
  RD_KAFKA_RESP_ERR_POLICY_VIOLATION = 44,
  RD_KAFKA_RESP_ERR_OUT_OF_ORDER_SEQUENCE_NUMBER = 45,
  RD_KAFKA_RESP_ERR_DUPLICATE_SEQUENCE_NUMBER = 46,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_EPOCH = 47,
  RD_KAFKA_RESP_ERR_INVALID_TXN_STATE = 48,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_ID_MAPPING = 49,
  RD_KAFKA_RESP_ERR_INVALID_TRANSACTION_TIMEOUT = 50,
  RD_KAFKA_RESP_ERR_CONCURRENT_TRANSACTIONS = 51,
  RD_KAFKA_RESP_ERR_TRANSACTION_COORDINATOR_FENCED = 52,
  RD_KAFKA_RESP_ERR_TRANSACTIONAL_ID_AUTHORIZATION_FAILED = 53,
  RD_KAFKA_RESP_ERR_SECURITY_DISABLED = 54,
  RD_KAFKA_RESP_ERR_OPERATION_NOT_ATTEMPTED = 55,
  RD_KAFKA_RESP_ERR_KAFKA_STORAGE_ERROR = 56,
  RD_KAFKA_RESP_ERR_LOG_DIR_NOT_FOUND = 57,
  RD_KAFKA_RESP_ERR_SASL_AUTHENTICATION_FAILED = 58,
  RD_KAFKA_RESP_ERR_UNKNOWN_PRODUCER_ID = 59,
  RD_KAFKA_RESP_ERR_REASSIGNMENT_IN_PROGRESS = 60,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTH_DISABLED = 61,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_NOT_FOUND = 62,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_OWNER_MISMATCH = 63,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_REQUEST_NOT_ALLOWED = 64,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTHORIZATION_FAILED = 65,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_EXPIRED = 66,
  RD_KAFKA_RESP_ERR_INVALID_PRINCIPAL_TYPE = 67,
  RD_KAFKA_RESP_ERR_NON_EMPTY_GROUP = 68,
  RD_KAFKA_RESP_ERR_GROUP_ID_NOT_FOUND = 69,
  RD_KAFKA_RESP_ERR_FETCH_SESSION_ID_NOT_FOUND = 70,
  RD_KAFKA_RESP_ERR_INVALID_FETCH_SESSION_EPOCH = 71,
  RD_KAFKA_RESP_ERR_LISTENER_NOT_FOUND = 72,
  RD_KAFKA_RESP_ERR_TOPIC_DELETION_DISABLED = 73,
  RD_KAFKA_RESP_ERR_FENCED_LEADER_EPOCH = 74,
  RD_KAFKA_RESP_ERR_UNKNOWN_LEADER_EPOCH = 75,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76,
  RD_KAFKA_RESP_ERR_STALE_BROKER_EPOCH = 77,
  RD_KAFKA_RESP_ERR_OFFSET_NOT_AVAILABLE = 78,
  RD_KAFKA_RESP_ERR_MEMBER_ID_REQUIRED = 79,
  RD_KAFKA_RESP_ERR_PREFERRED_LEADER_NOT_AVAILABLE = 80,
  RD_KAFKA_RESP_ERR_GROUP_MAX_SIZE_REACHED = 81,
  RD_KAFKA_RESP_ERR_FENCED_INSTANCE_ID = 82,
  RD_KAFKA_RESP_ERR_END_ALL,
} rd_kafka_resp_err_t;
struct rd_kafka_err_desc {
  rd_kafka_resp_err_t code;
  char *name;
  char *desc;
};
void rd_kafka_get_err_descs(const struct rd_kafka_err_desc **errdescs, size_t *cntp);
const char *rd_kafka_err2str(rd_kafka_resp_err_t err);
const char *rd_kafka_err2name(rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_last_error(void);
rd_kafka_resp_err_t rd_kafka_errno2err(int errnox);
int rd_kafka_errno(void);
rd_kafka_resp_err_t rd_kafka_fatal_error(rd_kafka_t *rk, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_test_fatal_error(rd_kafka_t *rk, rd_kafka_resp_err_t err, const char *reason);
rd_kafka_resp_err_t rd_kafka_error_code(const rd_kafka_error_t *error);
const char *rd_kafka_error_name(const rd_kafka_error_t *error);
const char *rd_kafka_error_string(const rd_kafka_error_t *error);
int rd_kafka_error_is_fatal(const rd_kafka_error_t *error);
int rd_kafka_error_is_retriable(const rd_kafka_error_t *error);
int rd_kafka_error_txn_requires_abort(const rd_kafka_error_t *error);
void rd_kafka_error_destroy(rd_kafka_error_t *error);
rd_kafka_error_t *rd_kafka_error_new(rd_kafka_resp_err_t code, const char *fmt, ...);
typedef struct rd_kafka_topic_partition_s {
  char *topic;
  int32_t partition;
  int64_t offset;
  void *metadata;
  size_t metadata_size;
  void *opaque;
  rd_kafka_resp_err_t err;
  void *_private;
} rd_kafka_topic_partition_t;
void rd_kafka_topic_partition_destroy(rd_kafka_topic_partition_t *rktpar);
typedef struct rd_kafka_topic_partition_list_s {
  int cnt;
  int size;
  rd_kafka_topic_partition_t *elems;
} rd_kafka_topic_partition_list_t;
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_new(int size);
void rd_kafka_topic_partition_list_destroy(rd_kafka_topic_partition_list_t *rkparlist);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_add(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_add_range(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t start, int32_t stop);
int rd_kafka_topic_partition_list_del(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
int rd_kafka_topic_partition_list_del_by_idx(rd_kafka_topic_partition_list_t *rktparlist, int idx);
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_copy(const rd_kafka_topic_partition_list_t *src);
rd_kafka_resp_err_t rd_kafka_topic_partition_list_set_offset(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition, int64_t offset);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_find(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_sort(rd_kafka_topic_partition_list_t *rktparlist, int (*cmp)(const void *a, const void *b, void *cmp_opaque), void *cmp_opaque);
typedef enum rd_kafka_vtype_t {
  RD_KAFKA_VTYPE_END,
  RD_KAFKA_VTYPE_TOPIC,
  RD_KAFKA_VTYPE_RKT,
  RD_KAFKA_VTYPE_PARTITION,
  RD_KAFKA_VTYPE_VALUE,
  RD_KAFKA_VTYPE_KEY,
  RD_KAFKA_VTYPE_OPAQUE,
  RD_KAFKA_VTYPE_MSGFLAGS,
  RD_KAFKA_VTYPE_TIMESTAMP,
  RD_KAFKA_VTYPE_HEADER,
  RD_KAFKA_VTYPE_HEADERS,
} rd_kafka_vtype_t;
typedef struct rd_kafka_headers_s rd_kafka_headers_t;
rd_kafka_headers_t *rd_kafka_headers_new(size_t initial_count);
void rd_kafka_headers_destroy(rd_kafka_headers_t *hdrs);
rd_kafka_headers_t *rd_kafka_headers_copy(const rd_kafka_headers_t *src);
rd_kafka_resp_err_t rd_kafka_header_add(rd_kafka_headers_t *hdrs, const char *name, ssize_t name_size, const void *value, ssize_t value_size);
rd_kafka_resp_err_t rd_kafka_header_remove(rd_kafka_headers_t *hdrs, const char *name);
rd_kafka_resp_err_t rd_kafka_header_get_last(const rd_kafka_headers_t *hdrs, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get(const rd_kafka_headers_t *hdrs, size_t idx, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get_all(const rd_kafka_headers_t *hdrs, size_t idx, const char **namep, const void **valuep, size_t *sizep);
typedef struct rd_kafka_message_s {
  rd_kafka_resp_err_t err;
  rd_kafka_topic_t *rkt;
  int32_t partition;
  void *payload;
  size_t len;
  void *key;
  size_t key_len;
  int64_t offset;
  void *_private;
} rd_kafka_message_t;
void rd_kafka_message_destroy(rd_kafka_message_t *rkmessage);
int64_t rd_kafka_message_timestamp(const rd_kafka_message_t *rkmessage, rd_kafka_timestamp_type_t *tstype);
int64_t rd_kafka_message_latency(const rd_kafka_message_t *rkmessage);
rd_kafka_resp_err_t rd_kafka_message_headers(const rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
rd_kafka_resp_err_t rd_kafka_message_detach_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
void rd_kafka_message_set_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t *hdrs);
size_t rd_kafka_header_cnt(const rd_kafka_headers_t *hdrs);
typedef enum {
  RD_KAFKA_MSG_STATUS_NOT_PERSISTED = 0,
  RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED = 1,
  RD_KAFKA_MSG_STATUS_PERSISTED = 2,
} rd_kafka_msg_status_t;
rd_kafka_msg_status_t rd_kafka_message_status(const rd_kafka_message_t *rkmessage);
typedef enum {
  RD_KAFKA_CONF_UNKNOWN = (- 2),
  RD_KAFKA_CONF_INVALID = (- 1),
  RD_KAFKA_CONF_OK = 0,
} rd_kafka_conf_res_t;
rd_kafka_conf_t *rd_kafka_conf_new(void);
void rd_kafka_conf_destroy(rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup(const rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup_filter(const rd_kafka_conf_t *conf, size_t filter_cnt, const char **filter);
const rd_kafka_conf_t *rd_kafka_conf(rd_kafka_t *rk);
rd_kafka_conf_res_t rd_kafka_conf_set(rd_kafka_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_events(rd_kafka_conf_t *conf, int events);
void rd_kafka_conf_set_background_event_cb(rd_kafka_conf_t *conf, void (*event_cb)(rd_kafka_t *rk, rd_kafka_event_t *rkev, void *opaque));
void rd_kafka_conf_set_dr_cb(rd_kafka_conf_t *conf, void (*dr_cb)(rd_kafka_t *rk, void *payload, size_t len, rd_kafka_resp_err_t err, void *opaque, void *msg_opaque));
void rd_kafka_conf_set_dr_msg_cb(rd_kafka_conf_t *conf, void (*dr_msg_cb)(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_consume_cb(rd_kafka_conf_t *conf, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_rebalance_cb(rd_kafka_conf_t *conf, void (*rebalance_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *partitions, void *opaque));
void rd_kafka_conf_set_offset_commit_cb(rd_kafka_conf_t *conf, void (*offset_commit_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *opaque));
void rd_kafka_conf_set_error_cb(rd_kafka_conf_t *conf, void (*error_cb)(rd_kafka_t *rk, int err, const char *reason, void *opaque));
void rd_kafka_conf_set_throttle_cb(rd_kafka_conf_t *conf, void (*throttle_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int throttle_time_ms, void *opaque));
void rd_kafka_conf_set_log_cb(rd_kafka_conf_t *conf, void (*log_cb)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_conf_set_stats_cb(rd_kafka_conf_t *conf, int (*stats_cb)(rd_kafka_t *rk, char *json, size_t json_len, void *opaque));
void rd_kafka_conf_set_oauthbearer_token_refresh_cb(rd_kafka_conf_t *conf, void (*oauthbearer_token_refresh_cb)(rd_kafka_t *rk, const char *oauthbearer_config, void *opaque));
void rd_kafka_conf_set_socket_cb(rd_kafka_conf_t *conf, int (*socket_cb)(int domain, int type, int protocol, void *opaque));
void rd_kafka_conf_set_connect_cb(rd_kafka_conf_t *conf, int (*connect_cb)(int sockfd, const struct sockaddr *addr, int addrlen, const char *id, void *opaque));
void rd_kafka_conf_set_closesocket_cb(rd_kafka_conf_t *conf, int (*closesocket_cb)(int sockfd, void *opaque));
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert_verify_cb(rd_kafka_conf_t *conf, int (*ssl_cert_verify_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int *x509_error, int depth, const char *buf, size_t size, char *errstr, size_t errstr_size, void *opaque));
typedef enum rd_kafka_cert_type_t {
  RD_KAFKA_CERT_PUBLIC_KEY,
  RD_KAFKA_CERT_PRIVATE_KEY,
  RD_KAFKA_CERT_CA,
  RD_KAFKA_CERT__CNT,
} rd_kafka_cert_type_t;
typedef enum rd_kafka_cert_enc_t {
  RD_KAFKA_CERT_ENC_PKCS12,
  RD_KAFKA_CERT_ENC_DER,
  RD_KAFKA_CERT_ENC_PEM,
  RD_KAFKA_CERT_ENC__CNT,
} rd_kafka_cert_enc_t;
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert(rd_kafka_conf_t *conf, rd_kafka_cert_type_t cert_type, rd_kafka_cert_enc_t cert_enc, const void *buffer, size_t size, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_opaque(rd_kafka_conf_t *conf, void *opaque);
void *rd_kafka_opaque(const rd_kafka_t *rk);
void rd_kafka_conf_set_default_topic_conf(rd_kafka_conf_t *conf, rd_kafka_topic_conf_t *tconf);
rd_kafka_conf_res_t rd_kafka_conf_get(const rd_kafka_conf_t *conf, const char *name, char *dest, size_t *dest_size);
rd_kafka_conf_res_t rd_kafka_topic_conf_get(const rd_kafka_topic_conf_t *conf, const char *name, char *dest, size_t *dest_size);
const char **rd_kafka_conf_dump(rd_kafka_conf_t *conf, size_t *cntp);
const char **rd_kafka_topic_conf_dump(rd_kafka_topic_conf_t *conf, size_t *cntp);
void rd_kafka_conf_dump_free(const char **arr, size_t cnt);
void rd_kafka_conf_properties_show(FILE *fp);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_new(void);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_dup(const rd_kafka_topic_conf_t *conf);
rd_kafka_topic_conf_t *rd_kafka_default_topic_conf_dup(rd_kafka_t *rk);
void rd_kafka_topic_conf_destroy(rd_kafka_topic_conf_t *topic_conf);
rd_kafka_conf_res_t rd_kafka_topic_conf_set(rd_kafka_topic_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_topic_conf_set_opaque(rd_kafka_topic_conf_t *conf, void *rkt_opaque);
void rd_kafka_topic_conf_set_partitioner_cb(rd_kafka_topic_conf_t *topic_conf, int32_t (*partitioner)(const rd_kafka_topic_t *rkt, const void *keydata, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque));
void rd_kafka_topic_conf_set_msg_order_cmp(rd_kafka_topic_conf_t *topic_conf, int (*msg_order_cmp)(const rd_kafka_message_t *a, const rd_kafka_message_t *b));
int rd_kafka_topic_partition_available(const rd_kafka_topic_t *rkt, int32_t partition);
int32_t rd_kafka_msg_partitioner_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
rd_kafka_t *rd_kafka_new(rd_kafka_type_t type, rd_kafka_conf_t *conf, char *errstr, size_t errstr_size);
void rd_kafka_destroy(rd_kafka_t *rk);
void rd_kafka_destroy_flags(rd_kafka_t *rk, int flags);
const char *rd_kafka_name(const rd_kafka_t *rk);
rd_kafka_type_t rd_kafka_type(const rd_kafka_t *rk);
char *rd_kafka_memberid(const rd_kafka_t *rk);
char *rd_kafka_clusterid(rd_kafka_t *rk, int timeout_ms);
int32_t rd_kafka_controllerid(rd_kafka_t *rk, int timeout_ms);
rd_kafka_topic_t *rd_kafka_topic_new(rd_kafka_t *rk, const char *topic, rd_kafka_topic_conf_t *conf);
void rd_kafka_topic_destroy(rd_kafka_topic_t *rkt);
const char *rd_kafka_topic_name(const rd_kafka_topic_t *rkt);
void *rd_kafka_topic_opaque(const rd_kafka_topic_t *rkt);
int rd_kafka_poll(rd_kafka_t *rk, int timeout_ms);
void rd_kafka_yield(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_pause_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_resume_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_query_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_get_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high);
rd_kafka_resp_err_t rd_kafka_offsets_for_times(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets, int timeout_ms);
void rd_kafka_mem_free(rd_kafka_t *rk, void *ptr);
rd_kafka_queue_t *rd_kafka_queue_new(rd_kafka_t *rk);
void rd_kafka_queue_destroy(rd_kafka_queue_t *rkqu);
rd_kafka_queue_t *rd_kafka_queue_get_main(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_consumer(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_partition(rd_kafka_t *rk, const char *topic, int32_t partition);
rd_kafka_queue_t *rd_kafka_queue_get_background(rd_kafka_t *rk);
void rd_kafka_queue_forward(rd_kafka_queue_t *src, rd_kafka_queue_t *dst);
rd_kafka_resp_err_t rd_kafka_set_log_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu);
size_t rd_kafka_queue_length(rd_kafka_queue_t *rkqu);
void rd_kafka_queue_io_event_enable(rd_kafka_queue_t *rkqu, int fd, const void *payload, size_t size);
void rd_kafka_queue_cb_event_enable(rd_kafka_queue_t *rkqu, void (*event_cb)(rd_kafka_t *rk, void *qev_opaque), void *qev_opaque);
int rd_kafka_consume_start(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
int rd_kafka_consume_start_queue(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, rd_kafka_queue_t *rkqu);
int rd_kafka_consume_stop(rd_kafka_topic_t *rkt, int32_t partition);
rd_kafka_resp_err_t rd_kafka_seek(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, int timeout_ms);
rd_kafka_message_t *rd_kafka_consume(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms);
ssize_t rd_kafka_consume_batch(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_message_t *rd_kafka_consume_queue(rd_kafka_queue_t *rkqu, int timeout_ms);
ssize_t rd_kafka_consume_batch_queue(rd_kafka_queue_t *rkqu, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback_queue(rd_kafka_queue_t *rkqu, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_offset_store(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
rd_kafka_resp_err_t rd_kafka_offsets_store(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets);
rd_kafka_resp_err_t rd_kafka_subscribe(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *topics);
rd_kafka_resp_err_t rd_kafka_unsubscribe(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_subscription(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **topics);
rd_kafka_message_t *rd_kafka_consumer_poll(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_consumer_close(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_assignment(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **partitions);
rd_kafka_resp_err_t rd_kafka_commit(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, int async);
rd_kafka_resp_err_t rd_kafka_commit_message(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, int async);
rd_kafka_resp_err_t rd_kafka_commit_queue(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_queue_t *rkqu, void (*cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_committed(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_position(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata(rd_kafka_t *rk);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new(const char *group_id);
void rd_kafka_consumer_group_metadata_destroy(rd_kafka_consumer_group_metadata_t *);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_write(const rd_kafka_consumer_group_metadata_t *cgmd, void **bufferp, size_t *sizep);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_read(rd_kafka_consumer_group_metadata_t **cgmdp, const void *buffer, size_t size);
int rd_kafka_produce(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, void *payload, size_t len, const void *key, size_t keylen, void *msg_opaque);
rd_kafka_resp_err_t rd_kafka_producev(rd_kafka_t *rk, ...);
int rd_kafka_produce_batch(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, rd_kafka_message_t *rkmessages, int message_cnt);
rd_kafka_resp_err_t rd_kafka_flush(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_purge(rd_kafka_t *rk, int purge_flags);
typedef struct rd_kafka_metadata_broker {
  int32_t id;
  char *host;
  int port;
} rd_kafka_metadata_broker_t;
typedef struct rd_kafka_metadata_partition {
  int32_t id;
  rd_kafka_resp_err_t err;
  int32_t leader;
  int replica_cnt;
  int32_t *replicas;
  int isr_cnt;
  int32_t *isrs;
} rd_kafka_metadata_partition_t;
typedef struct rd_kafka_metadata_topic {
  char *topic;
  int partition_cnt;
  struct rd_kafka_metadata_partition *partitions;
  rd_kafka_resp_err_t err;
} rd_kafka_metadata_topic_t;
typedef struct rd_kafka_metadata {
  int broker_cnt;
  struct rd_kafka_metadata_broker *brokers;
  int topic_cnt;
  struct rd_kafka_metadata_topic *topics;
  int32_t orig_broker_id;
  char *orig_broker_name;
} rd_kafka_metadata_t;
rd_kafka_resp_err_t rd_kafka_metadata(rd_kafka_t *rk, int all_topics, rd_kafka_topic_t *only_rkt, const struct rd_kafka_metadata **metadatap, int timeout_ms);
void rd_kafka_metadata_destroy(const struct rd_kafka_metadata *metadata);
struct rd_kafka_group_member_info {
  char *member_id;
  char *client_id;
  char *client_host;
  void *member_metadata;
  int member_metadata_size;
  void *member_assignment;
  int member_assignment_size;
};
struct rd_kafka_group_info {
  struct rd_kafka_metadata_broker broker;
  char *group;
  rd_kafka_resp_err_t err;
  char *state;
  char *protocol_type;
  char *protocol;
  struct rd_kafka_group_member_info *members;
  int member_cnt;
};
struct rd_kafka_group_list {
  struct rd_kafka_group_info *groups;
  int group_cnt;
};
rd_kafka_resp_err_t rd_kafka_list_groups(rd_kafka_t *rk, const char *group, const struct rd_kafka_group_list **grplistp, int timeout_ms);
void rd_kafka_group_list_destroy(const struct rd_kafka_group_list *grplist);
int rd_kafka_brokers_add(rd_kafka_t *rk, const char *brokerlist);
void rd_kafka_set_logger(rd_kafka_t *rk, void (*func)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_set_log_level(rd_kafka_t *rk, int level);
void rd_kafka_log_print(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
void rd_kafka_log_syslog(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
int rd_kafka_outq_len(rd_kafka_t *rk);
void rd_kafka_dump(FILE *fp, rd_kafka_t *rk);
int rd_kafka_thread_cnt(void);
typedef enum rd_kafka_thread_type_t {
  RD_KAFKA_THREAD_MAIN,
  RD_KAFKA_THREAD_BACKGROUND,
  RD_KAFKA_THREAD_BROKER,
} rd_kafka_thread_type_t;
int rd_kafka_wait_destroyed(int timeout_ms);
int rd_kafka_unittest(void);
rd_kafka_resp_err_t rd_kafka_poll_set_consumer(rd_kafka_t *rk);
typedef int rd_kafka_event_type_t;
rd_kafka_event_type_t rd_kafka_event_type(const rd_kafka_event_t *rkev);
const char *rd_kafka_event_name(const rd_kafka_event_t *rkev);
void rd_kafka_event_destroy(rd_kafka_event_t *rkev);
const rd_kafka_message_t *rd_kafka_event_message_next(rd_kafka_event_t *rkev);
size_t rd_kafka_event_message_array(rd_kafka_event_t *rkev, const rd_kafka_message_t **rkmessages, size_t size);
size_t rd_kafka_event_message_count(rd_kafka_event_t *rkev);
const char *rd_kafka_event_config_string(rd_kafka_event_t *rkev);
rd_kafka_resp_err_t rd_kafka_event_error(rd_kafka_event_t *rkev);
const char *rd_kafka_event_error_string(rd_kafka_event_t *rkev);
int rd_kafka_event_error_is_fatal(rd_kafka_event_t *rkev);
void *rd_kafka_event_opaque(rd_kafka_event_t *rkev);
int rd_kafka_event_log(rd_kafka_event_t *rkev, const char **fac, const char **str, int *level);
const char *rd_kafka_event_stats(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_list_t *rd_kafka_event_topic_partition_list(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_t *rd_kafka_event_topic_partition(rd_kafka_event_t *rkev);
typedef rd_kafka_event_t rd_kafka_CreateTopics_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteTopics_result_t;
typedef rd_kafka_event_t rd_kafka_CreatePartitions_result_t;
typedef rd_kafka_event_t rd_kafka_AlterConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeConfigs_result_t;
const rd_kafka_CreateTopics_result_t *rd_kafka_event_CreateTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteTopics_result_t *rd_kafka_event_DeleteTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_CreatePartitions_result_t *rd_kafka_event_CreatePartitions_result(rd_kafka_event_t *rkev);
const rd_kafka_AlterConfigs_result_t *rd_kafka_event_AlterConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeConfigs_result_t *rd_kafka_event_DescribeConfigs_result(rd_kafka_event_t *rkev);
rd_kafka_event_t *rd_kafka_queue_poll(rd_kafka_queue_t *rkqu, int timeout_ms);
int rd_kafka_queue_poll_callback(rd_kafka_queue_t *rkqu, int timeout_ms);
typedef rd_kafka_resp_err_t (rd_kafka_plugin_f_conf_init_t)(rd_kafka_conf_t *conf, void **plug_opaquep, char *errstr, size_t errstr_size);
typedef rd_kafka_conf_res_t (rd_kafka_interceptor_f_on_conf_set_t)(rd_kafka_conf_t *conf, const char *name, const char *val, char *errstr, size_t errstr_size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_dup_t)(rd_kafka_conf_t *new_conf, const rd_kafka_conf_t *old_conf, size_t filter_cnt, const char **filter, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_destroy_t)(void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_new_t)(rd_kafka_t *rk, const rd_kafka_conf_t *conf, void *ic_opaque, char *errstr, size_t errstr_size);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_destroy_t)(rd_kafka_t *rk, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_send_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_acknowledgement_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_consume_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_commit_t)(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_request_sent_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_start_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_exit_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_set(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_set_t *on_conf_set, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_dup(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_dup_t *on_conf_dup, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_destroy(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_destroy_t *on_conf_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_new(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_new_t *on_new, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_destroy(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_destroy_t *on_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_send(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_send_t *on_send, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_acknowledgement(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_acknowledgement_t *on_acknowledgement, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_consume(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_consume_t *on_consume, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_commit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_commit_t *on_commit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_request_sent(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_request_sent_t *on_request_sent, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_start(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_start_t *on_thread_start, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_exit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_exit_t *on_thread_exit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_topic_result_error(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_error_string(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_name(const rd_kafka_topic_result_t *topicres);
typedef enum rd_kafka_admin_op_t {
  RD_KAFKA_ADMIN_OP_ANY = 0,
  RD_KAFKA_ADMIN_OP_CREATETOPICS,
  RD_KAFKA_ADMIN_OP_DELETETOPICS,
  RD_KAFKA_ADMIN_OP_CREATEPARTITIONS,
  RD_KAFKA_ADMIN_OP_ALTERCONFIGS,
  RD_KAFKA_ADMIN_OP_DESCRIBECONFIGS,
  RD_KAFKA_ADMIN_OP__CNT,
} rd_kafka_admin_op_t;
typedef struct rd_kafka_AdminOptions_s rd_kafka_AdminOptions_t;
rd_kafka_AdminOptions_t *rd_kafka_AdminOptions_new(rd_kafka_t *rk, rd_kafka_admin_op_t for_api);
void rd_kafka_AdminOptions_destroy(rd_kafka_AdminOptions_t *options);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_request_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_operation_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_validate_only(rd_kafka_AdminOptions_t *options, int true_or_false, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_broker(rd_kafka_AdminOptions_t *options, int32_t broker_id, char *errstr, size_t errstr_size);
void rd_kafka_AdminOptions_set_opaque(rd_kafka_AdminOptions_t *options, void *ev_opaque);
typedef struct rd_kafka_NewTopic_s rd_kafka_NewTopic_t;
rd_kafka_NewTopic_t *rd_kafka_NewTopic_new(const char *topic, int num_partitions, int replication_factor, char *errstr, size_t errstr_size);
void rd_kafka_NewTopic_destroy(rd_kafka_NewTopic_t *new_topic);
void rd_kafka_NewTopic_destroy_array(rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_replica_assignment(rd_kafka_NewTopic_t *new_topic, int32_t partition, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_config(rd_kafka_NewTopic_t *new_topic, const char *name, const char *value);
void rd_kafka_CreateTopics(rd_kafka_t *rk, rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreateTopics_result_topics(const rd_kafka_CreateTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteTopic_s rd_kafka_DeleteTopic_t;
rd_kafka_DeleteTopic_t *rd_kafka_DeleteTopic_new(const char *topic);
void rd_kafka_DeleteTopic_destroy(rd_kafka_DeleteTopic_t *del_topic);
void rd_kafka_DeleteTopic_destroy_array(rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt);
void rd_kafka_DeleteTopics(rd_kafka_t *rk, rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_DeleteTopics_result_topics(const rd_kafka_DeleteTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_NewPartitions_s rd_kafka_NewPartitions_t;
rd_kafka_NewPartitions_t *rd_kafka_NewPartitions_new(const char *topic, size_t new_total_cnt, char *errstr, size_t errstr_size);
void rd_kafka_NewPartitions_destroy(rd_kafka_NewPartitions_t *new_parts);
void rd_kafka_NewPartitions_destroy_array(rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt);
rd_kafka_resp_err_t rd_kafka_NewPartitions_set_replica_assignment(rd_kafka_NewPartitions_t *new_parts, int32_t new_partition_idx, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
void rd_kafka_CreatePartitions(rd_kafka_t *rk, rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreatePartitions_result_topics(const rd_kafka_CreatePartitions_result_t *result, size_t *cntp);
typedef enum rd_kafka_ConfigSource_t {
  RD_KAFKA_CONFIG_SOURCE_UNKNOWN_CONFIG = 0,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG = 1,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG = 2,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG = 3,
  RD_KAFKA_CONFIG_SOURCE_STATIC_BROKER_CONFIG = 4,
  RD_KAFKA_CONFIG_SOURCE_DEFAULT_CONFIG = 5,
  RD_KAFKA_CONFIG_SOURCE__CNT,
} rd_kafka_ConfigSource_t;
const char *rd_kafka_ConfigSource_name(rd_kafka_ConfigSource_t confsource);
typedef struct rd_kafka_ConfigEntry_s rd_kafka_ConfigEntry_t;
const char *rd_kafka_ConfigEntry_name(const rd_kafka_ConfigEntry_t *entry);
const char *rd_kafka_ConfigEntry_value(const rd_kafka_ConfigEntry_t *entry);
rd_kafka_ConfigSource_t rd_kafka_ConfigEntry_source(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_read_only(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_default(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_sensitive(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_synonym(const rd_kafka_ConfigEntry_t *entry);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigEntry_synonyms(const rd_kafka_ConfigEntry_t *entry, size_t *cntp);
typedef enum rd_kafka_ResourceType_t {
  RD_KAFKA_RESOURCE_UNKNOWN = 0,
  RD_KAFKA_RESOURCE_ANY = 1,
  RD_KAFKA_RESOURCE_TOPIC = 2,
  RD_KAFKA_RESOURCE_GROUP = 3,
  RD_KAFKA_RESOURCE_BROKER = 4,
  RD_KAFKA_RESOURCE__CNT,
} rd_kafka_ResourceType_t;
const char *rd_kafka_ResourceType_name(rd_kafka_ResourceType_t restype);
typedef struct rd_kafka_ConfigResource_s rd_kafka_ConfigResource_t;
rd_kafka_ConfigResource_t *rd_kafka_ConfigResource_new(rd_kafka_ResourceType_t restype, const char *resname);
void rd_kafka_ConfigResource_destroy(rd_kafka_ConfigResource_t *config);
void rd_kafka_ConfigResource_destroy_array(rd_kafka_ConfigResource_t **config, size_t config_cnt);
rd_kafka_resp_err_t rd_kafka_ConfigResource_set_config(rd_kafka_ConfigResource_t *config, const char *name, const char *value);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigResource_configs(const rd_kafka_ConfigResource_t *config, size_t *cntp);
rd_kafka_ResourceType_t rd_kafka_ConfigResource_type(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_name(const rd_kafka_ConfigResource_t *config);
rd_kafka_resp_err_t rd_kafka_ConfigResource_error(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_error_string(const rd_kafka_ConfigResource_t *config);
void rd_kafka_AlterConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_AlterConfigs_result_resources(const rd_kafka_AlterConfigs_result_t *result, size_t *cntp);
void rd_kafka_DescribeConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_DescribeConfigs_result_resources(const rd_kafka_DescribeConfigs_result_t *result, size_t *cntp);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token(rd_kafka_t *rk, const char *token_value, int64_t md_lifetime_ms, const char *md_principal_name, const char **extensions, size_t extension_size, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token_failure(rd_kafka_t *rk, const char *errstr);
rd_kafka_error_t *rd_kafka_init_transactions(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_begin_transaction(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_send_offsets_to_transaction(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, const rd_kafka_consumer_group_metadata_t *cgmetadata, int timeout_ms);
rd_kafka_error_t *rd_kafka_commit_transaction(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_abort_transaction(rd_kafka_t *rk, int timeout_ms);
typedef struct rd_kafka_mock_cluster_s rd_kafka_mock_cluster_t;
rd_kafka_mock_cluster_t *rd_kafka_mock_cluster_new(rd_kafka_t *rk, int broker_cnt);
void rd_kafka_mock_cluster_destroy(rd_kafka_mock_cluster_t *mcluster);
rd_kafka_t *rd_kafka_mock_cluster_handle(const rd_kafka_mock_cluster_t *mcluster);
rd_kafka_mock_cluster_t *rd_kafka_handle_mock_cluster(const rd_kafka_t *rk);
const char *rd_kafka_mock_cluster_bootstraps(const rd_kafka_mock_cluster_t *mcluster);
void rd_kafka_mock_push_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, ...);
void rd_kafka_mock_topic_set_error(rd_kafka_mock_cluster_t *mcluster, const char *topic, rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_mock_topic_create(rd_kafka_mock_cluster_t *mcluster, const char *topic, int partition_cnt, int replication_factor);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_leader(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower_wmarks(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int64_t lo, int64_t hi);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_down(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_up(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rack(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, const char *rack);
rd_kafka_resp_err_t rd_kafka_mock_coordinator_set(rd_kafka_mock_cluster_t *mcluster, const char *key_type, const char *key, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_set_apiversion(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, int16_t MinVersion, int16_t MaxVersion);
'
rdkafka.h, rdkafka_mock.h

RD_KAFKA_VERSION

public RD_KAFKA_VERSION = 17040639

librdkafka version

Interpreted as hex MM.mm.rr.xx:

  • MM = Major
  • mm = minor
  • rr = revision
  • xx = pre-release id (0xff is the final release)

E.g.: 0x000801ff = 0.8.1

Remarks
This value should only be used during compile time, for runtime checks of version use rd_kafka_version()

RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE

public RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76

Unsupported compression type

RD_KAFKA_RESP_ERR_END_ALL

public RD_KAFKA_RESP_ERR_END_ALL = 83
enum rd_kafka_resp_err_t

RD_KAFKA_ADMIN_OP__CNT

public RD_KAFKA_ADMIN_OP__CNT = 6

Number of ops defined

RD_KAFKA_CDEF

public RD_KAFKA_CDEF = 'typedef long int ssize_t;
typedef struct _IO_FILE FILE;
typedef long int mode_t;
typedef signed int int16_t;
typedef unsigned int uint16_t;
typedef signed int int32_t;
typedef signed long int int64_t;
int rd_kafka_version(void);
const char *rd_kafka_version_str(void);
typedef enum rd_kafka_type_t {
  RD_KAFKA_PRODUCER,
  RD_KAFKA_CONSUMER,
} rd_kafka_type_t;
typedef enum rd_kafka_timestamp_type_t {
  RD_KAFKA_TIMESTAMP_NOT_AVAILABLE,
  RD_KAFKA_TIMESTAMP_CREATE_TIME,
  RD_KAFKA_TIMESTAMP_LOG_APPEND_TIME,
} rd_kafka_timestamp_type_t;
const char *rd_kafka_get_debug_contexts(void);
typedef struct rd_kafka_s rd_kafka_t;
typedef struct rd_kafka_topic_s rd_kafka_topic_t;
typedef struct rd_kafka_conf_s rd_kafka_conf_t;
typedef struct rd_kafka_topic_conf_s rd_kafka_topic_conf_t;
typedef struct rd_kafka_queue_s rd_kafka_queue_t;
typedef struct rd_kafka_op_s rd_kafka_event_t;
typedef struct rd_kafka_topic_result_s rd_kafka_topic_result_t;
typedef struct rd_kafka_consumer_group_metadata_s rd_kafka_consumer_group_metadata_t;
typedef struct rd_kafka_error_s {
  unsigned int code;
  char *errstr;
  unsigned char fatal;
  unsigned char retriable;
  unsigned char txn_requires_abort;
} rd_kafka_error_t;
typedef enum {
  RD_KAFKA_RESP_ERR__BEGIN = (- 200),
  RD_KAFKA_RESP_ERR__BAD_MSG = (- 199),
  RD_KAFKA_RESP_ERR__BAD_COMPRESSION = (- 198),
  RD_KAFKA_RESP_ERR__DESTROY = (- 197),
  RD_KAFKA_RESP_ERR__FAIL = (- 196),
  RD_KAFKA_RESP_ERR__TRANSPORT = (- 195),
  RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE = (- 194),
  RD_KAFKA_RESP_ERR__RESOLVE = (- 193),
  RD_KAFKA_RESP_ERR__MSG_TIMED_OUT = (- 192),
  RD_KAFKA_RESP_ERR__PARTITION_EOF = (- 191),
  RD_KAFKA_RESP_ERR__UNKNOWN_PARTITION = (- 190),
  RD_KAFKA_RESP_ERR__FS = (- 189),
  RD_KAFKA_RESP_ERR__UNKNOWN_TOPIC = (- 188),
  RD_KAFKA_RESP_ERR__ALL_BROKERS_DOWN = (- 187),
  RD_KAFKA_RESP_ERR__INVALID_ARG = (- 186),
  RD_KAFKA_RESP_ERR__TIMED_OUT = (- 185),
  RD_KAFKA_RESP_ERR__QUEUE_FULL = (- 184),
  RD_KAFKA_RESP_ERR__ISR_INSUFF = (- 183),
  RD_KAFKA_RESP_ERR__NODE_UPDATE = (- 182),
  RD_KAFKA_RESP_ERR__SSL = (- 181),
  RD_KAFKA_RESP_ERR__WAIT_COORD = (- 180),
  RD_KAFKA_RESP_ERR__UNKNOWN_GROUP = (- 179),
  RD_KAFKA_RESP_ERR__IN_PROGRESS = (- 178),
  RD_KAFKA_RESP_ERR__PREV_IN_PROGRESS = (- 177),
  RD_KAFKA_RESP_ERR__EXISTING_SUBSCRIPTION = (- 176),
  RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS = (- 175),
  RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS = (- 174),
  RD_KAFKA_RESP_ERR__CONFLICT = (- 173),
  RD_KAFKA_RESP_ERR__STATE = (- 172),
  RD_KAFKA_RESP_ERR__UNKNOWN_PROTOCOL = (- 171),
  RD_KAFKA_RESP_ERR__NOT_IMPLEMENTED = (- 170),
  RD_KAFKA_RESP_ERR__AUTHENTICATION = (- 169),
  RD_KAFKA_RESP_ERR__NO_OFFSET = (- 168),
  RD_KAFKA_RESP_ERR__OUTDATED = (- 167),
  RD_KAFKA_RESP_ERR__TIMED_OUT_QUEUE = (- 166),
  RD_KAFKA_RESP_ERR__UNSUPPORTED_FEATURE = (- 165),
  RD_KAFKA_RESP_ERR__WAIT_CACHE = (- 164),
  RD_KAFKA_RESP_ERR__INTR = (- 163),
  RD_KAFKA_RESP_ERR__KEY_SERIALIZATION = (- 162),
  RD_KAFKA_RESP_ERR__VALUE_SERIALIZATION = (- 161),
  RD_KAFKA_RESP_ERR__KEY_DESERIALIZATION = (- 160),
  RD_KAFKA_RESP_ERR__VALUE_DESERIALIZATION = (- 159),
  RD_KAFKA_RESP_ERR__PARTIAL = (- 158),
  RD_KAFKA_RESP_ERR__READ_ONLY = (- 157),
  RD_KAFKA_RESP_ERR__NOENT = (- 156),
  RD_KAFKA_RESP_ERR__UNDERFLOW = (- 155),
  RD_KAFKA_RESP_ERR__INVALID_TYPE = (- 154),
  RD_KAFKA_RESP_ERR__RETRY = (- 153),
  RD_KAFKA_RESP_ERR__PURGE_QUEUE = (- 152),
  RD_KAFKA_RESP_ERR__PURGE_INFLIGHT = (- 151),
  RD_KAFKA_RESP_ERR__FATAL = (- 150),
  RD_KAFKA_RESP_ERR__INCONSISTENT = (- 149),
  RD_KAFKA_RESP_ERR__GAPLESS_GUARANTEE = (- 148),
  RD_KAFKA_RESP_ERR__MAX_POLL_EXCEEDED = (- 147),
  RD_KAFKA_RESP_ERR__UNKNOWN_BROKER = (- 146),
  RD_KAFKA_RESP_ERR__NOT_CONFIGURED = (- 145),
  RD_KAFKA_RESP_ERR__FENCED = (- 144),
  RD_KAFKA_RESP_ERR__APPLICATION = (- 143),
  RD_KAFKA_RESP_ERR__END = (- 100),
  RD_KAFKA_RESP_ERR_UNKNOWN = (- 1),
  RD_KAFKA_RESP_ERR_NO_ERROR = 0,
  RD_KAFKA_RESP_ERR_OFFSET_OUT_OF_RANGE = 1,
  RD_KAFKA_RESP_ERR_INVALID_MSG = 2,
  RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_OR_PART = 3,
  RD_KAFKA_RESP_ERR_INVALID_MSG_SIZE = 4,
  RD_KAFKA_RESP_ERR_LEADER_NOT_AVAILABLE = 5,
  RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION = 6,
  RD_KAFKA_RESP_ERR_REQUEST_TIMED_OUT = 7,
  RD_KAFKA_RESP_ERR_BROKER_NOT_AVAILABLE = 8,
  RD_KAFKA_RESP_ERR_REPLICA_NOT_AVAILABLE = 9,
  RD_KAFKA_RESP_ERR_MSG_SIZE_TOO_LARGE = 10,
  RD_KAFKA_RESP_ERR_STALE_CTRL_EPOCH = 11,
  RD_KAFKA_RESP_ERR_OFFSET_METADATA_TOO_LARGE = 12,
  RD_KAFKA_RESP_ERR_NETWORK_EXCEPTION = 13,
  RD_KAFKA_RESP_ERR_COORDINATOR_LOAD_IN_PROGRESS = 14,
  RD_KAFKA_RESP_ERR_COORDINATOR_NOT_AVAILABLE = 15,
  RD_KAFKA_RESP_ERR_NOT_COORDINATOR = 16,
  RD_KAFKA_RESP_ERR_TOPIC_EXCEPTION = 17,
  RD_KAFKA_RESP_ERR_RECORD_LIST_TOO_LARGE = 18,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS = 19,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS_AFTER_APPEND = 20,
  RD_KAFKA_RESP_ERR_INVALID_REQUIRED_ACKS = 21,
  RD_KAFKA_RESP_ERR_ILLEGAL_GENERATION = 22,
  RD_KAFKA_RESP_ERR_INCONSISTENT_GROUP_PROTOCOL = 23,
  RD_KAFKA_RESP_ERR_INVALID_GROUP_ID = 24,
  RD_KAFKA_RESP_ERR_UNKNOWN_MEMBER_ID = 25,
  RD_KAFKA_RESP_ERR_INVALID_SESSION_TIMEOUT = 26,
  RD_KAFKA_RESP_ERR_REBALANCE_IN_PROGRESS = 27,
  RD_KAFKA_RESP_ERR_INVALID_COMMIT_OFFSET_SIZE = 28,
  RD_KAFKA_RESP_ERR_TOPIC_AUTHORIZATION_FAILED = 29,
  RD_KAFKA_RESP_ERR_GROUP_AUTHORIZATION_FAILED = 30,
  RD_KAFKA_RESP_ERR_CLUSTER_AUTHORIZATION_FAILED = 31,
  RD_KAFKA_RESP_ERR_INVALID_TIMESTAMP = 32,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_SASL_MECHANISM = 33,
  RD_KAFKA_RESP_ERR_ILLEGAL_SASL_STATE = 34,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_VERSION = 35,
  RD_KAFKA_RESP_ERR_TOPIC_ALREADY_EXISTS = 36,
  RD_KAFKA_RESP_ERR_INVALID_PARTITIONS = 37,
  RD_KAFKA_RESP_ERR_INVALID_REPLICATION_FACTOR = 38,
  RD_KAFKA_RESP_ERR_INVALID_REPLICA_ASSIGNMENT = 39,
  RD_KAFKA_RESP_ERR_INVALID_CONFIG = 40,
  RD_KAFKA_RESP_ERR_NOT_CONTROLLER = 41,
  RD_KAFKA_RESP_ERR_INVALID_REQUEST = 42,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_FOR_MESSAGE_FORMAT = 43,
  RD_KAFKA_RESP_ERR_POLICY_VIOLATION = 44,
  RD_KAFKA_RESP_ERR_OUT_OF_ORDER_SEQUENCE_NUMBER = 45,
  RD_KAFKA_RESP_ERR_DUPLICATE_SEQUENCE_NUMBER = 46,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_EPOCH = 47,
  RD_KAFKA_RESP_ERR_INVALID_TXN_STATE = 48,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_ID_MAPPING = 49,
  RD_KAFKA_RESP_ERR_INVALID_TRANSACTION_TIMEOUT = 50,
  RD_KAFKA_RESP_ERR_CONCURRENT_TRANSACTIONS = 51,
  RD_KAFKA_RESP_ERR_TRANSACTION_COORDINATOR_FENCED = 52,
  RD_KAFKA_RESP_ERR_TRANSACTIONAL_ID_AUTHORIZATION_FAILED = 53,
  RD_KAFKA_RESP_ERR_SECURITY_DISABLED = 54,
  RD_KAFKA_RESP_ERR_OPERATION_NOT_ATTEMPTED = 55,
  RD_KAFKA_RESP_ERR_KAFKA_STORAGE_ERROR = 56,
  RD_KAFKA_RESP_ERR_LOG_DIR_NOT_FOUND = 57,
  RD_KAFKA_RESP_ERR_SASL_AUTHENTICATION_FAILED = 58,
  RD_KAFKA_RESP_ERR_UNKNOWN_PRODUCER_ID = 59,
  RD_KAFKA_RESP_ERR_REASSIGNMENT_IN_PROGRESS = 60,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTH_DISABLED = 61,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_NOT_FOUND = 62,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_OWNER_MISMATCH = 63,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_REQUEST_NOT_ALLOWED = 64,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTHORIZATION_FAILED = 65,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_EXPIRED = 66,
  RD_KAFKA_RESP_ERR_INVALID_PRINCIPAL_TYPE = 67,
  RD_KAFKA_RESP_ERR_NON_EMPTY_GROUP = 68,
  RD_KAFKA_RESP_ERR_GROUP_ID_NOT_FOUND = 69,
  RD_KAFKA_RESP_ERR_FETCH_SESSION_ID_NOT_FOUND = 70,
  RD_KAFKA_RESP_ERR_INVALID_FETCH_SESSION_EPOCH = 71,
  RD_KAFKA_RESP_ERR_LISTENER_NOT_FOUND = 72,
  RD_KAFKA_RESP_ERR_TOPIC_DELETION_DISABLED = 73,
  RD_KAFKA_RESP_ERR_FENCED_LEADER_EPOCH = 74,
  RD_KAFKA_RESP_ERR_UNKNOWN_LEADER_EPOCH = 75,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76,
  RD_KAFKA_RESP_ERR_STALE_BROKER_EPOCH = 77,
  RD_KAFKA_RESP_ERR_OFFSET_NOT_AVAILABLE = 78,
  RD_KAFKA_RESP_ERR_MEMBER_ID_REQUIRED = 79,
  RD_KAFKA_RESP_ERR_PREFERRED_LEADER_NOT_AVAILABLE = 80,
  RD_KAFKA_RESP_ERR_GROUP_MAX_SIZE_REACHED = 81,
  RD_KAFKA_RESP_ERR_FENCED_INSTANCE_ID = 82,
  RD_KAFKA_RESP_ERR_END_ALL,
} rd_kafka_resp_err_t;
struct rd_kafka_err_desc {
  rd_kafka_resp_err_t code;
  char *name;
  char *desc;
};
void rd_kafka_get_err_descs(const struct rd_kafka_err_desc **errdescs, size_t *cntp);
const char *rd_kafka_err2str(rd_kafka_resp_err_t err);
const char *rd_kafka_err2name(rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_last_error(void);
rd_kafka_resp_err_t rd_kafka_errno2err(int errnox);
int rd_kafka_errno(void);
rd_kafka_resp_err_t rd_kafka_fatal_error(rd_kafka_t *rk, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_test_fatal_error(rd_kafka_t *rk, rd_kafka_resp_err_t err, const char *reason);
rd_kafka_resp_err_t rd_kafka_error_code(const rd_kafka_error_t *error);
const char *rd_kafka_error_name(const rd_kafka_error_t *error);
const char *rd_kafka_error_string(const rd_kafka_error_t *error);
int rd_kafka_error_is_fatal(const rd_kafka_error_t *error);
int rd_kafka_error_is_retriable(const rd_kafka_error_t *error);
int rd_kafka_error_txn_requires_abort(const rd_kafka_error_t *error);
void rd_kafka_error_destroy(rd_kafka_error_t *error);
rd_kafka_error_t *rd_kafka_error_new(rd_kafka_resp_err_t code, const char *fmt, ...);
typedef struct rd_kafka_topic_partition_s {
  char *topic;
  int32_t partition;
  int64_t offset;
  void *metadata;
  size_t metadata_size;
  void *opaque;
  rd_kafka_resp_err_t err;
  void *_private;
} rd_kafka_topic_partition_t;
void rd_kafka_topic_partition_destroy(rd_kafka_topic_partition_t *rktpar);
typedef struct rd_kafka_topic_partition_list_s {
  int cnt;
  int size;
  rd_kafka_topic_partition_t *elems;
} rd_kafka_topic_partition_list_t;
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_new(int size);
void rd_kafka_topic_partition_list_destroy(rd_kafka_topic_partition_list_t *rkparlist);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_add(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_add_range(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t start, int32_t stop);
int rd_kafka_topic_partition_list_del(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
int rd_kafka_topic_partition_list_del_by_idx(rd_kafka_topic_partition_list_t *rktparlist, int idx);
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_copy(const rd_kafka_topic_partition_list_t *src);
rd_kafka_resp_err_t rd_kafka_topic_partition_list_set_offset(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition, int64_t offset);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_find(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_sort(rd_kafka_topic_partition_list_t *rktparlist, int (*cmp)(const void *a, const void *b, void *cmp_opaque), void *cmp_opaque);
typedef enum rd_kafka_vtype_t {
  RD_KAFKA_VTYPE_END,
  RD_KAFKA_VTYPE_TOPIC,
  RD_KAFKA_VTYPE_RKT,
  RD_KAFKA_VTYPE_PARTITION,
  RD_KAFKA_VTYPE_VALUE,
  RD_KAFKA_VTYPE_KEY,
  RD_KAFKA_VTYPE_OPAQUE,
  RD_KAFKA_VTYPE_MSGFLAGS,
  RD_KAFKA_VTYPE_TIMESTAMP,
  RD_KAFKA_VTYPE_HEADER,
  RD_KAFKA_VTYPE_HEADERS,
} rd_kafka_vtype_t;
typedef struct rd_kafka_headers_s rd_kafka_headers_t;
rd_kafka_headers_t *rd_kafka_headers_new(size_t initial_count);
void rd_kafka_headers_destroy(rd_kafka_headers_t *hdrs);
rd_kafka_headers_t *rd_kafka_headers_copy(const rd_kafka_headers_t *src);
rd_kafka_resp_err_t rd_kafka_header_add(rd_kafka_headers_t *hdrs, const char *name, ssize_t name_size, const void *value, ssize_t value_size);
rd_kafka_resp_err_t rd_kafka_header_remove(rd_kafka_headers_t *hdrs, const char *name);
rd_kafka_resp_err_t rd_kafka_header_get_last(const rd_kafka_headers_t *hdrs, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get(const rd_kafka_headers_t *hdrs, size_t idx, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get_all(const rd_kafka_headers_t *hdrs, size_t idx, const char **namep, const void **valuep, size_t *sizep);
typedef struct rd_kafka_message_s {
  rd_kafka_resp_err_t err;
  rd_kafka_topic_t *rkt;
  int32_t partition;
  void *payload;
  size_t len;
  void *key;
  size_t key_len;
  int64_t offset;
  void *_private;
} rd_kafka_message_t;
void rd_kafka_message_destroy(rd_kafka_message_t *rkmessage);
int64_t rd_kafka_message_timestamp(const rd_kafka_message_t *rkmessage, rd_kafka_timestamp_type_t *tstype);
int64_t rd_kafka_message_latency(const rd_kafka_message_t *rkmessage);
rd_kafka_resp_err_t rd_kafka_message_headers(const rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
rd_kafka_resp_err_t rd_kafka_message_detach_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
void rd_kafka_message_set_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t *hdrs);
size_t rd_kafka_header_cnt(const rd_kafka_headers_t *hdrs);
typedef enum {
  RD_KAFKA_MSG_STATUS_NOT_PERSISTED = 0,
  RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED = 1,
  RD_KAFKA_MSG_STATUS_PERSISTED = 2,
} rd_kafka_msg_status_t;
rd_kafka_msg_status_t rd_kafka_message_status(const rd_kafka_message_t *rkmessage);
typedef enum {
  RD_KAFKA_CONF_UNKNOWN = (- 2),
  RD_KAFKA_CONF_INVALID = (- 1),
  RD_KAFKA_CONF_OK = 0,
} rd_kafka_conf_res_t;
rd_kafka_conf_t *rd_kafka_conf_new(void);
void rd_kafka_conf_destroy(rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup(const rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup_filter(const rd_kafka_conf_t *conf, size_t filter_cnt, const char **filter);
const rd_kafka_conf_t *rd_kafka_conf(rd_kafka_t *rk);
rd_kafka_conf_res_t rd_kafka_conf_set(rd_kafka_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_events(rd_kafka_conf_t *conf, int events);
void rd_kafka_conf_set_background_event_cb(rd_kafka_conf_t *conf, void (*event_cb)(rd_kafka_t *rk, rd_kafka_event_t *rkev, void *opaque));
void rd_kafka_conf_set_dr_cb(rd_kafka_conf_t *conf, void (*dr_cb)(rd_kafka_t *rk, void *payload, size_t len, rd_kafka_resp_err_t err, void *opaque, void *msg_opaque));
void rd_kafka_conf_set_dr_msg_cb(rd_kafka_conf_t *conf, void (*dr_msg_cb)(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_consume_cb(rd_kafka_conf_t *conf, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_rebalance_cb(rd_kafka_conf_t *conf, void (*rebalance_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *partitions, void *opaque));
void rd_kafka_conf_set_offset_commit_cb(rd_kafka_conf_t *conf, void (*offset_commit_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *opaque));
void rd_kafka_conf_set_error_cb(rd_kafka_conf_t *conf, void (*error_cb)(rd_kafka_t *rk, int err, const char *reason, void *opaque));
void rd_kafka_conf_set_throttle_cb(rd_kafka_conf_t *conf, void (*throttle_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int throttle_time_ms, void *opaque));
void rd_kafka_conf_set_log_cb(rd_kafka_conf_t *conf, void (*log_cb)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_conf_set_stats_cb(rd_kafka_conf_t *conf, int (*stats_cb)(rd_kafka_t *rk, char *json, size_t json_len, void *opaque));
void rd_kafka_conf_set_oauthbearer_token_refresh_cb(rd_kafka_conf_t *conf, void (*oauthbearer_token_refresh_cb)(rd_kafka_t *rk, const char *oauthbearer_config, void *opaque));
void rd_kafka_conf_set_socket_cb(rd_kafka_conf_t *conf, int (*socket_cb)(int domain, int type, int protocol, void *opaque));
void rd_kafka_conf_set_connect_cb(rd_kafka_conf_t *conf, int (*connect_cb)(int sockfd, const struct sockaddr *addr, int addrlen, const char *id, void *opaque));
void rd_kafka_conf_set_closesocket_cb(rd_kafka_conf_t *conf, int (*closesocket_cb)(int sockfd, void *opaque));
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert_verify_cb(rd_kafka_conf_t *conf, int (*ssl_cert_verify_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int *x509_error, int depth, const char *buf, size_t size, char *errstr, size_t errstr_size, void *opaque));
typedef enum rd_kafka_cert_type_t {
  RD_KAFKA_CERT_PUBLIC_KEY,
  RD_KAFKA_CERT_PRIVATE_KEY,
  RD_KAFKA_CERT_CA,
  RD_KAFKA_CERT__CNT,
} rd_kafka_cert_type_t;
typedef enum rd_kafka_cert_enc_t {
  RD_KAFKA_CERT_ENC_PKCS12,
  RD_KAFKA_CERT_ENC_DER,
  RD_KAFKA_CERT_ENC_PEM,
  RD_KAFKA_CERT_ENC__CNT,
} rd_kafka_cert_enc_t;
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert(rd_kafka_conf_t *conf, rd_kafka_cert_type_t cert_type, rd_kafka_cert_enc_t cert_enc, const void *buffer, size_t size, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_opaque(rd_kafka_conf_t *conf, void *opaque);
void *rd_kafka_opaque(const rd_kafka_t *rk);
void rd_kafka_conf_set_default_topic_conf(rd_kafka_conf_t *conf, rd_kafka_topic_conf_t *tconf);
rd_kafka_conf_res_t rd_kafka_conf_get(const rd_kafka_conf_t *conf, const char *name, char *dest, size_t *dest_size);
rd_kafka_conf_res_t rd_kafka_topic_conf_get(const rd_kafka_topic_conf_t *conf, const char *name, char *dest, size_t *dest_size);
const char **rd_kafka_conf_dump(rd_kafka_conf_t *conf, size_t *cntp);
const char **rd_kafka_topic_conf_dump(rd_kafka_topic_conf_t *conf, size_t *cntp);
void rd_kafka_conf_dump_free(const char **arr, size_t cnt);
void rd_kafka_conf_properties_show(FILE *fp);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_new(void);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_dup(const rd_kafka_topic_conf_t *conf);
rd_kafka_topic_conf_t *rd_kafka_default_topic_conf_dup(rd_kafka_t *rk);
void rd_kafka_topic_conf_destroy(rd_kafka_topic_conf_t *topic_conf);
rd_kafka_conf_res_t rd_kafka_topic_conf_set(rd_kafka_topic_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_topic_conf_set_opaque(rd_kafka_topic_conf_t *conf, void *rkt_opaque);
void rd_kafka_topic_conf_set_partitioner_cb(rd_kafka_topic_conf_t *topic_conf, int32_t (*partitioner)(const rd_kafka_topic_t *rkt, const void *keydata, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque));
void rd_kafka_topic_conf_set_msg_order_cmp(rd_kafka_topic_conf_t *topic_conf, int (*msg_order_cmp)(const rd_kafka_message_t *a, const rd_kafka_message_t *b));
int rd_kafka_topic_partition_available(const rd_kafka_topic_t *rkt, int32_t partition);
int32_t rd_kafka_msg_partitioner_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
rd_kafka_t *rd_kafka_new(rd_kafka_type_t type, rd_kafka_conf_t *conf, char *errstr, size_t errstr_size);
void rd_kafka_destroy(rd_kafka_t *rk);
void rd_kafka_destroy_flags(rd_kafka_t *rk, int flags);
const char *rd_kafka_name(const rd_kafka_t *rk);
rd_kafka_type_t rd_kafka_type(const rd_kafka_t *rk);
char *rd_kafka_memberid(const rd_kafka_t *rk);
char *rd_kafka_clusterid(rd_kafka_t *rk, int timeout_ms);
int32_t rd_kafka_controllerid(rd_kafka_t *rk, int timeout_ms);
rd_kafka_topic_t *rd_kafka_topic_new(rd_kafka_t *rk, const char *topic, rd_kafka_topic_conf_t *conf);
void rd_kafka_topic_destroy(rd_kafka_topic_t *rkt);
const char *rd_kafka_topic_name(const rd_kafka_topic_t *rkt);
void *rd_kafka_topic_opaque(const rd_kafka_topic_t *rkt);
int rd_kafka_poll(rd_kafka_t *rk, int timeout_ms);
void rd_kafka_yield(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_pause_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_resume_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_query_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_get_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high);
rd_kafka_resp_err_t rd_kafka_offsets_for_times(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets, int timeout_ms);
void rd_kafka_mem_free(rd_kafka_t *rk, void *ptr);
rd_kafka_queue_t *rd_kafka_queue_new(rd_kafka_t *rk);
void rd_kafka_queue_destroy(rd_kafka_queue_t *rkqu);
rd_kafka_queue_t *rd_kafka_queue_get_main(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_consumer(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_partition(rd_kafka_t *rk, const char *topic, int32_t partition);
rd_kafka_queue_t *rd_kafka_queue_get_background(rd_kafka_t *rk);
void rd_kafka_queue_forward(rd_kafka_queue_t *src, rd_kafka_queue_t *dst);
rd_kafka_resp_err_t rd_kafka_set_log_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu);
size_t rd_kafka_queue_length(rd_kafka_queue_t *rkqu);
void rd_kafka_queue_io_event_enable(rd_kafka_queue_t *rkqu, int fd, const void *payload, size_t size);
void rd_kafka_queue_cb_event_enable(rd_kafka_queue_t *rkqu, void (*event_cb)(rd_kafka_t *rk, void *qev_opaque), void *qev_opaque);
int rd_kafka_consume_start(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
int rd_kafka_consume_start_queue(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, rd_kafka_queue_t *rkqu);
int rd_kafka_consume_stop(rd_kafka_topic_t *rkt, int32_t partition);
rd_kafka_resp_err_t rd_kafka_seek(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, int timeout_ms);
rd_kafka_message_t *rd_kafka_consume(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms);
ssize_t rd_kafka_consume_batch(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_message_t *rd_kafka_consume_queue(rd_kafka_queue_t *rkqu, int timeout_ms);
ssize_t rd_kafka_consume_batch_queue(rd_kafka_queue_t *rkqu, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback_queue(rd_kafka_queue_t *rkqu, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_offset_store(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
rd_kafka_resp_err_t rd_kafka_offsets_store(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets);
rd_kafka_resp_err_t rd_kafka_subscribe(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *topics);
rd_kafka_resp_err_t rd_kafka_unsubscribe(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_subscription(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **topics);
rd_kafka_message_t *rd_kafka_consumer_poll(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_consumer_close(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_assignment(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **partitions);
rd_kafka_resp_err_t rd_kafka_commit(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, int async);
rd_kafka_resp_err_t rd_kafka_commit_message(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, int async);
rd_kafka_resp_err_t rd_kafka_commit_queue(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_queue_t *rkqu, void (*cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_committed(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_position(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata(rd_kafka_t *rk);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new(const char *group_id);
void rd_kafka_consumer_group_metadata_destroy(rd_kafka_consumer_group_metadata_t *);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_write(const rd_kafka_consumer_group_metadata_t *cgmd, void **bufferp, size_t *sizep);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_read(rd_kafka_consumer_group_metadata_t **cgmdp, const void *buffer, size_t size);
int rd_kafka_produce(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, void *payload, size_t len, const void *key, size_t keylen, void *msg_opaque);
rd_kafka_resp_err_t rd_kafka_producev(rd_kafka_t *rk, ...);
int rd_kafka_produce_batch(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, rd_kafka_message_t *rkmessages, int message_cnt);
rd_kafka_resp_err_t rd_kafka_flush(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_purge(rd_kafka_t *rk, int purge_flags);
typedef struct rd_kafka_metadata_broker {
  int32_t id;
  char *host;
  int port;
} rd_kafka_metadata_broker_t;
typedef struct rd_kafka_metadata_partition {
  int32_t id;
  rd_kafka_resp_err_t err;
  int32_t leader;
  int replica_cnt;
  int32_t *replicas;
  int isr_cnt;
  int32_t *isrs;
} rd_kafka_metadata_partition_t;
typedef struct rd_kafka_metadata_topic {
  char *topic;
  int partition_cnt;
  struct rd_kafka_metadata_partition *partitions;
  rd_kafka_resp_err_t err;
} rd_kafka_metadata_topic_t;
typedef struct rd_kafka_metadata {
  int broker_cnt;
  struct rd_kafka_metadata_broker *brokers;
  int topic_cnt;
  struct rd_kafka_metadata_topic *topics;
  int32_t orig_broker_id;
  char *orig_broker_name;
} rd_kafka_metadata_t;
rd_kafka_resp_err_t rd_kafka_metadata(rd_kafka_t *rk, int all_topics, rd_kafka_topic_t *only_rkt, const struct rd_kafka_metadata **metadatap, int timeout_ms);
void rd_kafka_metadata_destroy(const struct rd_kafka_metadata *metadata);
struct rd_kafka_group_member_info {
  char *member_id;
  char *client_id;
  char *client_host;
  void *member_metadata;
  int member_metadata_size;
  void *member_assignment;
  int member_assignment_size;
};
struct rd_kafka_group_info {
  struct rd_kafka_metadata_broker broker;
  char *group;
  rd_kafka_resp_err_t err;
  char *state;
  char *protocol_type;
  char *protocol;
  struct rd_kafka_group_member_info *members;
  int member_cnt;
};
struct rd_kafka_group_list {
  struct rd_kafka_group_info *groups;
  int group_cnt;
};
rd_kafka_resp_err_t rd_kafka_list_groups(rd_kafka_t *rk, const char *group, const struct rd_kafka_group_list **grplistp, int timeout_ms);
void rd_kafka_group_list_destroy(const struct rd_kafka_group_list *grplist);
int rd_kafka_brokers_add(rd_kafka_t *rk, const char *brokerlist);
void rd_kafka_set_logger(rd_kafka_t *rk, void (*func)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_set_log_level(rd_kafka_t *rk, int level);
void rd_kafka_log_print(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
void rd_kafka_log_syslog(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
int rd_kafka_outq_len(rd_kafka_t *rk);
void rd_kafka_dump(FILE *fp, rd_kafka_t *rk);
int rd_kafka_thread_cnt(void);
typedef enum rd_kafka_thread_type_t {
  RD_KAFKA_THREAD_MAIN,
  RD_KAFKA_THREAD_BACKGROUND,
  RD_KAFKA_THREAD_BROKER,
} rd_kafka_thread_type_t;
int rd_kafka_wait_destroyed(int timeout_ms);
int rd_kafka_unittest(void);
rd_kafka_resp_err_t rd_kafka_poll_set_consumer(rd_kafka_t *rk);
typedef int rd_kafka_event_type_t;
rd_kafka_event_type_t rd_kafka_event_type(const rd_kafka_event_t *rkev);
const char *rd_kafka_event_name(const rd_kafka_event_t *rkev);
void rd_kafka_event_destroy(rd_kafka_event_t *rkev);
const rd_kafka_message_t *rd_kafka_event_message_next(rd_kafka_event_t *rkev);
size_t rd_kafka_event_message_array(rd_kafka_event_t *rkev, const rd_kafka_message_t **rkmessages, size_t size);
size_t rd_kafka_event_message_count(rd_kafka_event_t *rkev);
const char *rd_kafka_event_config_string(rd_kafka_event_t *rkev);
rd_kafka_resp_err_t rd_kafka_event_error(rd_kafka_event_t *rkev);
const char *rd_kafka_event_error_string(rd_kafka_event_t *rkev);
int rd_kafka_event_error_is_fatal(rd_kafka_event_t *rkev);
void *rd_kafka_event_opaque(rd_kafka_event_t *rkev);
int rd_kafka_event_log(rd_kafka_event_t *rkev, const char **fac, const char **str, int *level);
const char *rd_kafka_event_stats(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_list_t *rd_kafka_event_topic_partition_list(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_t *rd_kafka_event_topic_partition(rd_kafka_event_t *rkev);
typedef rd_kafka_event_t rd_kafka_CreateTopics_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteTopics_result_t;
typedef rd_kafka_event_t rd_kafka_CreatePartitions_result_t;
typedef rd_kafka_event_t rd_kafka_AlterConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeConfigs_result_t;
const rd_kafka_CreateTopics_result_t *rd_kafka_event_CreateTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteTopics_result_t *rd_kafka_event_DeleteTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_CreatePartitions_result_t *rd_kafka_event_CreatePartitions_result(rd_kafka_event_t *rkev);
const rd_kafka_AlterConfigs_result_t *rd_kafka_event_AlterConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeConfigs_result_t *rd_kafka_event_DescribeConfigs_result(rd_kafka_event_t *rkev);
rd_kafka_event_t *rd_kafka_queue_poll(rd_kafka_queue_t *rkqu, int timeout_ms);
int rd_kafka_queue_poll_callback(rd_kafka_queue_t *rkqu, int timeout_ms);
typedef rd_kafka_resp_err_t (rd_kafka_plugin_f_conf_init_t)(rd_kafka_conf_t *conf, void **plug_opaquep, char *errstr, size_t errstr_size);
typedef rd_kafka_conf_res_t (rd_kafka_interceptor_f_on_conf_set_t)(rd_kafka_conf_t *conf, const char *name, const char *val, char *errstr, size_t errstr_size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_dup_t)(rd_kafka_conf_t *new_conf, const rd_kafka_conf_t *old_conf, size_t filter_cnt, const char **filter, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_destroy_t)(void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_new_t)(rd_kafka_t *rk, const rd_kafka_conf_t *conf, void *ic_opaque, char *errstr, size_t errstr_size);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_destroy_t)(rd_kafka_t *rk, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_send_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_acknowledgement_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_consume_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_commit_t)(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_request_sent_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_start_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_exit_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_set(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_set_t *on_conf_set, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_dup(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_dup_t *on_conf_dup, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_destroy(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_destroy_t *on_conf_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_new(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_new_t *on_new, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_destroy(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_destroy_t *on_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_send(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_send_t *on_send, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_acknowledgement(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_acknowledgement_t *on_acknowledgement, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_consume(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_consume_t *on_consume, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_commit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_commit_t *on_commit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_request_sent(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_request_sent_t *on_request_sent, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_start(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_start_t *on_thread_start, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_exit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_exit_t *on_thread_exit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_topic_result_error(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_error_string(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_name(const rd_kafka_topic_result_t *topicres);
typedef enum rd_kafka_admin_op_t {
  RD_KAFKA_ADMIN_OP_ANY = 0,
  RD_KAFKA_ADMIN_OP_CREATETOPICS,
  RD_KAFKA_ADMIN_OP_DELETETOPICS,
  RD_KAFKA_ADMIN_OP_CREATEPARTITIONS,
  RD_KAFKA_ADMIN_OP_ALTERCONFIGS,
  RD_KAFKA_ADMIN_OP_DESCRIBECONFIGS,
  RD_KAFKA_ADMIN_OP__CNT,
} rd_kafka_admin_op_t;
typedef struct rd_kafka_AdminOptions_s rd_kafka_AdminOptions_t;
rd_kafka_AdminOptions_t *rd_kafka_AdminOptions_new(rd_kafka_t *rk, rd_kafka_admin_op_t for_api);
void rd_kafka_AdminOptions_destroy(rd_kafka_AdminOptions_t *options);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_request_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_operation_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_validate_only(rd_kafka_AdminOptions_t *options, int true_or_false, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_broker(rd_kafka_AdminOptions_t *options, int32_t broker_id, char *errstr, size_t errstr_size);
void rd_kafka_AdminOptions_set_opaque(rd_kafka_AdminOptions_t *options, void *ev_opaque);
typedef struct rd_kafka_NewTopic_s rd_kafka_NewTopic_t;
rd_kafka_NewTopic_t *rd_kafka_NewTopic_new(const char *topic, int num_partitions, int replication_factor, char *errstr, size_t errstr_size);
void rd_kafka_NewTopic_destroy(rd_kafka_NewTopic_t *new_topic);
void rd_kafka_NewTopic_destroy_array(rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_replica_assignment(rd_kafka_NewTopic_t *new_topic, int32_t partition, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_config(rd_kafka_NewTopic_t *new_topic, const char *name, const char *value);
void rd_kafka_CreateTopics(rd_kafka_t *rk, rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreateTopics_result_topics(const rd_kafka_CreateTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteTopic_s rd_kafka_DeleteTopic_t;
rd_kafka_DeleteTopic_t *rd_kafka_DeleteTopic_new(const char *topic);
void rd_kafka_DeleteTopic_destroy(rd_kafka_DeleteTopic_t *del_topic);
void rd_kafka_DeleteTopic_destroy_array(rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt);
void rd_kafka_DeleteTopics(rd_kafka_t *rk, rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_DeleteTopics_result_topics(const rd_kafka_DeleteTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_NewPartitions_s rd_kafka_NewPartitions_t;
rd_kafka_NewPartitions_t *rd_kafka_NewPartitions_new(const char *topic, size_t new_total_cnt, char *errstr, size_t errstr_size);
void rd_kafka_NewPartitions_destroy(rd_kafka_NewPartitions_t *new_parts);
void rd_kafka_NewPartitions_destroy_array(rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt);
rd_kafka_resp_err_t rd_kafka_NewPartitions_set_replica_assignment(rd_kafka_NewPartitions_t *new_parts, int32_t new_partition_idx, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
void rd_kafka_CreatePartitions(rd_kafka_t *rk, rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreatePartitions_result_topics(const rd_kafka_CreatePartitions_result_t *result, size_t *cntp);
typedef enum rd_kafka_ConfigSource_t {
  RD_KAFKA_CONFIG_SOURCE_UNKNOWN_CONFIG = 0,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG = 1,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG = 2,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG = 3,
  RD_KAFKA_CONFIG_SOURCE_STATIC_BROKER_CONFIG = 4,
  RD_KAFKA_CONFIG_SOURCE_DEFAULT_CONFIG = 5,
  RD_KAFKA_CONFIG_SOURCE__CNT,
} rd_kafka_ConfigSource_t;
const char *rd_kafka_ConfigSource_name(rd_kafka_ConfigSource_t confsource);
typedef struct rd_kafka_ConfigEntry_s rd_kafka_ConfigEntry_t;
const char *rd_kafka_ConfigEntry_name(const rd_kafka_ConfigEntry_t *entry);
const char *rd_kafka_ConfigEntry_value(const rd_kafka_ConfigEntry_t *entry);
rd_kafka_ConfigSource_t rd_kafka_ConfigEntry_source(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_read_only(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_default(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_sensitive(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_synonym(const rd_kafka_ConfigEntry_t *entry);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigEntry_synonyms(const rd_kafka_ConfigEntry_t *entry, size_t *cntp);
typedef enum rd_kafka_ResourceType_t {
  RD_KAFKA_RESOURCE_UNKNOWN = 0,
  RD_KAFKA_RESOURCE_ANY = 1,
  RD_KAFKA_RESOURCE_TOPIC = 2,
  RD_KAFKA_RESOURCE_GROUP = 3,
  RD_KAFKA_RESOURCE_BROKER = 4,
  RD_KAFKA_RESOURCE__CNT,
} rd_kafka_ResourceType_t;
const char *rd_kafka_ResourceType_name(rd_kafka_ResourceType_t restype);
typedef struct rd_kafka_ConfigResource_s rd_kafka_ConfigResource_t;
rd_kafka_ConfigResource_t *rd_kafka_ConfigResource_new(rd_kafka_ResourceType_t restype, const char *resname);
void rd_kafka_ConfigResource_destroy(rd_kafka_ConfigResource_t *config);
void rd_kafka_ConfigResource_destroy_array(rd_kafka_ConfigResource_t **config, size_t config_cnt);
rd_kafka_resp_err_t rd_kafka_ConfigResource_set_config(rd_kafka_ConfigResource_t *config, const char *name, const char *value);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigResource_configs(const rd_kafka_ConfigResource_t *config, size_t *cntp);
rd_kafka_ResourceType_t rd_kafka_ConfigResource_type(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_name(const rd_kafka_ConfigResource_t *config);
rd_kafka_resp_err_t rd_kafka_ConfigResource_error(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_error_string(const rd_kafka_ConfigResource_t *config);
void rd_kafka_AlterConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_AlterConfigs_result_resources(const rd_kafka_AlterConfigs_result_t *result, size_t *cntp);
void rd_kafka_DescribeConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_DescribeConfigs_result_resources(const rd_kafka_DescribeConfigs_result_t *result, size_t *cntp);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token(rd_kafka_t *rk, const char *token_value, int64_t md_lifetime_ms, const char *md_principal_name, const char **extensions, size_t extension_size, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token_failure(rd_kafka_t *rk, const char *errstr);
rd_kafka_error_t *rd_kafka_init_transactions(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_begin_transaction(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_send_offsets_to_transaction(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, const rd_kafka_consumer_group_metadata_t *cgmetadata, int timeout_ms);
rd_kafka_error_t *rd_kafka_commit_transaction(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_abort_transaction(rd_kafka_t *rk, int timeout_ms);
typedef struct rd_kafka_mock_cluster_s rd_kafka_mock_cluster_t;
rd_kafka_mock_cluster_t *rd_kafka_mock_cluster_new(rd_kafka_t *rk, int broker_cnt);
void rd_kafka_mock_cluster_destroy(rd_kafka_mock_cluster_t *mcluster);
rd_kafka_t *rd_kafka_mock_cluster_handle(const rd_kafka_mock_cluster_t *mcluster);
rd_kafka_mock_cluster_t *rd_kafka_handle_mock_cluster(const rd_kafka_t *rk);
const char *rd_kafka_mock_cluster_bootstraps(const rd_kafka_mock_cluster_t *mcluster);
void rd_kafka_mock_push_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, ...);
void rd_kafka_mock_topic_set_error(rd_kafka_mock_cluster_t *mcluster, const char *topic, rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_mock_topic_create(rd_kafka_mock_cluster_t *mcluster, const char *topic, int partition_cnt, int replication_factor);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_leader(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower_wmarks(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int64_t lo, int64_t hi);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_down(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_up(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rtt(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int rtt_ms);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rack(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, const char *rack);
rd_kafka_resp_err_t rd_kafka_mock_coordinator_set(rd_kafka_mock_cluster_t *mcluster, const char *key_type, const char *key, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_set_apiversion(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, int16_t MinVersion, int16_t MaxVersion);
'
rdkafka.h, rdkafka_mock.h

RD_KAFKA_VERSION

public RD_KAFKA_VERSION = 17105151

librdkafka version

Interpreted as hex MM.mm.rr.xx:

  • MM = Major
  • mm = minor
  • rr = revision
  • xx = pre-release id (0xff is the final release)

E.g.: 0x000801ff = 0.8.1

Remarks
This value should only be used during compile time, for runtime checks of version use rd_kafka_version()

RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE

public RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76

Unsupported compression type

RD_KAFKA_RESP_ERR_END_ALL

public RD_KAFKA_RESP_ERR_END_ALL = 83
enum rd_kafka_resp_err_t

RD_KAFKA_ADMIN_OP__CNT

public RD_KAFKA_ADMIN_OP__CNT = 6

Number of ops defined

RD_KAFKA_CDEF

public RD_KAFKA_CDEF = 'typedef long int ssize_t;
typedef struct _IO_FILE FILE;
typedef long int mode_t;
typedef signed int int16_t;
typedef unsigned int uint16_t;
typedef signed int int32_t;
typedef signed long int int64_t;
int rd_kafka_version(void);
const char *rd_kafka_version_str(void);
typedef enum rd_kafka_type_t {
  RD_KAFKA_PRODUCER,
  RD_KAFKA_CONSUMER,
} rd_kafka_type_t;
typedef enum rd_kafka_timestamp_type_t {
  RD_KAFKA_TIMESTAMP_NOT_AVAILABLE,
  RD_KAFKA_TIMESTAMP_CREATE_TIME,
  RD_KAFKA_TIMESTAMP_LOG_APPEND_TIME,
} rd_kafka_timestamp_type_t;
const char *rd_kafka_get_debug_contexts(void);
typedef struct rd_kafka_s rd_kafka_t;
typedef struct rd_kafka_topic_s rd_kafka_topic_t;
typedef struct rd_kafka_conf_s rd_kafka_conf_t;
typedef struct rd_kafka_topic_conf_s rd_kafka_topic_conf_t;
typedef struct rd_kafka_queue_s rd_kafka_queue_t;
typedef struct rd_kafka_op_s rd_kafka_event_t;
typedef struct rd_kafka_topic_result_s rd_kafka_topic_result_t;
typedef struct rd_kafka_consumer_group_metadata_s rd_kafka_consumer_group_metadata_t;
typedef struct rd_kafka_error_s {
  unsigned int code;
  char *errstr;
  unsigned char fatal;
  unsigned char retriable;
  unsigned char txn_requires_abort;
} rd_kafka_error_t;
typedef struct rd_kafka_headers_s rd_kafka_headers_t;
typedef enum {
  RD_KAFKA_RESP_ERR__BEGIN = (- 200),
  RD_KAFKA_RESP_ERR__BAD_MSG = (- 199),
  RD_KAFKA_RESP_ERR__BAD_COMPRESSION = (- 198),
  RD_KAFKA_RESP_ERR__DESTROY = (- 197),
  RD_KAFKA_RESP_ERR__FAIL = (- 196),
  RD_KAFKA_RESP_ERR__TRANSPORT = (- 195),
  RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE = (- 194),
  RD_KAFKA_RESP_ERR__RESOLVE = (- 193),
  RD_KAFKA_RESP_ERR__MSG_TIMED_OUT = (- 192),
  RD_KAFKA_RESP_ERR__PARTITION_EOF = (- 191),
  RD_KAFKA_RESP_ERR__UNKNOWN_PARTITION = (- 190),
  RD_KAFKA_RESP_ERR__FS = (- 189),
  RD_KAFKA_RESP_ERR__UNKNOWN_TOPIC = (- 188),
  RD_KAFKA_RESP_ERR__ALL_BROKERS_DOWN = (- 187),
  RD_KAFKA_RESP_ERR__INVALID_ARG = (- 186),
  RD_KAFKA_RESP_ERR__TIMED_OUT = (- 185),
  RD_KAFKA_RESP_ERR__QUEUE_FULL = (- 184),
  RD_KAFKA_RESP_ERR__ISR_INSUFF = (- 183),
  RD_KAFKA_RESP_ERR__NODE_UPDATE = (- 182),
  RD_KAFKA_RESP_ERR__SSL = (- 181),
  RD_KAFKA_RESP_ERR__WAIT_COORD = (- 180),
  RD_KAFKA_RESP_ERR__UNKNOWN_GROUP = (- 179),
  RD_KAFKA_RESP_ERR__IN_PROGRESS = (- 178),
  RD_KAFKA_RESP_ERR__PREV_IN_PROGRESS = (- 177),
  RD_KAFKA_RESP_ERR__EXISTING_SUBSCRIPTION = (- 176),
  RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS = (- 175),
  RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS = (- 174),
  RD_KAFKA_RESP_ERR__CONFLICT = (- 173),
  RD_KAFKA_RESP_ERR__STATE = (- 172),
  RD_KAFKA_RESP_ERR__UNKNOWN_PROTOCOL = (- 171),
  RD_KAFKA_RESP_ERR__NOT_IMPLEMENTED = (- 170),
  RD_KAFKA_RESP_ERR__AUTHENTICATION = (- 169),
  RD_KAFKA_RESP_ERR__NO_OFFSET = (- 168),
  RD_KAFKA_RESP_ERR__OUTDATED = (- 167),
  RD_KAFKA_RESP_ERR__TIMED_OUT_QUEUE = (- 166),
  RD_KAFKA_RESP_ERR__UNSUPPORTED_FEATURE = (- 165),
  RD_KAFKA_RESP_ERR__WAIT_CACHE = (- 164),
  RD_KAFKA_RESP_ERR__INTR = (- 163),
  RD_KAFKA_RESP_ERR__KEY_SERIALIZATION = (- 162),
  RD_KAFKA_RESP_ERR__VALUE_SERIALIZATION = (- 161),
  RD_KAFKA_RESP_ERR__KEY_DESERIALIZATION = (- 160),
  RD_KAFKA_RESP_ERR__VALUE_DESERIALIZATION = (- 159),
  RD_KAFKA_RESP_ERR__PARTIAL = (- 158),
  RD_KAFKA_RESP_ERR__READ_ONLY = (- 157),
  RD_KAFKA_RESP_ERR__NOENT = (- 156),
  RD_KAFKA_RESP_ERR__UNDERFLOW = (- 155),
  RD_KAFKA_RESP_ERR__INVALID_TYPE = (- 154),
  RD_KAFKA_RESP_ERR__RETRY = (- 153),
  RD_KAFKA_RESP_ERR__PURGE_QUEUE = (- 152),
  RD_KAFKA_RESP_ERR__PURGE_INFLIGHT = (- 151),
  RD_KAFKA_RESP_ERR__FATAL = (- 150),
  RD_KAFKA_RESP_ERR__INCONSISTENT = (- 149),
  RD_KAFKA_RESP_ERR__GAPLESS_GUARANTEE = (- 148),
  RD_KAFKA_RESP_ERR__MAX_POLL_EXCEEDED = (- 147),
  RD_KAFKA_RESP_ERR__UNKNOWN_BROKER = (- 146),
  RD_KAFKA_RESP_ERR__NOT_CONFIGURED = (- 145),
  RD_KAFKA_RESP_ERR__FENCED = (- 144),
  RD_KAFKA_RESP_ERR__APPLICATION = (- 143),
  RD_KAFKA_RESP_ERR__END = (- 100),
  RD_KAFKA_RESP_ERR_UNKNOWN = (- 1),
  RD_KAFKA_RESP_ERR_NO_ERROR = 0,
  RD_KAFKA_RESP_ERR_OFFSET_OUT_OF_RANGE = 1,
  RD_KAFKA_RESP_ERR_INVALID_MSG = 2,
  RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_OR_PART = 3,
  RD_KAFKA_RESP_ERR_INVALID_MSG_SIZE = 4,
  RD_KAFKA_RESP_ERR_LEADER_NOT_AVAILABLE = 5,
  RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION = 6,
  RD_KAFKA_RESP_ERR_REQUEST_TIMED_OUT = 7,
  RD_KAFKA_RESP_ERR_BROKER_NOT_AVAILABLE = 8,
  RD_KAFKA_RESP_ERR_REPLICA_NOT_AVAILABLE = 9,
  RD_KAFKA_RESP_ERR_MSG_SIZE_TOO_LARGE = 10,
  RD_KAFKA_RESP_ERR_STALE_CTRL_EPOCH = 11,
  RD_KAFKA_RESP_ERR_OFFSET_METADATA_TOO_LARGE = 12,
  RD_KAFKA_RESP_ERR_NETWORK_EXCEPTION = 13,
  RD_KAFKA_RESP_ERR_COORDINATOR_LOAD_IN_PROGRESS = 14,
  RD_KAFKA_RESP_ERR_COORDINATOR_NOT_AVAILABLE = 15,
  RD_KAFKA_RESP_ERR_NOT_COORDINATOR = 16,
  RD_KAFKA_RESP_ERR_TOPIC_EXCEPTION = 17,
  RD_KAFKA_RESP_ERR_RECORD_LIST_TOO_LARGE = 18,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS = 19,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS_AFTER_APPEND = 20,
  RD_KAFKA_RESP_ERR_INVALID_REQUIRED_ACKS = 21,
  RD_KAFKA_RESP_ERR_ILLEGAL_GENERATION = 22,
  RD_KAFKA_RESP_ERR_INCONSISTENT_GROUP_PROTOCOL = 23,
  RD_KAFKA_RESP_ERR_INVALID_GROUP_ID = 24,
  RD_KAFKA_RESP_ERR_UNKNOWN_MEMBER_ID = 25,
  RD_KAFKA_RESP_ERR_INVALID_SESSION_TIMEOUT = 26,
  RD_KAFKA_RESP_ERR_REBALANCE_IN_PROGRESS = 27,
  RD_KAFKA_RESP_ERR_INVALID_COMMIT_OFFSET_SIZE = 28,
  RD_KAFKA_RESP_ERR_TOPIC_AUTHORIZATION_FAILED = 29,
  RD_KAFKA_RESP_ERR_GROUP_AUTHORIZATION_FAILED = 30,
  RD_KAFKA_RESP_ERR_CLUSTER_AUTHORIZATION_FAILED = 31,
  RD_KAFKA_RESP_ERR_INVALID_TIMESTAMP = 32,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_SASL_MECHANISM = 33,
  RD_KAFKA_RESP_ERR_ILLEGAL_SASL_STATE = 34,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_VERSION = 35,
  RD_KAFKA_RESP_ERR_TOPIC_ALREADY_EXISTS = 36,
  RD_KAFKA_RESP_ERR_INVALID_PARTITIONS = 37,
  RD_KAFKA_RESP_ERR_INVALID_REPLICATION_FACTOR = 38,
  RD_KAFKA_RESP_ERR_INVALID_REPLICA_ASSIGNMENT = 39,
  RD_KAFKA_RESP_ERR_INVALID_CONFIG = 40,
  RD_KAFKA_RESP_ERR_NOT_CONTROLLER = 41,
  RD_KAFKA_RESP_ERR_INVALID_REQUEST = 42,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_FOR_MESSAGE_FORMAT = 43,
  RD_KAFKA_RESP_ERR_POLICY_VIOLATION = 44,
  RD_KAFKA_RESP_ERR_OUT_OF_ORDER_SEQUENCE_NUMBER = 45,
  RD_KAFKA_RESP_ERR_DUPLICATE_SEQUENCE_NUMBER = 46,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_EPOCH = 47,
  RD_KAFKA_RESP_ERR_INVALID_TXN_STATE = 48,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_ID_MAPPING = 49,
  RD_KAFKA_RESP_ERR_INVALID_TRANSACTION_TIMEOUT = 50,
  RD_KAFKA_RESP_ERR_CONCURRENT_TRANSACTIONS = 51,
  RD_KAFKA_RESP_ERR_TRANSACTION_COORDINATOR_FENCED = 52,
  RD_KAFKA_RESP_ERR_TRANSACTIONAL_ID_AUTHORIZATION_FAILED = 53,
  RD_KAFKA_RESP_ERR_SECURITY_DISABLED = 54,
  RD_KAFKA_RESP_ERR_OPERATION_NOT_ATTEMPTED = 55,
  RD_KAFKA_RESP_ERR_KAFKA_STORAGE_ERROR = 56,
  RD_KAFKA_RESP_ERR_LOG_DIR_NOT_FOUND = 57,
  RD_KAFKA_RESP_ERR_SASL_AUTHENTICATION_FAILED = 58,
  RD_KAFKA_RESP_ERR_UNKNOWN_PRODUCER_ID = 59,
  RD_KAFKA_RESP_ERR_REASSIGNMENT_IN_PROGRESS = 60,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTH_DISABLED = 61,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_NOT_FOUND = 62,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_OWNER_MISMATCH = 63,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_REQUEST_NOT_ALLOWED = 64,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTHORIZATION_FAILED = 65,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_EXPIRED = 66,
  RD_KAFKA_RESP_ERR_INVALID_PRINCIPAL_TYPE = 67,
  RD_KAFKA_RESP_ERR_NON_EMPTY_GROUP = 68,
  RD_KAFKA_RESP_ERR_GROUP_ID_NOT_FOUND = 69,
  RD_KAFKA_RESP_ERR_FETCH_SESSION_ID_NOT_FOUND = 70,
  RD_KAFKA_RESP_ERR_INVALID_FETCH_SESSION_EPOCH = 71,
  RD_KAFKA_RESP_ERR_LISTENER_NOT_FOUND = 72,
  RD_KAFKA_RESP_ERR_TOPIC_DELETION_DISABLED = 73,
  RD_KAFKA_RESP_ERR_FENCED_LEADER_EPOCH = 74,
  RD_KAFKA_RESP_ERR_UNKNOWN_LEADER_EPOCH = 75,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76,
  RD_KAFKA_RESP_ERR_STALE_BROKER_EPOCH = 77,
  RD_KAFKA_RESP_ERR_OFFSET_NOT_AVAILABLE = 78,
  RD_KAFKA_RESP_ERR_MEMBER_ID_REQUIRED = 79,
  RD_KAFKA_RESP_ERR_PREFERRED_LEADER_NOT_AVAILABLE = 80,
  RD_KAFKA_RESP_ERR_GROUP_MAX_SIZE_REACHED = 81,
  RD_KAFKA_RESP_ERR_FENCED_INSTANCE_ID = 82,
  RD_KAFKA_RESP_ERR_END_ALL,
} rd_kafka_resp_err_t;
struct rd_kafka_err_desc {
  rd_kafka_resp_err_t code;
  char *name;
  char *desc;
};
void rd_kafka_get_err_descs(const struct rd_kafka_err_desc **errdescs, size_t *cntp);
const char *rd_kafka_err2str(rd_kafka_resp_err_t err);
const char *rd_kafka_err2name(rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_last_error(void);
rd_kafka_resp_err_t rd_kafka_errno2err(int errnox);
int rd_kafka_errno(void);
rd_kafka_resp_err_t rd_kafka_fatal_error(rd_kafka_t *rk, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_test_fatal_error(rd_kafka_t *rk, rd_kafka_resp_err_t err, const char *reason);
rd_kafka_resp_err_t rd_kafka_error_code(const rd_kafka_error_t *error);
const char *rd_kafka_error_name(const rd_kafka_error_t *error);
const char *rd_kafka_error_string(const rd_kafka_error_t *error);
int rd_kafka_error_is_fatal(const rd_kafka_error_t *error);
int rd_kafka_error_is_retriable(const rd_kafka_error_t *error);
int rd_kafka_error_txn_requires_abort(const rd_kafka_error_t *error);
void rd_kafka_error_destroy(rd_kafka_error_t *error);
rd_kafka_error_t *rd_kafka_error_new(rd_kafka_resp_err_t code, const char *fmt, ...);
typedef struct rd_kafka_topic_partition_s {
  char *topic;
  int32_t partition;
  int64_t offset;
  void *metadata;
  size_t metadata_size;
  void *opaque;
  rd_kafka_resp_err_t err;
  void *_private;
} rd_kafka_topic_partition_t;
void rd_kafka_topic_partition_destroy(rd_kafka_topic_partition_t *rktpar);
typedef struct rd_kafka_topic_partition_list_s {
  int cnt;
  int size;
  rd_kafka_topic_partition_t *elems;
} rd_kafka_topic_partition_list_t;
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_new(int size);
void rd_kafka_topic_partition_list_destroy(rd_kafka_topic_partition_list_t *rkparlist);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_add(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_add_range(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t start, int32_t stop);
int rd_kafka_topic_partition_list_del(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
int rd_kafka_topic_partition_list_del_by_idx(rd_kafka_topic_partition_list_t *rktparlist, int idx);
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_copy(const rd_kafka_topic_partition_list_t *src);
rd_kafka_resp_err_t rd_kafka_topic_partition_list_set_offset(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition, int64_t offset);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_find(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_sort(rd_kafka_topic_partition_list_t *rktparlist, int (*cmp)(const void *a, const void *b, void *cmp_opaque), void *cmp_opaque);
typedef enum rd_kafka_vtype_t {
  RD_KAFKA_VTYPE_END,
  RD_KAFKA_VTYPE_TOPIC,
  RD_KAFKA_VTYPE_RKT,
  RD_KAFKA_VTYPE_PARTITION,
  RD_KAFKA_VTYPE_VALUE,
  RD_KAFKA_VTYPE_KEY,
  RD_KAFKA_VTYPE_OPAQUE,
  RD_KAFKA_VTYPE_MSGFLAGS,
  RD_KAFKA_VTYPE_TIMESTAMP,
  RD_KAFKA_VTYPE_HEADER,
  RD_KAFKA_VTYPE_HEADERS,
} rd_kafka_vtype_t;
typedef struct rd_kafka_vu_s {
  rd_kafka_vtype_t vtype;
  union {
    char *cstr;
    rd_kafka_topic_t *rkt;
    int i;
    int32_t i32;
    int64_t i64;
    struct {
      void *ptr;
      size_t size;
    } mem;
    struct {
      char *name;
      void *val;
      ssize_t size;
    } header;
    rd_kafka_headers_t *headers;
    void *ptr;
    char _pad[64];
  } u;
} rd_kafka_vu_t;
rd_kafka_headers_t *rd_kafka_headers_new(size_t initial_count);
void rd_kafka_headers_destroy(rd_kafka_headers_t *hdrs);
rd_kafka_headers_t *rd_kafka_headers_copy(const rd_kafka_headers_t *src);
rd_kafka_resp_err_t rd_kafka_header_add(rd_kafka_headers_t *hdrs, const char *name, ssize_t name_size, const void *value, ssize_t value_size);
rd_kafka_resp_err_t rd_kafka_header_remove(rd_kafka_headers_t *hdrs, const char *name);
rd_kafka_resp_err_t rd_kafka_header_get_last(const rd_kafka_headers_t *hdrs, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get(const rd_kafka_headers_t *hdrs, size_t idx, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get_all(const rd_kafka_headers_t *hdrs, size_t idx, const char **namep, const void **valuep, size_t *sizep);
typedef struct rd_kafka_message_s {
  rd_kafka_resp_err_t err;
  rd_kafka_topic_t *rkt;
  int32_t partition;
  void *payload;
  size_t len;
  void *key;
  size_t key_len;
  int64_t offset;
  void *_private;
} rd_kafka_message_t;
void rd_kafka_message_destroy(rd_kafka_message_t *rkmessage);
const char *rd_kafka_message_errstr(const rd_kafka_message_t *rkmessage);
int64_t rd_kafka_message_timestamp(const rd_kafka_message_t *rkmessage, rd_kafka_timestamp_type_t *tstype);
int64_t rd_kafka_message_latency(const rd_kafka_message_t *rkmessage);
int32_t rd_kafka_message_broker_id(const rd_kafka_message_t *rkmessage);
rd_kafka_resp_err_t rd_kafka_message_headers(const rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
rd_kafka_resp_err_t rd_kafka_message_detach_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
void rd_kafka_message_set_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t *hdrs);
size_t rd_kafka_header_cnt(const rd_kafka_headers_t *hdrs);
typedef enum {
  RD_KAFKA_MSG_STATUS_NOT_PERSISTED = 0,
  RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED = 1,
  RD_KAFKA_MSG_STATUS_PERSISTED = 2,
} rd_kafka_msg_status_t;
rd_kafka_msg_status_t rd_kafka_message_status(const rd_kafka_message_t *rkmessage);
typedef enum {
  RD_KAFKA_CONF_UNKNOWN = (- 2),
  RD_KAFKA_CONF_INVALID = (- 1),
  RD_KAFKA_CONF_OK = 0,
} rd_kafka_conf_res_t;
rd_kafka_conf_t *rd_kafka_conf_new(void);
void rd_kafka_conf_destroy(rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup(const rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup_filter(const rd_kafka_conf_t *conf, size_t filter_cnt, const char **filter);
const rd_kafka_conf_t *rd_kafka_conf(rd_kafka_t *rk);
rd_kafka_conf_res_t rd_kafka_conf_set(rd_kafka_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_events(rd_kafka_conf_t *conf, int events);
void rd_kafka_conf_set_background_event_cb(rd_kafka_conf_t *conf, void (*event_cb)(rd_kafka_t *rk, rd_kafka_event_t *rkev, void *opaque));
void rd_kafka_conf_set_dr_cb(rd_kafka_conf_t *conf, void (*dr_cb)(rd_kafka_t *rk, void *payload, size_t len, rd_kafka_resp_err_t err, void *opaque, void *msg_opaque));
void rd_kafka_conf_set_dr_msg_cb(rd_kafka_conf_t *conf, void (*dr_msg_cb)(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_consume_cb(rd_kafka_conf_t *conf, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_rebalance_cb(rd_kafka_conf_t *conf, void (*rebalance_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *partitions, void *opaque));
void rd_kafka_conf_set_offset_commit_cb(rd_kafka_conf_t *conf, void (*offset_commit_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *opaque));
void rd_kafka_conf_set_error_cb(rd_kafka_conf_t *conf, void (*error_cb)(rd_kafka_t *rk, int err, const char *reason, void *opaque));
void rd_kafka_conf_set_throttle_cb(rd_kafka_conf_t *conf, void (*throttle_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int throttle_time_ms, void *opaque));
void rd_kafka_conf_set_log_cb(rd_kafka_conf_t *conf, void (*log_cb)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_conf_set_stats_cb(rd_kafka_conf_t *conf, int (*stats_cb)(rd_kafka_t *rk, char *json, size_t json_len, void *opaque));
void rd_kafka_conf_set_oauthbearer_token_refresh_cb(rd_kafka_conf_t *conf, void (*oauthbearer_token_refresh_cb)(rd_kafka_t *rk, const char *oauthbearer_config, void *opaque));
void rd_kafka_conf_set_socket_cb(rd_kafka_conf_t *conf, int (*socket_cb)(int domain, int type, int protocol, void *opaque));
void rd_kafka_conf_set_connect_cb(rd_kafka_conf_t *conf, int (*connect_cb)(int sockfd, const struct sockaddr *addr, int addrlen, const char *id, void *opaque));
void rd_kafka_conf_set_closesocket_cb(rd_kafka_conf_t *conf, int (*closesocket_cb)(int sockfd, void *opaque));
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert_verify_cb(rd_kafka_conf_t *conf, int (*ssl_cert_verify_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int *x509_error, int depth, const char *buf, size_t size, char *errstr, size_t errstr_size, void *opaque));
typedef enum rd_kafka_cert_type_t {
  RD_KAFKA_CERT_PUBLIC_KEY,
  RD_KAFKA_CERT_PRIVATE_KEY,
  RD_KAFKA_CERT_CA,
  RD_KAFKA_CERT__CNT,
} rd_kafka_cert_type_t;
typedef enum rd_kafka_cert_enc_t {
  RD_KAFKA_CERT_ENC_PKCS12,
  RD_KAFKA_CERT_ENC_DER,
  RD_KAFKA_CERT_ENC_PEM,
  RD_KAFKA_CERT_ENC__CNT,
} rd_kafka_cert_enc_t;
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert(rd_kafka_conf_t *conf, rd_kafka_cert_type_t cert_type, rd_kafka_cert_enc_t cert_enc, const void *buffer, size_t size, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_opaque(rd_kafka_conf_t *conf, void *opaque);
void *rd_kafka_opaque(const rd_kafka_t *rk);
void rd_kafka_conf_set_default_topic_conf(rd_kafka_conf_t *conf, rd_kafka_topic_conf_t *tconf);
rd_kafka_conf_res_t rd_kafka_conf_get(const rd_kafka_conf_t *conf, const char *name, char *dest, size_t *dest_size);
rd_kafka_conf_res_t rd_kafka_topic_conf_get(const rd_kafka_topic_conf_t *conf, const char *name, char *dest, size_t *dest_size);
const char **rd_kafka_conf_dump(rd_kafka_conf_t *conf, size_t *cntp);
const char **rd_kafka_topic_conf_dump(rd_kafka_topic_conf_t *conf, size_t *cntp);
void rd_kafka_conf_dump_free(const char **arr, size_t cnt);
void rd_kafka_conf_properties_show(FILE *fp);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_new(void);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_dup(const rd_kafka_topic_conf_t *conf);
rd_kafka_topic_conf_t *rd_kafka_default_topic_conf_dup(rd_kafka_t *rk);
void rd_kafka_topic_conf_destroy(rd_kafka_topic_conf_t *topic_conf);
rd_kafka_conf_res_t rd_kafka_topic_conf_set(rd_kafka_topic_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_topic_conf_set_opaque(rd_kafka_topic_conf_t *conf, void *rkt_opaque);
void rd_kafka_topic_conf_set_partitioner_cb(rd_kafka_topic_conf_t *topic_conf, int32_t (*partitioner)(const rd_kafka_topic_t *rkt, const void *keydata, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque));
void rd_kafka_topic_conf_set_msg_order_cmp(rd_kafka_topic_conf_t *topic_conf, int (*msg_order_cmp)(const rd_kafka_message_t *a, const rd_kafka_message_t *b));
int rd_kafka_topic_partition_available(const rd_kafka_topic_t *rkt, int32_t partition);
int32_t rd_kafka_msg_partitioner_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
rd_kafka_t *rd_kafka_new(rd_kafka_type_t type, rd_kafka_conf_t *conf, char *errstr, size_t errstr_size);
void rd_kafka_destroy(rd_kafka_t *rk);
void rd_kafka_destroy_flags(rd_kafka_t *rk, int flags);
const char *rd_kafka_name(const rd_kafka_t *rk);
rd_kafka_type_t rd_kafka_type(const rd_kafka_t *rk);
char *rd_kafka_memberid(const rd_kafka_t *rk);
char *rd_kafka_clusterid(rd_kafka_t *rk, int timeout_ms);
int32_t rd_kafka_controllerid(rd_kafka_t *rk, int timeout_ms);
rd_kafka_topic_t *rd_kafka_topic_new(rd_kafka_t *rk, const char *topic, rd_kafka_topic_conf_t *conf);
void rd_kafka_topic_destroy(rd_kafka_topic_t *rkt);
const char *rd_kafka_topic_name(const rd_kafka_topic_t *rkt);
void *rd_kafka_topic_opaque(const rd_kafka_topic_t *rkt);
int rd_kafka_poll(rd_kafka_t *rk, int timeout_ms);
void rd_kafka_yield(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_pause_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_resume_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_query_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_get_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high);
rd_kafka_resp_err_t rd_kafka_offsets_for_times(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets, int timeout_ms);
void rd_kafka_mem_free(rd_kafka_t *rk, void *ptr);
rd_kafka_queue_t *rd_kafka_queue_new(rd_kafka_t *rk);
void rd_kafka_queue_destroy(rd_kafka_queue_t *rkqu);
rd_kafka_queue_t *rd_kafka_queue_get_main(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_consumer(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_partition(rd_kafka_t *rk, const char *topic, int32_t partition);
rd_kafka_queue_t *rd_kafka_queue_get_background(rd_kafka_t *rk);
void rd_kafka_queue_forward(rd_kafka_queue_t *src, rd_kafka_queue_t *dst);
rd_kafka_resp_err_t rd_kafka_set_log_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu);
size_t rd_kafka_queue_length(rd_kafka_queue_t *rkqu);
void rd_kafka_queue_io_event_enable(rd_kafka_queue_t *rkqu, int fd, const void *payload, size_t size);
void rd_kafka_queue_cb_event_enable(rd_kafka_queue_t *rkqu, void (*event_cb)(rd_kafka_t *rk, void *qev_opaque), void *qev_opaque);
int rd_kafka_consume_start(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
int rd_kafka_consume_start_queue(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, rd_kafka_queue_t *rkqu);
int rd_kafka_consume_stop(rd_kafka_topic_t *rkt, int32_t partition);
rd_kafka_resp_err_t rd_kafka_seek(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, int timeout_ms);
rd_kafka_message_t *rd_kafka_consume(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms);
ssize_t rd_kafka_consume_batch(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_message_t *rd_kafka_consume_queue(rd_kafka_queue_t *rkqu, int timeout_ms);
ssize_t rd_kafka_consume_batch_queue(rd_kafka_queue_t *rkqu, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback_queue(rd_kafka_queue_t *rkqu, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_offset_store(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
rd_kafka_resp_err_t rd_kafka_offsets_store(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets);
rd_kafka_resp_err_t rd_kafka_subscribe(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *topics);
rd_kafka_resp_err_t rd_kafka_unsubscribe(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_subscription(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **topics);
rd_kafka_message_t *rd_kafka_consumer_poll(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_consumer_close(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_assignment(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **partitions);
rd_kafka_resp_err_t rd_kafka_commit(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, int async);
rd_kafka_resp_err_t rd_kafka_commit_message(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, int async);
rd_kafka_resp_err_t rd_kafka_commit_queue(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_queue_t *rkqu, void (*cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_committed(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_position(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata(rd_kafka_t *rk);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new(const char *group_id);
void rd_kafka_consumer_group_metadata_destroy(rd_kafka_consumer_group_metadata_t *);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_write(const rd_kafka_consumer_group_metadata_t *cgmd, void **bufferp, size_t *sizep);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_read(rd_kafka_consumer_group_metadata_t **cgmdp, const void *buffer, size_t size);
int rd_kafka_produce(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, void *payload, size_t len, const void *key, size_t keylen, void *msg_opaque);
rd_kafka_resp_err_t rd_kafka_producev(rd_kafka_t *rk, ...);
rd_kafka_error_t *rd_kafka_produceva(rd_kafka_t *rk, const rd_kafka_vu_t *vus, size_t cnt);
int rd_kafka_produce_batch(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, rd_kafka_message_t *rkmessages, int message_cnt);
rd_kafka_resp_err_t rd_kafka_flush(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_purge(rd_kafka_t *rk, int purge_flags);
typedef struct rd_kafka_metadata_broker {
  int32_t id;
  char *host;
  int port;
} rd_kafka_metadata_broker_t;
typedef struct rd_kafka_metadata_partition {
  int32_t id;
  rd_kafka_resp_err_t err;
  int32_t leader;
  int replica_cnt;
  int32_t *replicas;
  int isr_cnt;
  int32_t *isrs;
} rd_kafka_metadata_partition_t;
typedef struct rd_kafka_metadata_topic {
  char *topic;
  int partition_cnt;
  struct rd_kafka_metadata_partition *partitions;
  rd_kafka_resp_err_t err;
} rd_kafka_metadata_topic_t;
typedef struct rd_kafka_metadata {
  int broker_cnt;
  struct rd_kafka_metadata_broker *brokers;
  int topic_cnt;
  struct rd_kafka_metadata_topic *topics;
  int32_t orig_broker_id;
  char *orig_broker_name;
} rd_kafka_metadata_t;
rd_kafka_resp_err_t rd_kafka_metadata(rd_kafka_t *rk, int all_topics, rd_kafka_topic_t *only_rkt, const struct rd_kafka_metadata **metadatap, int timeout_ms);
void rd_kafka_metadata_destroy(const struct rd_kafka_metadata *metadata);
struct rd_kafka_group_member_info {
  char *member_id;
  char *client_id;
  char *client_host;
  void *member_metadata;
  int member_metadata_size;
  void *member_assignment;
  int member_assignment_size;
};
struct rd_kafka_group_info {
  struct rd_kafka_metadata_broker broker;
  char *group;
  rd_kafka_resp_err_t err;
  char *state;
  char *protocol_type;
  char *protocol;
  struct rd_kafka_group_member_info *members;
  int member_cnt;
};
struct rd_kafka_group_list {
  struct rd_kafka_group_info *groups;
  int group_cnt;
};
rd_kafka_resp_err_t rd_kafka_list_groups(rd_kafka_t *rk, const char *group, const struct rd_kafka_group_list **grplistp, int timeout_ms);
void rd_kafka_group_list_destroy(const struct rd_kafka_group_list *grplist);
int rd_kafka_brokers_add(rd_kafka_t *rk, const char *brokerlist);
void rd_kafka_set_logger(rd_kafka_t *rk, void (*func)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_set_log_level(rd_kafka_t *rk, int level);
void rd_kafka_log_print(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
void rd_kafka_log_syslog(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
int rd_kafka_outq_len(rd_kafka_t *rk);
void rd_kafka_dump(FILE *fp, rd_kafka_t *rk);
int rd_kafka_thread_cnt(void);
typedef enum rd_kafka_thread_type_t {
  RD_KAFKA_THREAD_MAIN,
  RD_KAFKA_THREAD_BACKGROUND,
  RD_KAFKA_THREAD_BROKER,
} rd_kafka_thread_type_t;
int rd_kafka_wait_destroyed(int timeout_ms);
int rd_kafka_unittest(void);
rd_kafka_resp_err_t rd_kafka_poll_set_consumer(rd_kafka_t *rk);
typedef int rd_kafka_event_type_t;
rd_kafka_event_type_t rd_kafka_event_type(const rd_kafka_event_t *rkev);
const char *rd_kafka_event_name(const rd_kafka_event_t *rkev);
void rd_kafka_event_destroy(rd_kafka_event_t *rkev);
const rd_kafka_message_t *rd_kafka_event_message_next(rd_kafka_event_t *rkev);
size_t rd_kafka_event_message_array(rd_kafka_event_t *rkev, const rd_kafka_message_t **rkmessages, size_t size);
size_t rd_kafka_event_message_count(rd_kafka_event_t *rkev);
const char *rd_kafka_event_config_string(rd_kafka_event_t *rkev);
rd_kafka_resp_err_t rd_kafka_event_error(rd_kafka_event_t *rkev);
const char *rd_kafka_event_error_string(rd_kafka_event_t *rkev);
int rd_kafka_event_error_is_fatal(rd_kafka_event_t *rkev);
void *rd_kafka_event_opaque(rd_kafka_event_t *rkev);
int rd_kafka_event_log(rd_kafka_event_t *rkev, const char **fac, const char **str, int *level);
int rd_kafka_event_debug_contexts(rd_kafka_event_t *rkev, char *dst, size_t dstsize);
const char *rd_kafka_event_stats(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_list_t *rd_kafka_event_topic_partition_list(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_t *rd_kafka_event_topic_partition(rd_kafka_event_t *rkev);
typedef rd_kafka_event_t rd_kafka_CreateTopics_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteTopics_result_t;
typedef rd_kafka_event_t rd_kafka_CreatePartitions_result_t;
typedef rd_kafka_event_t rd_kafka_AlterConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeConfigs_result_t;
const rd_kafka_CreateTopics_result_t *rd_kafka_event_CreateTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteTopics_result_t *rd_kafka_event_DeleteTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_CreatePartitions_result_t *rd_kafka_event_CreatePartitions_result(rd_kafka_event_t *rkev);
const rd_kafka_AlterConfigs_result_t *rd_kafka_event_AlterConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeConfigs_result_t *rd_kafka_event_DescribeConfigs_result(rd_kafka_event_t *rkev);
rd_kafka_event_t *rd_kafka_queue_poll(rd_kafka_queue_t *rkqu, int timeout_ms);
int rd_kafka_queue_poll_callback(rd_kafka_queue_t *rkqu, int timeout_ms);
typedef rd_kafka_resp_err_t (rd_kafka_plugin_f_conf_init_t)(rd_kafka_conf_t *conf, void **plug_opaquep, char *errstr, size_t errstr_size);
typedef rd_kafka_conf_res_t (rd_kafka_interceptor_f_on_conf_set_t)(rd_kafka_conf_t *conf, const char *name, const char *val, char *errstr, size_t errstr_size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_dup_t)(rd_kafka_conf_t *new_conf, const rd_kafka_conf_t *old_conf, size_t filter_cnt, const char **filter, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_destroy_t)(void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_new_t)(rd_kafka_t *rk, const rd_kafka_conf_t *conf, void *ic_opaque, char *errstr, size_t errstr_size);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_destroy_t)(rd_kafka_t *rk, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_send_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_acknowledgement_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_consume_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_commit_t)(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_request_sent_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_start_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_exit_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_set(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_set_t *on_conf_set, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_dup(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_dup_t *on_conf_dup, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_destroy(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_destroy_t *on_conf_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_new(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_new_t *on_new, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_destroy(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_destroy_t *on_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_send(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_send_t *on_send, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_acknowledgement(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_acknowledgement_t *on_acknowledgement, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_consume(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_consume_t *on_consume, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_commit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_commit_t *on_commit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_request_sent(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_request_sent_t *on_request_sent, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_start(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_start_t *on_thread_start, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_exit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_exit_t *on_thread_exit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_topic_result_error(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_error_string(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_name(const rd_kafka_topic_result_t *topicres);
typedef enum rd_kafka_admin_op_t {
  RD_KAFKA_ADMIN_OP_ANY = 0,
  RD_KAFKA_ADMIN_OP_CREATETOPICS,
  RD_KAFKA_ADMIN_OP_DELETETOPICS,
  RD_KAFKA_ADMIN_OP_CREATEPARTITIONS,
  RD_KAFKA_ADMIN_OP_ALTERCONFIGS,
  RD_KAFKA_ADMIN_OP_DESCRIBECONFIGS,
  RD_KAFKA_ADMIN_OP__CNT,
} rd_kafka_admin_op_t;
typedef struct rd_kafka_AdminOptions_s rd_kafka_AdminOptions_t;
rd_kafka_AdminOptions_t *rd_kafka_AdminOptions_new(rd_kafka_t *rk, rd_kafka_admin_op_t for_api);
void rd_kafka_AdminOptions_destroy(rd_kafka_AdminOptions_t *options);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_request_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_operation_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_validate_only(rd_kafka_AdminOptions_t *options, int true_or_false, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_broker(rd_kafka_AdminOptions_t *options, int32_t broker_id, char *errstr, size_t errstr_size);
void rd_kafka_AdminOptions_set_opaque(rd_kafka_AdminOptions_t *options, void *ev_opaque);
typedef struct rd_kafka_NewTopic_s rd_kafka_NewTopic_t;
rd_kafka_NewTopic_t *rd_kafka_NewTopic_new(const char *topic, int num_partitions, int replication_factor, char *errstr, size_t errstr_size);
void rd_kafka_NewTopic_destroy(rd_kafka_NewTopic_t *new_topic);
void rd_kafka_NewTopic_destroy_array(rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_replica_assignment(rd_kafka_NewTopic_t *new_topic, int32_t partition, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_config(rd_kafka_NewTopic_t *new_topic, const char *name, const char *value);
void rd_kafka_CreateTopics(rd_kafka_t *rk, rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreateTopics_result_topics(const rd_kafka_CreateTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteTopic_s rd_kafka_DeleteTopic_t;
rd_kafka_DeleteTopic_t *rd_kafka_DeleteTopic_new(const char *topic);
void rd_kafka_DeleteTopic_destroy(rd_kafka_DeleteTopic_t *del_topic);
void rd_kafka_DeleteTopic_destroy_array(rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt);
void rd_kafka_DeleteTopics(rd_kafka_t *rk, rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_DeleteTopics_result_topics(const rd_kafka_DeleteTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_NewPartitions_s rd_kafka_NewPartitions_t;
rd_kafka_NewPartitions_t *rd_kafka_NewPartitions_new(const char *topic, size_t new_total_cnt, char *errstr, size_t errstr_size);
void rd_kafka_NewPartitions_destroy(rd_kafka_NewPartitions_t *new_parts);
void rd_kafka_NewPartitions_destroy_array(rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt);
rd_kafka_resp_err_t rd_kafka_NewPartitions_set_replica_assignment(rd_kafka_NewPartitions_t *new_parts, int32_t new_partition_idx, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
void rd_kafka_CreatePartitions(rd_kafka_t *rk, rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreatePartitions_result_topics(const rd_kafka_CreatePartitions_result_t *result, size_t *cntp);
typedef enum rd_kafka_ConfigSource_t {
  RD_KAFKA_CONFIG_SOURCE_UNKNOWN_CONFIG = 0,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG = 1,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG = 2,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG = 3,
  RD_KAFKA_CONFIG_SOURCE_STATIC_BROKER_CONFIG = 4,
  RD_KAFKA_CONFIG_SOURCE_DEFAULT_CONFIG = 5,
  RD_KAFKA_CONFIG_SOURCE__CNT,
} rd_kafka_ConfigSource_t;
const char *rd_kafka_ConfigSource_name(rd_kafka_ConfigSource_t confsource);
typedef struct rd_kafka_ConfigEntry_s rd_kafka_ConfigEntry_t;
const char *rd_kafka_ConfigEntry_name(const rd_kafka_ConfigEntry_t *entry);
const char *rd_kafka_ConfigEntry_value(const rd_kafka_ConfigEntry_t *entry);
rd_kafka_ConfigSource_t rd_kafka_ConfigEntry_source(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_read_only(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_default(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_sensitive(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_synonym(const rd_kafka_ConfigEntry_t *entry);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigEntry_synonyms(const rd_kafka_ConfigEntry_t *entry, size_t *cntp);
typedef enum rd_kafka_ResourceType_t {
  RD_KAFKA_RESOURCE_UNKNOWN = 0,
  RD_KAFKA_RESOURCE_ANY = 1,
  RD_KAFKA_RESOURCE_TOPIC = 2,
  RD_KAFKA_RESOURCE_GROUP = 3,
  RD_KAFKA_RESOURCE_BROKER = 4,
  RD_KAFKA_RESOURCE__CNT,
} rd_kafka_ResourceType_t;
const char *rd_kafka_ResourceType_name(rd_kafka_ResourceType_t restype);
typedef struct rd_kafka_ConfigResource_s rd_kafka_ConfigResource_t;
rd_kafka_ConfigResource_t *rd_kafka_ConfigResource_new(rd_kafka_ResourceType_t restype, const char *resname);
void rd_kafka_ConfigResource_destroy(rd_kafka_ConfigResource_t *config);
void rd_kafka_ConfigResource_destroy_array(rd_kafka_ConfigResource_t **config, size_t config_cnt);
rd_kafka_resp_err_t rd_kafka_ConfigResource_set_config(rd_kafka_ConfigResource_t *config, const char *name, const char *value);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigResource_configs(const rd_kafka_ConfigResource_t *config, size_t *cntp);
rd_kafka_ResourceType_t rd_kafka_ConfigResource_type(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_name(const rd_kafka_ConfigResource_t *config);
rd_kafka_resp_err_t rd_kafka_ConfigResource_error(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_error_string(const rd_kafka_ConfigResource_t *config);
void rd_kafka_AlterConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_AlterConfigs_result_resources(const rd_kafka_AlterConfigs_result_t *result, size_t *cntp);
void rd_kafka_DescribeConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_DescribeConfigs_result_resources(const rd_kafka_DescribeConfigs_result_t *result, size_t *cntp);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token(rd_kafka_t *rk, const char *token_value, int64_t md_lifetime_ms, const char *md_principal_name, const char **extensions, size_t extension_size, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token_failure(rd_kafka_t *rk, const char *errstr);
rd_kafka_error_t *rd_kafka_init_transactions(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_begin_transaction(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_send_offsets_to_transaction(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, const rd_kafka_consumer_group_metadata_t *cgmetadata, int timeout_ms);
rd_kafka_error_t *rd_kafka_commit_transaction(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_abort_transaction(rd_kafka_t *rk, int timeout_ms);
typedef struct rd_kafka_mock_cluster_s rd_kafka_mock_cluster_t;
rd_kafka_mock_cluster_t *rd_kafka_mock_cluster_new(rd_kafka_t *rk, int broker_cnt);
void rd_kafka_mock_cluster_destroy(rd_kafka_mock_cluster_t *mcluster);
rd_kafka_t *rd_kafka_mock_cluster_handle(const rd_kafka_mock_cluster_t *mcluster);
rd_kafka_mock_cluster_t *rd_kafka_handle_mock_cluster(const rd_kafka_t *rk);
const char *rd_kafka_mock_cluster_bootstraps(const rd_kafka_mock_cluster_t *mcluster);
void rd_kafka_mock_push_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, ...);
rd_kafka_resp_err_t rd_kafka_mock_broker_push_request_errors(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int16_t ApiKey, size_t cnt, ...);
void rd_kafka_mock_topic_set_error(rd_kafka_mock_cluster_t *mcluster, const char *topic, rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_mock_topic_create(rd_kafka_mock_cluster_t *mcluster, const char *topic, int partition_cnt, int replication_factor);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_leader(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower_wmarks(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int64_t lo, int64_t hi);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_down(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_up(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rtt(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int rtt_ms);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rack(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, const char *rack);
rd_kafka_resp_err_t rd_kafka_mock_coordinator_set(rd_kafka_mock_cluster_t *mcluster, const char *key_type, const char *key, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_set_apiversion(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, int16_t MinVersion, int16_t MaxVersion);
'
rdkafka.h, rdkafka_mock.h

RD_KAFKA_VERSION

public RD_KAFKA_VERSION = 17105663

librdkafka version

Interpreted as hex MM.mm.rr.xx:

  • MM = Major
  • mm = minor
  • rr = revision
  • xx = pre-release id (0xff is the final release)

E.g.: 0x000801ff = 0.8.1

Remarks
This value should only be used during compile time, for runtime checks of version use rd_kafka_version()

RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE

public RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76

Unsupported compression type

RD_KAFKA_RESP_ERR_END_ALL

public RD_KAFKA_RESP_ERR_END_ALL = 89
enum rd_kafka_resp_err_t

RD_KAFKA_ADMIN_OP__CNT

public RD_KAFKA_ADMIN_OP__CNT = 6

Number of ops defined

RD_KAFKA_CDEF

public RD_KAFKA_CDEF = 'typedef long int ssize_t;
typedef struct _IO_FILE FILE;
typedef long int mode_t;
typedef signed int int16_t;
typedef unsigned int uint16_t;
typedef signed int int32_t;
typedef signed long int int64_t;
int rd_kafka_version(void);
const char *rd_kafka_version_str(void);
typedef enum rd_kafka_type_t {
  RD_KAFKA_PRODUCER,
  RD_KAFKA_CONSUMER,
} rd_kafka_type_t;
typedef enum rd_kafka_timestamp_type_t {
  RD_KAFKA_TIMESTAMP_NOT_AVAILABLE,
  RD_KAFKA_TIMESTAMP_CREATE_TIME,
  RD_KAFKA_TIMESTAMP_LOG_APPEND_TIME,
} rd_kafka_timestamp_type_t;
const char *rd_kafka_get_debug_contexts(void);
typedef struct rd_kafka_s rd_kafka_t;
typedef struct rd_kafka_topic_s rd_kafka_topic_t;
typedef struct rd_kafka_conf_s rd_kafka_conf_t;
typedef struct rd_kafka_topic_conf_s rd_kafka_topic_conf_t;
typedef struct rd_kafka_queue_s rd_kafka_queue_t;
typedef struct rd_kafka_op_s rd_kafka_event_t;
typedef struct rd_kafka_topic_result_s rd_kafka_topic_result_t;
typedef struct rd_kafka_consumer_group_metadata_s rd_kafka_consumer_group_metadata_t;
typedef struct rd_kafka_error_s {
  unsigned int code;
  char *errstr;
  unsigned char fatal;
  unsigned char retriable;
  unsigned char txn_requires_abort;
} rd_kafka_error_t;
typedef struct rd_kafka_headers_s rd_kafka_headers_t;
typedef enum {
  RD_KAFKA_RESP_ERR__BEGIN = (- 200),
  RD_KAFKA_RESP_ERR__BAD_MSG = (- 199),
  RD_KAFKA_RESP_ERR__BAD_COMPRESSION = (- 198),
  RD_KAFKA_RESP_ERR__DESTROY = (- 197),
  RD_KAFKA_RESP_ERR__FAIL = (- 196),
  RD_KAFKA_RESP_ERR__TRANSPORT = (- 195),
  RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE = (- 194),
  RD_KAFKA_RESP_ERR__RESOLVE = (- 193),
  RD_KAFKA_RESP_ERR__MSG_TIMED_OUT = (- 192),
  RD_KAFKA_RESP_ERR__PARTITION_EOF = (- 191),
  RD_KAFKA_RESP_ERR__UNKNOWN_PARTITION = (- 190),
  RD_KAFKA_RESP_ERR__FS = (- 189),
  RD_KAFKA_RESP_ERR__UNKNOWN_TOPIC = (- 188),
  RD_KAFKA_RESP_ERR__ALL_BROKERS_DOWN = (- 187),
  RD_KAFKA_RESP_ERR__INVALID_ARG = (- 186),
  RD_KAFKA_RESP_ERR__TIMED_OUT = (- 185),
  RD_KAFKA_RESP_ERR__QUEUE_FULL = (- 184),
  RD_KAFKA_RESP_ERR__ISR_INSUFF = (- 183),
  RD_KAFKA_RESP_ERR__NODE_UPDATE = (- 182),
  RD_KAFKA_RESP_ERR__SSL = (- 181),
  RD_KAFKA_RESP_ERR__WAIT_COORD = (- 180),
  RD_KAFKA_RESP_ERR__UNKNOWN_GROUP = (- 179),
  RD_KAFKA_RESP_ERR__IN_PROGRESS = (- 178),
  RD_KAFKA_RESP_ERR__PREV_IN_PROGRESS = (- 177),
  RD_KAFKA_RESP_ERR__EXISTING_SUBSCRIPTION = (- 176),
  RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS = (- 175),
  RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS = (- 174),
  RD_KAFKA_RESP_ERR__CONFLICT = (- 173),
  RD_KAFKA_RESP_ERR__STATE = (- 172),
  RD_KAFKA_RESP_ERR__UNKNOWN_PROTOCOL = (- 171),
  RD_KAFKA_RESP_ERR__NOT_IMPLEMENTED = (- 170),
  RD_KAFKA_RESP_ERR__AUTHENTICATION = (- 169),
  RD_KAFKA_RESP_ERR__NO_OFFSET = (- 168),
  RD_KAFKA_RESP_ERR__OUTDATED = (- 167),
  RD_KAFKA_RESP_ERR__TIMED_OUT_QUEUE = (- 166),
  RD_KAFKA_RESP_ERR__UNSUPPORTED_FEATURE = (- 165),
  RD_KAFKA_RESP_ERR__WAIT_CACHE = (- 164),
  RD_KAFKA_RESP_ERR__INTR = (- 163),
  RD_KAFKA_RESP_ERR__KEY_SERIALIZATION = (- 162),
  RD_KAFKA_RESP_ERR__VALUE_SERIALIZATION = (- 161),
  RD_KAFKA_RESP_ERR__KEY_DESERIALIZATION = (- 160),
  RD_KAFKA_RESP_ERR__VALUE_DESERIALIZATION = (- 159),
  RD_KAFKA_RESP_ERR__PARTIAL = (- 158),
  RD_KAFKA_RESP_ERR__READ_ONLY = (- 157),
  RD_KAFKA_RESP_ERR__NOENT = (- 156),
  RD_KAFKA_RESP_ERR__UNDERFLOW = (- 155),
  RD_KAFKA_RESP_ERR__INVALID_TYPE = (- 154),
  RD_KAFKA_RESP_ERR__RETRY = (- 153),
  RD_KAFKA_RESP_ERR__PURGE_QUEUE = (- 152),
  RD_KAFKA_RESP_ERR__PURGE_INFLIGHT = (- 151),
  RD_KAFKA_RESP_ERR__FATAL = (- 150),
  RD_KAFKA_RESP_ERR__INCONSISTENT = (- 149),
  RD_KAFKA_RESP_ERR__GAPLESS_GUARANTEE = (- 148),
  RD_KAFKA_RESP_ERR__MAX_POLL_EXCEEDED = (- 147),
  RD_KAFKA_RESP_ERR__UNKNOWN_BROKER = (- 146),
  RD_KAFKA_RESP_ERR__NOT_CONFIGURED = (- 145),
  RD_KAFKA_RESP_ERR__FENCED = (- 144),
  RD_KAFKA_RESP_ERR__APPLICATION = (- 143),
  RD_KAFKA_RESP_ERR__END = (- 100),
  RD_KAFKA_RESP_ERR_UNKNOWN = (- 1),
  RD_KAFKA_RESP_ERR_NO_ERROR = 0,
  RD_KAFKA_RESP_ERR_OFFSET_OUT_OF_RANGE = 1,
  RD_KAFKA_RESP_ERR_INVALID_MSG = 2,
  RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_OR_PART = 3,
  RD_KAFKA_RESP_ERR_INVALID_MSG_SIZE = 4,
  RD_KAFKA_RESP_ERR_LEADER_NOT_AVAILABLE = 5,
  RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION = 6,
  RD_KAFKA_RESP_ERR_REQUEST_TIMED_OUT = 7,
  RD_KAFKA_RESP_ERR_BROKER_NOT_AVAILABLE = 8,
  RD_KAFKA_RESP_ERR_REPLICA_NOT_AVAILABLE = 9,
  RD_KAFKA_RESP_ERR_MSG_SIZE_TOO_LARGE = 10,
  RD_KAFKA_RESP_ERR_STALE_CTRL_EPOCH = 11,
  RD_KAFKA_RESP_ERR_OFFSET_METADATA_TOO_LARGE = 12,
  RD_KAFKA_RESP_ERR_NETWORK_EXCEPTION = 13,
  RD_KAFKA_RESP_ERR_COORDINATOR_LOAD_IN_PROGRESS = 14,
  RD_KAFKA_RESP_ERR_COORDINATOR_NOT_AVAILABLE = 15,
  RD_KAFKA_RESP_ERR_NOT_COORDINATOR = 16,
  RD_KAFKA_RESP_ERR_TOPIC_EXCEPTION = 17,
  RD_KAFKA_RESP_ERR_RECORD_LIST_TOO_LARGE = 18,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS = 19,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS_AFTER_APPEND = 20,
  RD_KAFKA_RESP_ERR_INVALID_REQUIRED_ACKS = 21,
  RD_KAFKA_RESP_ERR_ILLEGAL_GENERATION = 22,
  RD_KAFKA_RESP_ERR_INCONSISTENT_GROUP_PROTOCOL = 23,
  RD_KAFKA_RESP_ERR_INVALID_GROUP_ID = 24,
  RD_KAFKA_RESP_ERR_UNKNOWN_MEMBER_ID = 25,
  RD_KAFKA_RESP_ERR_INVALID_SESSION_TIMEOUT = 26,
  RD_KAFKA_RESP_ERR_REBALANCE_IN_PROGRESS = 27,
  RD_KAFKA_RESP_ERR_INVALID_COMMIT_OFFSET_SIZE = 28,
  RD_KAFKA_RESP_ERR_TOPIC_AUTHORIZATION_FAILED = 29,
  RD_KAFKA_RESP_ERR_GROUP_AUTHORIZATION_FAILED = 30,
  RD_KAFKA_RESP_ERR_CLUSTER_AUTHORIZATION_FAILED = 31,
  RD_KAFKA_RESP_ERR_INVALID_TIMESTAMP = 32,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_SASL_MECHANISM = 33,
  RD_KAFKA_RESP_ERR_ILLEGAL_SASL_STATE = 34,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_VERSION = 35,
  RD_KAFKA_RESP_ERR_TOPIC_ALREADY_EXISTS = 36,
  RD_KAFKA_RESP_ERR_INVALID_PARTITIONS = 37,
  RD_KAFKA_RESP_ERR_INVALID_REPLICATION_FACTOR = 38,
  RD_KAFKA_RESP_ERR_INVALID_REPLICA_ASSIGNMENT = 39,
  RD_KAFKA_RESP_ERR_INVALID_CONFIG = 40,
  RD_KAFKA_RESP_ERR_NOT_CONTROLLER = 41,
  RD_KAFKA_RESP_ERR_INVALID_REQUEST = 42,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_FOR_MESSAGE_FORMAT = 43,
  RD_KAFKA_RESP_ERR_POLICY_VIOLATION = 44,
  RD_KAFKA_RESP_ERR_OUT_OF_ORDER_SEQUENCE_NUMBER = 45,
  RD_KAFKA_RESP_ERR_DUPLICATE_SEQUENCE_NUMBER = 46,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_EPOCH = 47,
  RD_KAFKA_RESP_ERR_INVALID_TXN_STATE = 48,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_ID_MAPPING = 49,
  RD_KAFKA_RESP_ERR_INVALID_TRANSACTION_TIMEOUT = 50,
  RD_KAFKA_RESP_ERR_CONCURRENT_TRANSACTIONS = 51,
  RD_KAFKA_RESP_ERR_TRANSACTION_COORDINATOR_FENCED = 52,
  RD_KAFKA_RESP_ERR_TRANSACTIONAL_ID_AUTHORIZATION_FAILED = 53,
  RD_KAFKA_RESP_ERR_SECURITY_DISABLED = 54,
  RD_KAFKA_RESP_ERR_OPERATION_NOT_ATTEMPTED = 55,
  RD_KAFKA_RESP_ERR_KAFKA_STORAGE_ERROR = 56,
  RD_KAFKA_RESP_ERR_LOG_DIR_NOT_FOUND = 57,
  RD_KAFKA_RESP_ERR_SASL_AUTHENTICATION_FAILED = 58,
  RD_KAFKA_RESP_ERR_UNKNOWN_PRODUCER_ID = 59,
  RD_KAFKA_RESP_ERR_REASSIGNMENT_IN_PROGRESS = 60,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTH_DISABLED = 61,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_NOT_FOUND = 62,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_OWNER_MISMATCH = 63,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_REQUEST_NOT_ALLOWED = 64,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTHORIZATION_FAILED = 65,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_EXPIRED = 66,
  RD_KAFKA_RESP_ERR_INVALID_PRINCIPAL_TYPE = 67,
  RD_KAFKA_RESP_ERR_NON_EMPTY_GROUP = 68,
  RD_KAFKA_RESP_ERR_GROUP_ID_NOT_FOUND = 69,
  RD_KAFKA_RESP_ERR_FETCH_SESSION_ID_NOT_FOUND = 70,
  RD_KAFKA_RESP_ERR_INVALID_FETCH_SESSION_EPOCH = 71,
  RD_KAFKA_RESP_ERR_LISTENER_NOT_FOUND = 72,
  RD_KAFKA_RESP_ERR_TOPIC_DELETION_DISABLED = 73,
  RD_KAFKA_RESP_ERR_FENCED_LEADER_EPOCH = 74,
  RD_KAFKA_RESP_ERR_UNKNOWN_LEADER_EPOCH = 75,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76,
  RD_KAFKA_RESP_ERR_STALE_BROKER_EPOCH = 77,
  RD_KAFKA_RESP_ERR_OFFSET_NOT_AVAILABLE = 78,
  RD_KAFKA_RESP_ERR_MEMBER_ID_REQUIRED = 79,
  RD_KAFKA_RESP_ERR_PREFERRED_LEADER_NOT_AVAILABLE = 80,
  RD_KAFKA_RESP_ERR_GROUP_MAX_SIZE_REACHED = 81,
  RD_KAFKA_RESP_ERR_FENCED_INSTANCE_ID = 82,
  RD_KAFKA_RESP_ERR_ELIGIBLE_LEADERS_NOT_AVAILABLE = 83,
  RD_KAFKA_RESP_ERR_ELECTION_NOT_NEEDED = 84,
  RD_KAFKA_RESP_ERR_NO_REASSIGNMENT_IN_PROGRESS = 85,
  RD_KAFKA_RESP_ERR_GROUP_SUBSCRIBED_TO_TOPIC = 86,
  RD_KAFKA_RESP_ERR_INVALID_RECORD = 87,
  RD_KAFKA_RESP_ERR_UNSTABLE_OFFSET_COMMIT = 88,
  RD_KAFKA_RESP_ERR_END_ALL,
} rd_kafka_resp_err_t;
struct rd_kafka_err_desc {
  rd_kafka_resp_err_t code;
  char *name;
  char *desc;
};
void rd_kafka_get_err_descs(const struct rd_kafka_err_desc **errdescs, size_t *cntp);
const char *rd_kafka_err2str(rd_kafka_resp_err_t err);
const char *rd_kafka_err2name(rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_last_error(void);
rd_kafka_resp_err_t rd_kafka_errno2err(int errnox);
int rd_kafka_errno(void);
rd_kafka_resp_err_t rd_kafka_fatal_error(rd_kafka_t *rk, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_test_fatal_error(rd_kafka_t *rk, rd_kafka_resp_err_t err, const char *reason);
rd_kafka_resp_err_t rd_kafka_error_code(const rd_kafka_error_t *error);
const char *rd_kafka_error_name(const rd_kafka_error_t *error);
const char *rd_kafka_error_string(const rd_kafka_error_t *error);
int rd_kafka_error_is_fatal(const rd_kafka_error_t *error);
int rd_kafka_error_is_retriable(const rd_kafka_error_t *error);
int rd_kafka_error_txn_requires_abort(const rd_kafka_error_t *error);
void rd_kafka_error_destroy(rd_kafka_error_t *error);
rd_kafka_error_t *rd_kafka_error_new(rd_kafka_resp_err_t code, const char *fmt, ...);
typedef struct rd_kafka_topic_partition_s {
  char *topic;
  int32_t partition;
  int64_t offset;
  void *metadata;
  size_t metadata_size;
  void *opaque;
  rd_kafka_resp_err_t err;
  void *_private;
} rd_kafka_topic_partition_t;
void rd_kafka_topic_partition_destroy(rd_kafka_topic_partition_t *rktpar);
typedef struct rd_kafka_topic_partition_list_s {
  int cnt;
  int size;
  rd_kafka_topic_partition_t *elems;
} rd_kafka_topic_partition_list_t;
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_new(int size);
void rd_kafka_topic_partition_list_destroy(rd_kafka_topic_partition_list_t *rkparlist);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_add(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_add_range(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t start, int32_t stop);
int rd_kafka_topic_partition_list_del(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
int rd_kafka_topic_partition_list_del_by_idx(rd_kafka_topic_partition_list_t *rktparlist, int idx);
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_copy(const rd_kafka_topic_partition_list_t *src);
rd_kafka_resp_err_t rd_kafka_topic_partition_list_set_offset(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition, int64_t offset);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_find(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_sort(rd_kafka_topic_partition_list_t *rktparlist, int (*cmp)(const void *a, const void *b, void *cmp_opaque), void *cmp_opaque);
typedef enum rd_kafka_vtype_t {
  RD_KAFKA_VTYPE_END,
  RD_KAFKA_VTYPE_TOPIC,
  RD_KAFKA_VTYPE_RKT,
  RD_KAFKA_VTYPE_PARTITION,
  RD_KAFKA_VTYPE_VALUE,
  RD_KAFKA_VTYPE_KEY,
  RD_KAFKA_VTYPE_OPAQUE,
  RD_KAFKA_VTYPE_MSGFLAGS,
  RD_KAFKA_VTYPE_TIMESTAMP,
  RD_KAFKA_VTYPE_HEADER,
  RD_KAFKA_VTYPE_HEADERS,
} rd_kafka_vtype_t;
typedef struct rd_kafka_vu_s {
  rd_kafka_vtype_t vtype;
  union {
    char *cstr;
    rd_kafka_topic_t *rkt;
    int i;
    int32_t i32;
    int64_t i64;
    struct {
      void *ptr;
      size_t size;
    } mem;
    struct {
      char *name;
      void *val;
      ssize_t size;
    } header;
    rd_kafka_headers_t *headers;
    void *ptr;
    char _pad[64];
  } u;
} rd_kafka_vu_t;
rd_kafka_headers_t *rd_kafka_headers_new(size_t initial_count);
void rd_kafka_headers_destroy(rd_kafka_headers_t *hdrs);
rd_kafka_headers_t *rd_kafka_headers_copy(const rd_kafka_headers_t *src);
rd_kafka_resp_err_t rd_kafka_header_add(rd_kafka_headers_t *hdrs, const char *name, ssize_t name_size, const void *value, ssize_t value_size);
rd_kafka_resp_err_t rd_kafka_header_remove(rd_kafka_headers_t *hdrs, const char *name);
rd_kafka_resp_err_t rd_kafka_header_get_last(const rd_kafka_headers_t *hdrs, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get(const rd_kafka_headers_t *hdrs, size_t idx, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get_all(const rd_kafka_headers_t *hdrs, size_t idx, const char **namep, const void **valuep, size_t *sizep);
typedef struct rd_kafka_message_s {
  rd_kafka_resp_err_t err;
  rd_kafka_topic_t *rkt;
  int32_t partition;
  void *payload;
  size_t len;
  void *key;
  size_t key_len;
  int64_t offset;
  void *_private;
} rd_kafka_message_t;
void rd_kafka_message_destroy(rd_kafka_message_t *rkmessage);
const char *rd_kafka_message_errstr(const rd_kafka_message_t *rkmessage);
int64_t rd_kafka_message_timestamp(const rd_kafka_message_t *rkmessage, rd_kafka_timestamp_type_t *tstype);
int64_t rd_kafka_message_latency(const rd_kafka_message_t *rkmessage);
int32_t rd_kafka_message_broker_id(const rd_kafka_message_t *rkmessage);
rd_kafka_resp_err_t rd_kafka_message_headers(const rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
rd_kafka_resp_err_t rd_kafka_message_detach_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
void rd_kafka_message_set_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t *hdrs);
size_t rd_kafka_header_cnt(const rd_kafka_headers_t *hdrs);
typedef enum {
  RD_KAFKA_MSG_STATUS_NOT_PERSISTED = 0,
  RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED = 1,
  RD_KAFKA_MSG_STATUS_PERSISTED = 2,
} rd_kafka_msg_status_t;
rd_kafka_msg_status_t rd_kafka_message_status(const rd_kafka_message_t *rkmessage);
typedef enum {
  RD_KAFKA_CONF_UNKNOWN = (- 2),
  RD_KAFKA_CONF_INVALID = (- 1),
  RD_KAFKA_CONF_OK = 0,
} rd_kafka_conf_res_t;
rd_kafka_conf_t *rd_kafka_conf_new(void);
void rd_kafka_conf_destroy(rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup(const rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup_filter(const rd_kafka_conf_t *conf, size_t filter_cnt, const char **filter);
const rd_kafka_conf_t *rd_kafka_conf(rd_kafka_t *rk);
rd_kafka_conf_res_t rd_kafka_conf_set(rd_kafka_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_events(rd_kafka_conf_t *conf, int events);
void rd_kafka_conf_set_background_event_cb(rd_kafka_conf_t *conf, void (*event_cb)(rd_kafka_t *rk, rd_kafka_event_t *rkev, void *opaque));
void rd_kafka_conf_set_dr_cb(rd_kafka_conf_t *conf, void (*dr_cb)(rd_kafka_t *rk, void *payload, size_t len, rd_kafka_resp_err_t err, void *opaque, void *msg_opaque));
void rd_kafka_conf_set_dr_msg_cb(rd_kafka_conf_t *conf, void (*dr_msg_cb)(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_consume_cb(rd_kafka_conf_t *conf, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_rebalance_cb(rd_kafka_conf_t *conf, void (*rebalance_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *partitions, void *opaque));
void rd_kafka_conf_set_offset_commit_cb(rd_kafka_conf_t *conf, void (*offset_commit_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *opaque));
void rd_kafka_conf_set_error_cb(rd_kafka_conf_t *conf, void (*error_cb)(rd_kafka_t *rk, int err, const char *reason, void *opaque));
void rd_kafka_conf_set_throttle_cb(rd_kafka_conf_t *conf, void (*throttle_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int throttle_time_ms, void *opaque));
void rd_kafka_conf_set_log_cb(rd_kafka_conf_t *conf, void (*log_cb)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_conf_set_stats_cb(rd_kafka_conf_t *conf, int (*stats_cb)(rd_kafka_t *rk, char *json, size_t json_len, void *opaque));
void rd_kafka_conf_set_oauthbearer_token_refresh_cb(rd_kafka_conf_t *conf, void (*oauthbearer_token_refresh_cb)(rd_kafka_t *rk, const char *oauthbearer_config, void *opaque));
void rd_kafka_conf_set_socket_cb(rd_kafka_conf_t *conf, int (*socket_cb)(int domain, int type, int protocol, void *opaque));
void rd_kafka_conf_set_connect_cb(rd_kafka_conf_t *conf, int (*connect_cb)(int sockfd, const struct sockaddr *addr, int addrlen, const char *id, void *opaque));
void rd_kafka_conf_set_closesocket_cb(rd_kafka_conf_t *conf, int (*closesocket_cb)(int sockfd, void *opaque));
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert_verify_cb(rd_kafka_conf_t *conf, int (*ssl_cert_verify_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int *x509_error, int depth, const char *buf, size_t size, char *errstr, size_t errstr_size, void *opaque));
typedef enum rd_kafka_cert_type_t {
  RD_KAFKA_CERT_PUBLIC_KEY,
  RD_KAFKA_CERT_PRIVATE_KEY,
  RD_KAFKA_CERT_CA,
  RD_KAFKA_CERT__CNT,
} rd_kafka_cert_type_t;
typedef enum rd_kafka_cert_enc_t {
  RD_KAFKA_CERT_ENC_PKCS12,
  RD_KAFKA_CERT_ENC_DER,
  RD_KAFKA_CERT_ENC_PEM,
  RD_KAFKA_CERT_ENC__CNT,
} rd_kafka_cert_enc_t;
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert(rd_kafka_conf_t *conf, rd_kafka_cert_type_t cert_type, rd_kafka_cert_enc_t cert_enc, const void *buffer, size_t size, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_opaque(rd_kafka_conf_t *conf, void *opaque);
void *rd_kafka_opaque(const rd_kafka_t *rk);
void rd_kafka_conf_set_default_topic_conf(rd_kafka_conf_t *conf, rd_kafka_topic_conf_t *tconf);
rd_kafka_conf_res_t rd_kafka_conf_get(const rd_kafka_conf_t *conf, const char *name, char *dest, size_t *dest_size);
rd_kafka_conf_res_t rd_kafka_topic_conf_get(const rd_kafka_topic_conf_t *conf, const char *name, char *dest, size_t *dest_size);
const char **rd_kafka_conf_dump(rd_kafka_conf_t *conf, size_t *cntp);
const char **rd_kafka_topic_conf_dump(rd_kafka_topic_conf_t *conf, size_t *cntp);
void rd_kafka_conf_dump_free(const char **arr, size_t cnt);
void rd_kafka_conf_properties_show(FILE *fp);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_new(void);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_dup(const rd_kafka_topic_conf_t *conf);
rd_kafka_topic_conf_t *rd_kafka_default_topic_conf_dup(rd_kafka_t *rk);
void rd_kafka_topic_conf_destroy(rd_kafka_topic_conf_t *topic_conf);
rd_kafka_conf_res_t rd_kafka_topic_conf_set(rd_kafka_topic_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_topic_conf_set_opaque(rd_kafka_topic_conf_t *conf, void *rkt_opaque);
void rd_kafka_topic_conf_set_partitioner_cb(rd_kafka_topic_conf_t *topic_conf, int32_t (*partitioner)(const rd_kafka_topic_t *rkt, const void *keydata, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque));
void rd_kafka_topic_conf_set_msg_order_cmp(rd_kafka_topic_conf_t *topic_conf, int (*msg_order_cmp)(const rd_kafka_message_t *a, const rd_kafka_message_t *b));
int rd_kafka_topic_partition_available(const rd_kafka_topic_t *rkt, int32_t partition);
int32_t rd_kafka_msg_partitioner_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
rd_kafka_t *rd_kafka_new(rd_kafka_type_t type, rd_kafka_conf_t *conf, char *errstr, size_t errstr_size);
void rd_kafka_destroy(rd_kafka_t *rk);
void rd_kafka_destroy_flags(rd_kafka_t *rk, int flags);
const char *rd_kafka_name(const rd_kafka_t *rk);
rd_kafka_type_t rd_kafka_type(const rd_kafka_t *rk);
char *rd_kafka_memberid(const rd_kafka_t *rk);
char *rd_kafka_clusterid(rd_kafka_t *rk, int timeout_ms);
int32_t rd_kafka_controllerid(rd_kafka_t *rk, int timeout_ms);
rd_kafka_topic_t *rd_kafka_topic_new(rd_kafka_t *rk, const char *topic, rd_kafka_topic_conf_t *conf);
void rd_kafka_topic_destroy(rd_kafka_topic_t *rkt);
const char *rd_kafka_topic_name(const rd_kafka_topic_t *rkt);
void *rd_kafka_topic_opaque(const rd_kafka_topic_t *rkt);
int rd_kafka_poll(rd_kafka_t *rk, int timeout_ms);
void rd_kafka_yield(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_pause_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_resume_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_query_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_get_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high);
rd_kafka_resp_err_t rd_kafka_offsets_for_times(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets, int timeout_ms);
void rd_kafka_mem_free(rd_kafka_t *rk, void *ptr);
rd_kafka_queue_t *rd_kafka_queue_new(rd_kafka_t *rk);
void rd_kafka_queue_destroy(rd_kafka_queue_t *rkqu);
rd_kafka_queue_t *rd_kafka_queue_get_main(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_consumer(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_partition(rd_kafka_t *rk, const char *topic, int32_t partition);
rd_kafka_queue_t *rd_kafka_queue_get_background(rd_kafka_t *rk);
void rd_kafka_queue_forward(rd_kafka_queue_t *src, rd_kafka_queue_t *dst);
rd_kafka_resp_err_t rd_kafka_set_log_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu);
size_t rd_kafka_queue_length(rd_kafka_queue_t *rkqu);
void rd_kafka_queue_io_event_enable(rd_kafka_queue_t *rkqu, int fd, const void *payload, size_t size);
void rd_kafka_queue_cb_event_enable(rd_kafka_queue_t *rkqu, void (*event_cb)(rd_kafka_t *rk, void *qev_opaque), void *qev_opaque);
int rd_kafka_consume_start(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
int rd_kafka_consume_start_queue(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, rd_kafka_queue_t *rkqu);
int rd_kafka_consume_stop(rd_kafka_topic_t *rkt, int32_t partition);
rd_kafka_resp_err_t rd_kafka_seek(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, int timeout_ms);
rd_kafka_message_t *rd_kafka_consume(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms);
ssize_t rd_kafka_consume_batch(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_message_t *rd_kafka_consume_queue(rd_kafka_queue_t *rkqu, int timeout_ms);
ssize_t rd_kafka_consume_batch_queue(rd_kafka_queue_t *rkqu, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback_queue(rd_kafka_queue_t *rkqu, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_offset_store(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
rd_kafka_resp_err_t rd_kafka_offsets_store(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets);
rd_kafka_resp_err_t rd_kafka_subscribe(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *topics);
rd_kafka_resp_err_t rd_kafka_unsubscribe(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_subscription(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **topics);
rd_kafka_message_t *rd_kafka_consumer_poll(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_consumer_close(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_assignment(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **partitions);
rd_kafka_resp_err_t rd_kafka_commit(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, int async);
rd_kafka_resp_err_t rd_kafka_commit_message(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, int async);
rd_kafka_resp_err_t rd_kafka_commit_queue(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_queue_t *rkqu, void (*cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_committed(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_position(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata(rd_kafka_t *rk);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new(const char *group_id);
void rd_kafka_consumer_group_metadata_destroy(rd_kafka_consumer_group_metadata_t *);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_write(const rd_kafka_consumer_group_metadata_t *cgmd, void **bufferp, size_t *sizep);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_read(rd_kafka_consumer_group_metadata_t **cgmdp, const void *buffer, size_t size);
int rd_kafka_produce(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, void *payload, size_t len, const void *key, size_t keylen, void *msg_opaque);
rd_kafka_resp_err_t rd_kafka_producev(rd_kafka_t *rk, ...);
rd_kafka_error_t *rd_kafka_produceva(rd_kafka_t *rk, const rd_kafka_vu_t *vus, size_t cnt);
int rd_kafka_produce_batch(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, rd_kafka_message_t *rkmessages, int message_cnt);
rd_kafka_resp_err_t rd_kafka_flush(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_purge(rd_kafka_t *rk, int purge_flags);
typedef struct rd_kafka_metadata_broker {
  int32_t id;
  char *host;
  int port;
} rd_kafka_metadata_broker_t;
typedef struct rd_kafka_metadata_partition {
  int32_t id;
  rd_kafka_resp_err_t err;
  int32_t leader;
  int replica_cnt;
  int32_t *replicas;
  int isr_cnt;
  int32_t *isrs;
} rd_kafka_metadata_partition_t;
typedef struct rd_kafka_metadata_topic {
  char *topic;
  int partition_cnt;
  struct rd_kafka_metadata_partition *partitions;
  rd_kafka_resp_err_t err;
} rd_kafka_metadata_topic_t;
typedef struct rd_kafka_metadata {
  int broker_cnt;
  struct rd_kafka_metadata_broker *brokers;
  int topic_cnt;
  struct rd_kafka_metadata_topic *topics;
  int32_t orig_broker_id;
  char *orig_broker_name;
} rd_kafka_metadata_t;
rd_kafka_resp_err_t rd_kafka_metadata(rd_kafka_t *rk, int all_topics, rd_kafka_topic_t *only_rkt, const struct rd_kafka_metadata **metadatap, int timeout_ms);
void rd_kafka_metadata_destroy(const struct rd_kafka_metadata *metadata);
struct rd_kafka_group_member_info {
  char *member_id;
  char *client_id;
  char *client_host;
  void *member_metadata;
  int member_metadata_size;
  void *member_assignment;
  int member_assignment_size;
};
struct rd_kafka_group_info {
  struct rd_kafka_metadata_broker broker;
  char *group;
  rd_kafka_resp_err_t err;
  char *state;
  char *protocol_type;
  char *protocol;
  struct rd_kafka_group_member_info *members;
  int member_cnt;
};
struct rd_kafka_group_list {
  struct rd_kafka_group_info *groups;
  int group_cnt;
};
rd_kafka_resp_err_t rd_kafka_list_groups(rd_kafka_t *rk, const char *group, const struct rd_kafka_group_list **grplistp, int timeout_ms);
void rd_kafka_group_list_destroy(const struct rd_kafka_group_list *grplist);
int rd_kafka_brokers_add(rd_kafka_t *rk, const char *brokerlist);
void rd_kafka_set_logger(rd_kafka_t *rk, void (*func)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_set_log_level(rd_kafka_t *rk, int level);
void rd_kafka_log_print(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
void rd_kafka_log_syslog(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
int rd_kafka_outq_len(rd_kafka_t *rk);
void rd_kafka_dump(FILE *fp, rd_kafka_t *rk);
int rd_kafka_thread_cnt(void);
typedef enum rd_kafka_thread_type_t {
  RD_KAFKA_THREAD_MAIN,
  RD_KAFKA_THREAD_BACKGROUND,
  RD_KAFKA_THREAD_BROKER,
} rd_kafka_thread_type_t;
int rd_kafka_wait_destroyed(int timeout_ms);
int rd_kafka_unittest(void);
rd_kafka_resp_err_t rd_kafka_poll_set_consumer(rd_kafka_t *rk);
typedef int rd_kafka_event_type_t;
rd_kafka_event_type_t rd_kafka_event_type(const rd_kafka_event_t *rkev);
const char *rd_kafka_event_name(const rd_kafka_event_t *rkev);
void rd_kafka_event_destroy(rd_kafka_event_t *rkev);
const rd_kafka_message_t *rd_kafka_event_message_next(rd_kafka_event_t *rkev);
size_t rd_kafka_event_message_array(rd_kafka_event_t *rkev, const rd_kafka_message_t **rkmessages, size_t size);
size_t rd_kafka_event_message_count(rd_kafka_event_t *rkev);
const char *rd_kafka_event_config_string(rd_kafka_event_t *rkev);
rd_kafka_resp_err_t rd_kafka_event_error(rd_kafka_event_t *rkev);
const char *rd_kafka_event_error_string(rd_kafka_event_t *rkev);
int rd_kafka_event_error_is_fatal(rd_kafka_event_t *rkev);
void *rd_kafka_event_opaque(rd_kafka_event_t *rkev);
int rd_kafka_event_log(rd_kafka_event_t *rkev, const char **fac, const char **str, int *level);
int rd_kafka_event_debug_contexts(rd_kafka_event_t *rkev, char *dst, size_t dstsize);
const char *rd_kafka_event_stats(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_list_t *rd_kafka_event_topic_partition_list(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_t *rd_kafka_event_topic_partition(rd_kafka_event_t *rkev);
typedef rd_kafka_event_t rd_kafka_CreateTopics_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteTopics_result_t;
typedef rd_kafka_event_t rd_kafka_CreatePartitions_result_t;
typedef rd_kafka_event_t rd_kafka_AlterConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeConfigs_result_t;
const rd_kafka_CreateTopics_result_t *rd_kafka_event_CreateTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteTopics_result_t *rd_kafka_event_DeleteTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_CreatePartitions_result_t *rd_kafka_event_CreatePartitions_result(rd_kafka_event_t *rkev);
const rd_kafka_AlterConfigs_result_t *rd_kafka_event_AlterConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeConfigs_result_t *rd_kafka_event_DescribeConfigs_result(rd_kafka_event_t *rkev);
rd_kafka_event_t *rd_kafka_queue_poll(rd_kafka_queue_t *rkqu, int timeout_ms);
int rd_kafka_queue_poll_callback(rd_kafka_queue_t *rkqu, int timeout_ms);
typedef rd_kafka_resp_err_t (rd_kafka_plugin_f_conf_init_t)(rd_kafka_conf_t *conf, void **plug_opaquep, char *errstr, size_t errstr_size);
typedef rd_kafka_conf_res_t (rd_kafka_interceptor_f_on_conf_set_t)(rd_kafka_conf_t *conf, const char *name, const char *val, char *errstr, size_t errstr_size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_dup_t)(rd_kafka_conf_t *new_conf, const rd_kafka_conf_t *old_conf, size_t filter_cnt, const char **filter, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_destroy_t)(void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_new_t)(rd_kafka_t *rk, const rd_kafka_conf_t *conf, void *ic_opaque, char *errstr, size_t errstr_size);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_destroy_t)(rd_kafka_t *rk, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_send_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_acknowledgement_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_consume_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_commit_t)(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_request_sent_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_start_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_exit_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_set(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_set_t *on_conf_set, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_dup(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_dup_t *on_conf_dup, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_destroy(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_destroy_t *on_conf_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_new(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_new_t *on_new, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_destroy(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_destroy_t *on_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_send(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_send_t *on_send, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_acknowledgement(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_acknowledgement_t *on_acknowledgement, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_consume(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_consume_t *on_consume, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_commit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_commit_t *on_commit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_request_sent(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_request_sent_t *on_request_sent, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_start(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_start_t *on_thread_start, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_exit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_exit_t *on_thread_exit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_topic_result_error(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_error_string(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_name(const rd_kafka_topic_result_t *topicres);
typedef enum rd_kafka_admin_op_t {
  RD_KAFKA_ADMIN_OP_ANY = 0,
  RD_KAFKA_ADMIN_OP_CREATETOPICS,
  RD_KAFKA_ADMIN_OP_DELETETOPICS,
  RD_KAFKA_ADMIN_OP_CREATEPARTITIONS,
  RD_KAFKA_ADMIN_OP_ALTERCONFIGS,
  RD_KAFKA_ADMIN_OP_DESCRIBECONFIGS,
  RD_KAFKA_ADMIN_OP__CNT,
} rd_kafka_admin_op_t;
typedef struct rd_kafka_AdminOptions_s rd_kafka_AdminOptions_t;
rd_kafka_AdminOptions_t *rd_kafka_AdminOptions_new(rd_kafka_t *rk, rd_kafka_admin_op_t for_api);
void rd_kafka_AdminOptions_destroy(rd_kafka_AdminOptions_t *options);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_request_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_operation_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_validate_only(rd_kafka_AdminOptions_t *options, int true_or_false, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_broker(rd_kafka_AdminOptions_t *options, int32_t broker_id, char *errstr, size_t errstr_size);
void rd_kafka_AdminOptions_set_opaque(rd_kafka_AdminOptions_t *options, void *ev_opaque);
typedef struct rd_kafka_NewTopic_s rd_kafka_NewTopic_t;
rd_kafka_NewTopic_t *rd_kafka_NewTopic_new(const char *topic, int num_partitions, int replication_factor, char *errstr, size_t errstr_size);
void rd_kafka_NewTopic_destroy(rd_kafka_NewTopic_t *new_topic);
void rd_kafka_NewTopic_destroy_array(rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_replica_assignment(rd_kafka_NewTopic_t *new_topic, int32_t partition, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_config(rd_kafka_NewTopic_t *new_topic, const char *name, const char *value);
void rd_kafka_CreateTopics(rd_kafka_t *rk, rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreateTopics_result_topics(const rd_kafka_CreateTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteTopic_s rd_kafka_DeleteTopic_t;
rd_kafka_DeleteTopic_t *rd_kafka_DeleteTopic_new(const char *topic);
void rd_kafka_DeleteTopic_destroy(rd_kafka_DeleteTopic_t *del_topic);
void rd_kafka_DeleteTopic_destroy_array(rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt);
void rd_kafka_DeleteTopics(rd_kafka_t *rk, rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_DeleteTopics_result_topics(const rd_kafka_DeleteTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_NewPartitions_s rd_kafka_NewPartitions_t;
rd_kafka_NewPartitions_t *rd_kafka_NewPartitions_new(const char *topic, size_t new_total_cnt, char *errstr, size_t errstr_size);
void rd_kafka_NewPartitions_destroy(rd_kafka_NewPartitions_t *new_parts);
void rd_kafka_NewPartitions_destroy_array(rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt);
rd_kafka_resp_err_t rd_kafka_NewPartitions_set_replica_assignment(rd_kafka_NewPartitions_t *new_parts, int32_t new_partition_idx, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
void rd_kafka_CreatePartitions(rd_kafka_t *rk, rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreatePartitions_result_topics(const rd_kafka_CreatePartitions_result_t *result, size_t *cntp);
typedef enum rd_kafka_ConfigSource_t {
  RD_KAFKA_CONFIG_SOURCE_UNKNOWN_CONFIG = 0,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG = 1,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG = 2,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG = 3,
  RD_KAFKA_CONFIG_SOURCE_STATIC_BROKER_CONFIG = 4,
  RD_KAFKA_CONFIG_SOURCE_DEFAULT_CONFIG = 5,
  RD_KAFKA_CONFIG_SOURCE__CNT,
} rd_kafka_ConfigSource_t;
const char *rd_kafka_ConfigSource_name(rd_kafka_ConfigSource_t confsource);
typedef struct rd_kafka_ConfigEntry_s rd_kafka_ConfigEntry_t;
const char *rd_kafka_ConfigEntry_name(const rd_kafka_ConfigEntry_t *entry);
const char *rd_kafka_ConfigEntry_value(const rd_kafka_ConfigEntry_t *entry);
rd_kafka_ConfigSource_t rd_kafka_ConfigEntry_source(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_read_only(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_default(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_sensitive(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_synonym(const rd_kafka_ConfigEntry_t *entry);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigEntry_synonyms(const rd_kafka_ConfigEntry_t *entry, size_t *cntp);
typedef enum rd_kafka_ResourceType_t {
  RD_KAFKA_RESOURCE_UNKNOWN = 0,
  RD_KAFKA_RESOURCE_ANY = 1,
  RD_KAFKA_RESOURCE_TOPIC = 2,
  RD_KAFKA_RESOURCE_GROUP = 3,
  RD_KAFKA_RESOURCE_BROKER = 4,
  RD_KAFKA_RESOURCE__CNT,
} rd_kafka_ResourceType_t;
const char *rd_kafka_ResourceType_name(rd_kafka_ResourceType_t restype);
typedef struct rd_kafka_ConfigResource_s rd_kafka_ConfigResource_t;
rd_kafka_ConfigResource_t *rd_kafka_ConfigResource_new(rd_kafka_ResourceType_t restype, const char *resname);
void rd_kafka_ConfigResource_destroy(rd_kafka_ConfigResource_t *config);
void rd_kafka_ConfigResource_destroy_array(rd_kafka_ConfigResource_t **config, size_t config_cnt);
rd_kafka_resp_err_t rd_kafka_ConfigResource_set_config(rd_kafka_ConfigResource_t *config, const char *name, const char *value);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigResource_configs(const rd_kafka_ConfigResource_t *config, size_t *cntp);
rd_kafka_ResourceType_t rd_kafka_ConfigResource_type(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_name(const rd_kafka_ConfigResource_t *config);
rd_kafka_resp_err_t rd_kafka_ConfigResource_error(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_error_string(const rd_kafka_ConfigResource_t *config);
void rd_kafka_AlterConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_AlterConfigs_result_resources(const rd_kafka_AlterConfigs_result_t *result, size_t *cntp);
void rd_kafka_DescribeConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_DescribeConfigs_result_resources(const rd_kafka_DescribeConfigs_result_t *result, size_t *cntp);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token(rd_kafka_t *rk, const char *token_value, int64_t md_lifetime_ms, const char *md_principal_name, const char **extensions, size_t extension_size, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token_failure(rd_kafka_t *rk, const char *errstr);
rd_kafka_error_t *rd_kafka_init_transactions(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_begin_transaction(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_send_offsets_to_transaction(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, const rd_kafka_consumer_group_metadata_t *cgmetadata, int timeout_ms);
rd_kafka_error_t *rd_kafka_commit_transaction(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_abort_transaction(rd_kafka_t *rk, int timeout_ms);
typedef struct rd_kafka_mock_cluster_s rd_kafka_mock_cluster_t;
rd_kafka_mock_cluster_t *rd_kafka_mock_cluster_new(rd_kafka_t *rk, int broker_cnt);
void rd_kafka_mock_cluster_destroy(rd_kafka_mock_cluster_t *mcluster);
rd_kafka_t *rd_kafka_mock_cluster_handle(const rd_kafka_mock_cluster_t *mcluster);
rd_kafka_mock_cluster_t *rd_kafka_handle_mock_cluster(const rd_kafka_t *rk);
const char *rd_kafka_mock_cluster_bootstraps(const rd_kafka_mock_cluster_t *mcluster);
void rd_kafka_mock_push_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, ...);
rd_kafka_resp_err_t rd_kafka_mock_broker_push_request_errors(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int16_t ApiKey, size_t cnt, ...);
void rd_kafka_mock_topic_set_error(rd_kafka_mock_cluster_t *mcluster, const char *topic, rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_mock_topic_create(rd_kafka_mock_cluster_t *mcluster, const char *topic, int partition_cnt, int replication_factor);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_leader(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower_wmarks(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int64_t lo, int64_t hi);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_down(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_up(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rtt(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int rtt_ms);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rack(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, const char *rack);
rd_kafka_resp_err_t rd_kafka_mock_coordinator_set(rd_kafka_mock_cluster_t *mcluster, const char *key_type, const char *key, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_set_apiversion(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, int16_t MinVersion, int16_t MaxVersion);
'
rdkafka.h, rdkafka_mock.h

RD_KAFKA_VERSION

public RD_KAFKA_VERSION = 17105919

librdkafka version

Interpreted as hex MM.mm.rr.xx:

  • MM = Major
  • mm = minor
  • rr = revision
  • xx = pre-release id (0xff is the final release)

E.g.: 0x000801ff = 0.8.1

Remarks
This value should only be used during compile time, for runtime checks of version use rd_kafka_version()

RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE

public RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76

Unsupported compression type

RD_KAFKA_RESP_ERR_END_ALL

public RD_KAFKA_RESP_ERR_END_ALL = 89
enum rd_kafka_resp_err_t

RD_KAFKA_ADMIN_OP__CNT

public RD_KAFKA_ADMIN_OP__CNT = 6

Number of ops defined

RD_KAFKA_CDEF

public RD_KAFKA_CDEF = 'typedef long int ssize_t;
typedef struct _IO_FILE FILE;
typedef long int mode_t;
typedef signed int int16_t;
typedef unsigned int uint16_t;
typedef signed int int32_t;
typedef signed long int int64_t;
int rd_kafka_version(void);
const char *rd_kafka_version_str(void);
typedef enum rd_kafka_type_t {
  RD_KAFKA_PRODUCER,
  RD_KAFKA_CONSUMER,
} rd_kafka_type_t;
typedef enum rd_kafka_timestamp_type_t {
  RD_KAFKA_TIMESTAMP_NOT_AVAILABLE,
  RD_KAFKA_TIMESTAMP_CREATE_TIME,
  RD_KAFKA_TIMESTAMP_LOG_APPEND_TIME,
} rd_kafka_timestamp_type_t;
const char *rd_kafka_get_debug_contexts(void);
typedef struct rd_kafka_s rd_kafka_t;
typedef struct rd_kafka_topic_s rd_kafka_topic_t;
typedef struct rd_kafka_conf_s rd_kafka_conf_t;
typedef struct rd_kafka_topic_conf_s rd_kafka_topic_conf_t;
typedef struct rd_kafka_queue_s rd_kafka_queue_t;
typedef struct rd_kafka_op_s rd_kafka_event_t;
typedef struct rd_kafka_topic_result_s rd_kafka_topic_result_t;
typedef struct rd_kafka_consumer_group_metadata_s rd_kafka_consumer_group_metadata_t;
typedef struct rd_kafka_error_s {
  unsigned int code;
  char *errstr;
  unsigned char fatal;
  unsigned char retriable;
  unsigned char txn_requires_abort;
} rd_kafka_error_t;
typedef struct rd_kafka_headers_s rd_kafka_headers_t;
typedef enum {
  RD_KAFKA_RESP_ERR__BEGIN = (- 200),
  RD_KAFKA_RESP_ERR__BAD_MSG = (- 199),
  RD_KAFKA_RESP_ERR__BAD_COMPRESSION = (- 198),
  RD_KAFKA_RESP_ERR__DESTROY = (- 197),
  RD_KAFKA_RESP_ERR__FAIL = (- 196),
  RD_KAFKA_RESP_ERR__TRANSPORT = (- 195),
  RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE = (- 194),
  RD_KAFKA_RESP_ERR__RESOLVE = (- 193),
  RD_KAFKA_RESP_ERR__MSG_TIMED_OUT = (- 192),
  RD_KAFKA_RESP_ERR__PARTITION_EOF = (- 191),
  RD_KAFKA_RESP_ERR__UNKNOWN_PARTITION = (- 190),
  RD_KAFKA_RESP_ERR__FS = (- 189),
  RD_KAFKA_RESP_ERR__UNKNOWN_TOPIC = (- 188),
  RD_KAFKA_RESP_ERR__ALL_BROKERS_DOWN = (- 187),
  RD_KAFKA_RESP_ERR__INVALID_ARG = (- 186),
  RD_KAFKA_RESP_ERR__TIMED_OUT = (- 185),
  RD_KAFKA_RESP_ERR__QUEUE_FULL = (- 184),
  RD_KAFKA_RESP_ERR__ISR_INSUFF = (- 183),
  RD_KAFKA_RESP_ERR__NODE_UPDATE = (- 182),
  RD_KAFKA_RESP_ERR__SSL = (- 181),
  RD_KAFKA_RESP_ERR__WAIT_COORD = (- 180),
  RD_KAFKA_RESP_ERR__UNKNOWN_GROUP = (- 179),
  RD_KAFKA_RESP_ERR__IN_PROGRESS = (- 178),
  RD_KAFKA_RESP_ERR__PREV_IN_PROGRESS = (- 177),
  RD_KAFKA_RESP_ERR__EXISTING_SUBSCRIPTION = (- 176),
  RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS = (- 175),
  RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS = (- 174),
  RD_KAFKA_RESP_ERR__CONFLICT = (- 173),
  RD_KAFKA_RESP_ERR__STATE = (- 172),
  RD_KAFKA_RESP_ERR__UNKNOWN_PROTOCOL = (- 171),
  RD_KAFKA_RESP_ERR__NOT_IMPLEMENTED = (- 170),
  RD_KAFKA_RESP_ERR__AUTHENTICATION = (- 169),
  RD_KAFKA_RESP_ERR__NO_OFFSET = (- 168),
  RD_KAFKA_RESP_ERR__OUTDATED = (- 167),
  RD_KAFKA_RESP_ERR__TIMED_OUT_QUEUE = (- 166),
  RD_KAFKA_RESP_ERR__UNSUPPORTED_FEATURE = (- 165),
  RD_KAFKA_RESP_ERR__WAIT_CACHE = (- 164),
  RD_KAFKA_RESP_ERR__INTR = (- 163),
  RD_KAFKA_RESP_ERR__KEY_SERIALIZATION = (- 162),
  RD_KAFKA_RESP_ERR__VALUE_SERIALIZATION = (- 161),
  RD_KAFKA_RESP_ERR__KEY_DESERIALIZATION = (- 160),
  RD_KAFKA_RESP_ERR__VALUE_DESERIALIZATION = (- 159),
  RD_KAFKA_RESP_ERR__PARTIAL = (- 158),
  RD_KAFKA_RESP_ERR__READ_ONLY = (- 157),
  RD_KAFKA_RESP_ERR__NOENT = (- 156),
  RD_KAFKA_RESP_ERR__UNDERFLOW = (- 155),
  RD_KAFKA_RESP_ERR__INVALID_TYPE = (- 154),
  RD_KAFKA_RESP_ERR__RETRY = (- 153),
  RD_KAFKA_RESP_ERR__PURGE_QUEUE = (- 152),
  RD_KAFKA_RESP_ERR__PURGE_INFLIGHT = (- 151),
  RD_KAFKA_RESP_ERR__FATAL = (- 150),
  RD_KAFKA_RESP_ERR__INCONSISTENT = (- 149),
  RD_KAFKA_RESP_ERR__GAPLESS_GUARANTEE = (- 148),
  RD_KAFKA_RESP_ERR__MAX_POLL_EXCEEDED = (- 147),
  RD_KAFKA_RESP_ERR__UNKNOWN_BROKER = (- 146),
  RD_KAFKA_RESP_ERR__NOT_CONFIGURED = (- 145),
  RD_KAFKA_RESP_ERR__FENCED = (- 144),
  RD_KAFKA_RESP_ERR__APPLICATION = (- 143),
  RD_KAFKA_RESP_ERR__END = (- 100),
  RD_KAFKA_RESP_ERR_UNKNOWN = (- 1),
  RD_KAFKA_RESP_ERR_NO_ERROR = 0,
  RD_KAFKA_RESP_ERR_OFFSET_OUT_OF_RANGE = 1,
  RD_KAFKA_RESP_ERR_INVALID_MSG = 2,
  RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_OR_PART = 3,
  RD_KAFKA_RESP_ERR_INVALID_MSG_SIZE = 4,
  RD_KAFKA_RESP_ERR_LEADER_NOT_AVAILABLE = 5,
  RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION = 6,
  RD_KAFKA_RESP_ERR_REQUEST_TIMED_OUT = 7,
  RD_KAFKA_RESP_ERR_BROKER_NOT_AVAILABLE = 8,
  RD_KAFKA_RESP_ERR_REPLICA_NOT_AVAILABLE = 9,
  RD_KAFKA_RESP_ERR_MSG_SIZE_TOO_LARGE = 10,
  RD_KAFKA_RESP_ERR_STALE_CTRL_EPOCH = 11,
  RD_KAFKA_RESP_ERR_OFFSET_METADATA_TOO_LARGE = 12,
  RD_KAFKA_RESP_ERR_NETWORK_EXCEPTION = 13,
  RD_KAFKA_RESP_ERR_COORDINATOR_LOAD_IN_PROGRESS = 14,
  RD_KAFKA_RESP_ERR_COORDINATOR_NOT_AVAILABLE = 15,
  RD_KAFKA_RESP_ERR_NOT_COORDINATOR = 16,
  RD_KAFKA_RESP_ERR_TOPIC_EXCEPTION = 17,
  RD_KAFKA_RESP_ERR_RECORD_LIST_TOO_LARGE = 18,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS = 19,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS_AFTER_APPEND = 20,
  RD_KAFKA_RESP_ERR_INVALID_REQUIRED_ACKS = 21,
  RD_KAFKA_RESP_ERR_ILLEGAL_GENERATION = 22,
  RD_KAFKA_RESP_ERR_INCONSISTENT_GROUP_PROTOCOL = 23,
  RD_KAFKA_RESP_ERR_INVALID_GROUP_ID = 24,
  RD_KAFKA_RESP_ERR_UNKNOWN_MEMBER_ID = 25,
  RD_KAFKA_RESP_ERR_INVALID_SESSION_TIMEOUT = 26,
  RD_KAFKA_RESP_ERR_REBALANCE_IN_PROGRESS = 27,
  RD_KAFKA_RESP_ERR_INVALID_COMMIT_OFFSET_SIZE = 28,
  RD_KAFKA_RESP_ERR_TOPIC_AUTHORIZATION_FAILED = 29,
  RD_KAFKA_RESP_ERR_GROUP_AUTHORIZATION_FAILED = 30,
  RD_KAFKA_RESP_ERR_CLUSTER_AUTHORIZATION_FAILED = 31,
  RD_KAFKA_RESP_ERR_INVALID_TIMESTAMP = 32,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_SASL_MECHANISM = 33,
  RD_KAFKA_RESP_ERR_ILLEGAL_SASL_STATE = 34,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_VERSION = 35,
  RD_KAFKA_RESP_ERR_TOPIC_ALREADY_EXISTS = 36,
  RD_KAFKA_RESP_ERR_INVALID_PARTITIONS = 37,
  RD_KAFKA_RESP_ERR_INVALID_REPLICATION_FACTOR = 38,
  RD_KAFKA_RESP_ERR_INVALID_REPLICA_ASSIGNMENT = 39,
  RD_KAFKA_RESP_ERR_INVALID_CONFIG = 40,
  RD_KAFKA_RESP_ERR_NOT_CONTROLLER = 41,
  RD_KAFKA_RESP_ERR_INVALID_REQUEST = 42,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_FOR_MESSAGE_FORMAT = 43,
  RD_KAFKA_RESP_ERR_POLICY_VIOLATION = 44,
  RD_KAFKA_RESP_ERR_OUT_OF_ORDER_SEQUENCE_NUMBER = 45,
  RD_KAFKA_RESP_ERR_DUPLICATE_SEQUENCE_NUMBER = 46,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_EPOCH = 47,
  RD_KAFKA_RESP_ERR_INVALID_TXN_STATE = 48,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_ID_MAPPING = 49,
  RD_KAFKA_RESP_ERR_INVALID_TRANSACTION_TIMEOUT = 50,
  RD_KAFKA_RESP_ERR_CONCURRENT_TRANSACTIONS = 51,
  RD_KAFKA_RESP_ERR_TRANSACTION_COORDINATOR_FENCED = 52,
  RD_KAFKA_RESP_ERR_TRANSACTIONAL_ID_AUTHORIZATION_FAILED = 53,
  RD_KAFKA_RESP_ERR_SECURITY_DISABLED = 54,
  RD_KAFKA_RESP_ERR_OPERATION_NOT_ATTEMPTED = 55,
  RD_KAFKA_RESP_ERR_KAFKA_STORAGE_ERROR = 56,
  RD_KAFKA_RESP_ERR_LOG_DIR_NOT_FOUND = 57,
  RD_KAFKA_RESP_ERR_SASL_AUTHENTICATION_FAILED = 58,
  RD_KAFKA_RESP_ERR_UNKNOWN_PRODUCER_ID = 59,
  RD_KAFKA_RESP_ERR_REASSIGNMENT_IN_PROGRESS = 60,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTH_DISABLED = 61,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_NOT_FOUND = 62,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_OWNER_MISMATCH = 63,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_REQUEST_NOT_ALLOWED = 64,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTHORIZATION_FAILED = 65,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_EXPIRED = 66,
  RD_KAFKA_RESP_ERR_INVALID_PRINCIPAL_TYPE = 67,
  RD_KAFKA_RESP_ERR_NON_EMPTY_GROUP = 68,
  RD_KAFKA_RESP_ERR_GROUP_ID_NOT_FOUND = 69,
  RD_KAFKA_RESP_ERR_FETCH_SESSION_ID_NOT_FOUND = 70,
  RD_KAFKA_RESP_ERR_INVALID_FETCH_SESSION_EPOCH = 71,
  RD_KAFKA_RESP_ERR_LISTENER_NOT_FOUND = 72,
  RD_KAFKA_RESP_ERR_TOPIC_DELETION_DISABLED = 73,
  RD_KAFKA_RESP_ERR_FENCED_LEADER_EPOCH = 74,
  RD_KAFKA_RESP_ERR_UNKNOWN_LEADER_EPOCH = 75,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76,
  RD_KAFKA_RESP_ERR_STALE_BROKER_EPOCH = 77,
  RD_KAFKA_RESP_ERR_OFFSET_NOT_AVAILABLE = 78,
  RD_KAFKA_RESP_ERR_MEMBER_ID_REQUIRED = 79,
  RD_KAFKA_RESP_ERR_PREFERRED_LEADER_NOT_AVAILABLE = 80,
  RD_KAFKA_RESP_ERR_GROUP_MAX_SIZE_REACHED = 81,
  RD_KAFKA_RESP_ERR_FENCED_INSTANCE_ID = 82,
  RD_KAFKA_RESP_ERR_ELIGIBLE_LEADERS_NOT_AVAILABLE = 83,
  RD_KAFKA_RESP_ERR_ELECTION_NOT_NEEDED = 84,
  RD_KAFKA_RESP_ERR_NO_REASSIGNMENT_IN_PROGRESS = 85,
  RD_KAFKA_RESP_ERR_GROUP_SUBSCRIBED_TO_TOPIC = 86,
  RD_KAFKA_RESP_ERR_INVALID_RECORD = 87,
  RD_KAFKA_RESP_ERR_UNSTABLE_OFFSET_COMMIT = 88,
  RD_KAFKA_RESP_ERR_END_ALL,
} rd_kafka_resp_err_t;
struct rd_kafka_err_desc {
  rd_kafka_resp_err_t code;
  char *name;
  char *desc;
};
void rd_kafka_get_err_descs(const struct rd_kafka_err_desc **errdescs, size_t *cntp);
const char *rd_kafka_err2str(rd_kafka_resp_err_t err);
const char *rd_kafka_err2name(rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_last_error(void);
rd_kafka_resp_err_t rd_kafka_errno2err(int errnox);
int rd_kafka_errno(void);
rd_kafka_resp_err_t rd_kafka_fatal_error(rd_kafka_t *rk, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_test_fatal_error(rd_kafka_t *rk, rd_kafka_resp_err_t err, const char *reason);
rd_kafka_resp_err_t rd_kafka_error_code(const rd_kafka_error_t *error);
const char *rd_kafka_error_name(const rd_kafka_error_t *error);
const char *rd_kafka_error_string(const rd_kafka_error_t *error);
int rd_kafka_error_is_fatal(const rd_kafka_error_t *error);
int rd_kafka_error_is_retriable(const rd_kafka_error_t *error);
int rd_kafka_error_txn_requires_abort(const rd_kafka_error_t *error);
void rd_kafka_error_destroy(rd_kafka_error_t *error);
rd_kafka_error_t *rd_kafka_error_new(rd_kafka_resp_err_t code, const char *fmt, ...);
typedef struct rd_kafka_topic_partition_s {
  char *topic;
  int32_t partition;
  int64_t offset;
  void *metadata;
  size_t metadata_size;
  void *opaque;
  rd_kafka_resp_err_t err;
  void *_private;
} rd_kafka_topic_partition_t;
void rd_kafka_topic_partition_destroy(rd_kafka_topic_partition_t *rktpar);
typedef struct rd_kafka_topic_partition_list_s {
  int cnt;
  int size;
  rd_kafka_topic_partition_t *elems;
} rd_kafka_topic_partition_list_t;
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_new(int size);
void rd_kafka_topic_partition_list_destroy(rd_kafka_topic_partition_list_t *rkparlist);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_add(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_add_range(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t start, int32_t stop);
int rd_kafka_topic_partition_list_del(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
int rd_kafka_topic_partition_list_del_by_idx(rd_kafka_topic_partition_list_t *rktparlist, int idx);
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_copy(const rd_kafka_topic_partition_list_t *src);
rd_kafka_resp_err_t rd_kafka_topic_partition_list_set_offset(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition, int64_t offset);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_find(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_sort(rd_kafka_topic_partition_list_t *rktparlist, int (*cmp)(const void *a, const void *b, void *cmp_opaque), void *cmp_opaque);
typedef enum rd_kafka_vtype_t {
  RD_KAFKA_VTYPE_END,
  RD_KAFKA_VTYPE_TOPIC,
  RD_KAFKA_VTYPE_RKT,
  RD_KAFKA_VTYPE_PARTITION,
  RD_KAFKA_VTYPE_VALUE,
  RD_KAFKA_VTYPE_KEY,
  RD_KAFKA_VTYPE_OPAQUE,
  RD_KAFKA_VTYPE_MSGFLAGS,
  RD_KAFKA_VTYPE_TIMESTAMP,
  RD_KAFKA_VTYPE_HEADER,
  RD_KAFKA_VTYPE_HEADERS,
} rd_kafka_vtype_t;
typedef struct rd_kafka_vu_s {
  rd_kafka_vtype_t vtype;
  union {
    char *cstr;
    rd_kafka_topic_t *rkt;
    int i;
    int32_t i32;
    int64_t i64;
    struct {
      void *ptr;
      size_t size;
    } mem;
    struct {
      char *name;
      void *val;
      ssize_t size;
    } header;
    rd_kafka_headers_t *headers;
    void *ptr;
    char _pad[64];
  } u;
} rd_kafka_vu_t;
rd_kafka_headers_t *rd_kafka_headers_new(size_t initial_count);
void rd_kafka_headers_destroy(rd_kafka_headers_t *hdrs);
rd_kafka_headers_t *rd_kafka_headers_copy(const rd_kafka_headers_t *src);
rd_kafka_resp_err_t rd_kafka_header_add(rd_kafka_headers_t *hdrs, const char *name, ssize_t name_size, const void *value, ssize_t value_size);
rd_kafka_resp_err_t rd_kafka_header_remove(rd_kafka_headers_t *hdrs, const char *name);
rd_kafka_resp_err_t rd_kafka_header_get_last(const rd_kafka_headers_t *hdrs, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get(const rd_kafka_headers_t *hdrs, size_t idx, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get_all(const rd_kafka_headers_t *hdrs, size_t idx, const char **namep, const void **valuep, size_t *sizep);
typedef struct rd_kafka_message_s {
  rd_kafka_resp_err_t err;
  rd_kafka_topic_t *rkt;
  int32_t partition;
  void *payload;
  size_t len;
  void *key;
  size_t key_len;
  int64_t offset;
  void *_private;
} rd_kafka_message_t;
void rd_kafka_message_destroy(rd_kafka_message_t *rkmessage);
const char *rd_kafka_message_errstr(const rd_kafka_message_t *rkmessage);
int64_t rd_kafka_message_timestamp(const rd_kafka_message_t *rkmessage, rd_kafka_timestamp_type_t *tstype);
int64_t rd_kafka_message_latency(const rd_kafka_message_t *rkmessage);
int32_t rd_kafka_message_broker_id(const rd_kafka_message_t *rkmessage);
rd_kafka_resp_err_t rd_kafka_message_headers(const rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
rd_kafka_resp_err_t rd_kafka_message_detach_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
void rd_kafka_message_set_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t *hdrs);
size_t rd_kafka_header_cnt(const rd_kafka_headers_t *hdrs);
typedef enum {
  RD_KAFKA_MSG_STATUS_NOT_PERSISTED = 0,
  RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED = 1,
  RD_KAFKA_MSG_STATUS_PERSISTED = 2,
} rd_kafka_msg_status_t;
rd_kafka_msg_status_t rd_kafka_message_status(const rd_kafka_message_t *rkmessage);
typedef enum {
  RD_KAFKA_CONF_UNKNOWN = (- 2),
  RD_KAFKA_CONF_INVALID = (- 1),
  RD_KAFKA_CONF_OK = 0,
} rd_kafka_conf_res_t;
rd_kafka_conf_t *rd_kafka_conf_new(void);
void rd_kafka_conf_destroy(rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup(const rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup_filter(const rd_kafka_conf_t *conf, size_t filter_cnt, const char **filter);
const rd_kafka_conf_t *rd_kafka_conf(rd_kafka_t *rk);
rd_kafka_conf_res_t rd_kafka_conf_set(rd_kafka_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_events(rd_kafka_conf_t *conf, int events);
void rd_kafka_conf_set_background_event_cb(rd_kafka_conf_t *conf, void (*event_cb)(rd_kafka_t *rk, rd_kafka_event_t *rkev, void *opaque));
void rd_kafka_conf_set_dr_cb(rd_kafka_conf_t *conf, void (*dr_cb)(rd_kafka_t *rk, void *payload, size_t len, rd_kafka_resp_err_t err, void *opaque, void *msg_opaque));
void rd_kafka_conf_set_dr_msg_cb(rd_kafka_conf_t *conf, void (*dr_msg_cb)(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_consume_cb(rd_kafka_conf_t *conf, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_rebalance_cb(rd_kafka_conf_t *conf, void (*rebalance_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *partitions, void *opaque));
void rd_kafka_conf_set_offset_commit_cb(rd_kafka_conf_t *conf, void (*offset_commit_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *opaque));
void rd_kafka_conf_set_error_cb(rd_kafka_conf_t *conf, void (*error_cb)(rd_kafka_t *rk, int err, const char *reason, void *opaque));
void rd_kafka_conf_set_throttle_cb(rd_kafka_conf_t *conf, void (*throttle_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int throttle_time_ms, void *opaque));
void rd_kafka_conf_set_log_cb(rd_kafka_conf_t *conf, void (*log_cb)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_conf_set_stats_cb(rd_kafka_conf_t *conf, int (*stats_cb)(rd_kafka_t *rk, char *json, size_t json_len, void *opaque));
void rd_kafka_conf_set_oauthbearer_token_refresh_cb(rd_kafka_conf_t *conf, void (*oauthbearer_token_refresh_cb)(rd_kafka_t *rk, const char *oauthbearer_config, void *opaque));
void rd_kafka_conf_set_socket_cb(rd_kafka_conf_t *conf, int (*socket_cb)(int domain, int type, int protocol, void *opaque));
void rd_kafka_conf_set_connect_cb(rd_kafka_conf_t *conf, int (*connect_cb)(int sockfd, const struct sockaddr *addr, int addrlen, const char *id, void *opaque));
void rd_kafka_conf_set_closesocket_cb(rd_kafka_conf_t *conf, int (*closesocket_cb)(int sockfd, void *opaque));
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert_verify_cb(rd_kafka_conf_t *conf, int (*ssl_cert_verify_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int *x509_error, int depth, const char *buf, size_t size, char *errstr, size_t errstr_size, void *opaque));
typedef enum rd_kafka_cert_type_t {
  RD_KAFKA_CERT_PUBLIC_KEY,
  RD_KAFKA_CERT_PRIVATE_KEY,
  RD_KAFKA_CERT_CA,
  RD_KAFKA_CERT__CNT,
} rd_kafka_cert_type_t;
typedef enum rd_kafka_cert_enc_t {
  RD_KAFKA_CERT_ENC_PKCS12,
  RD_KAFKA_CERT_ENC_DER,
  RD_KAFKA_CERT_ENC_PEM,
  RD_KAFKA_CERT_ENC__CNT,
} rd_kafka_cert_enc_t;
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert(rd_kafka_conf_t *conf, rd_kafka_cert_type_t cert_type, rd_kafka_cert_enc_t cert_enc, const void *buffer, size_t size, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_opaque(rd_kafka_conf_t *conf, void *opaque);
void *rd_kafka_opaque(const rd_kafka_t *rk);
void rd_kafka_conf_set_default_topic_conf(rd_kafka_conf_t *conf, rd_kafka_topic_conf_t *tconf);
rd_kafka_conf_res_t rd_kafka_conf_get(const rd_kafka_conf_t *conf, const char *name, char *dest, size_t *dest_size);
rd_kafka_conf_res_t rd_kafka_topic_conf_get(const rd_kafka_topic_conf_t *conf, const char *name, char *dest, size_t *dest_size);
const char **rd_kafka_conf_dump(rd_kafka_conf_t *conf, size_t *cntp);
const char **rd_kafka_topic_conf_dump(rd_kafka_topic_conf_t *conf, size_t *cntp);
void rd_kafka_conf_dump_free(const char **arr, size_t cnt);
void rd_kafka_conf_properties_show(FILE *fp);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_new(void);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_dup(const rd_kafka_topic_conf_t *conf);
rd_kafka_topic_conf_t *rd_kafka_default_topic_conf_dup(rd_kafka_t *rk);
void rd_kafka_topic_conf_destroy(rd_kafka_topic_conf_t *topic_conf);
rd_kafka_conf_res_t rd_kafka_topic_conf_set(rd_kafka_topic_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_topic_conf_set_opaque(rd_kafka_topic_conf_t *conf, void *rkt_opaque);
void rd_kafka_topic_conf_set_partitioner_cb(rd_kafka_topic_conf_t *topic_conf, int32_t (*partitioner)(const rd_kafka_topic_t *rkt, const void *keydata, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque));
void rd_kafka_topic_conf_set_msg_order_cmp(rd_kafka_topic_conf_t *topic_conf, int (*msg_order_cmp)(const rd_kafka_message_t *a, const rd_kafka_message_t *b));
int rd_kafka_topic_partition_available(const rd_kafka_topic_t *rkt, int32_t partition);
int32_t rd_kafka_msg_partitioner_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
rd_kafka_t *rd_kafka_new(rd_kafka_type_t type, rd_kafka_conf_t *conf, char *errstr, size_t errstr_size);
void rd_kafka_destroy(rd_kafka_t *rk);
void rd_kafka_destroy_flags(rd_kafka_t *rk, int flags);
const char *rd_kafka_name(const rd_kafka_t *rk);
rd_kafka_type_t rd_kafka_type(const rd_kafka_t *rk);
char *rd_kafka_memberid(const rd_kafka_t *rk);
char *rd_kafka_clusterid(rd_kafka_t *rk, int timeout_ms);
int32_t rd_kafka_controllerid(rd_kafka_t *rk, int timeout_ms);
rd_kafka_topic_t *rd_kafka_topic_new(rd_kafka_t *rk, const char *topic, rd_kafka_topic_conf_t *conf);
void rd_kafka_topic_destroy(rd_kafka_topic_t *rkt);
const char *rd_kafka_topic_name(const rd_kafka_topic_t *rkt);
void *rd_kafka_topic_opaque(const rd_kafka_topic_t *rkt);
int rd_kafka_poll(rd_kafka_t *rk, int timeout_ms);
void rd_kafka_yield(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_pause_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_resume_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_query_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_get_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high);
rd_kafka_resp_err_t rd_kafka_offsets_for_times(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets, int timeout_ms);
void rd_kafka_mem_free(rd_kafka_t *rk, void *ptr);
rd_kafka_queue_t *rd_kafka_queue_new(rd_kafka_t *rk);
void rd_kafka_queue_destroy(rd_kafka_queue_t *rkqu);
rd_kafka_queue_t *rd_kafka_queue_get_main(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_consumer(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_partition(rd_kafka_t *rk, const char *topic, int32_t partition);
rd_kafka_queue_t *rd_kafka_queue_get_background(rd_kafka_t *rk);
void rd_kafka_queue_forward(rd_kafka_queue_t *src, rd_kafka_queue_t *dst);
rd_kafka_resp_err_t rd_kafka_set_log_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu);
size_t rd_kafka_queue_length(rd_kafka_queue_t *rkqu);
void rd_kafka_queue_io_event_enable(rd_kafka_queue_t *rkqu, int fd, const void *payload, size_t size);
void rd_kafka_queue_cb_event_enable(rd_kafka_queue_t *rkqu, void (*event_cb)(rd_kafka_t *rk, void *qev_opaque), void *qev_opaque);
int rd_kafka_consume_start(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
int rd_kafka_consume_start_queue(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, rd_kafka_queue_t *rkqu);
int rd_kafka_consume_stop(rd_kafka_topic_t *rkt, int32_t partition);
rd_kafka_resp_err_t rd_kafka_seek(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, int timeout_ms);
rd_kafka_message_t *rd_kafka_consume(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms);
ssize_t rd_kafka_consume_batch(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_message_t *rd_kafka_consume_queue(rd_kafka_queue_t *rkqu, int timeout_ms);
ssize_t rd_kafka_consume_batch_queue(rd_kafka_queue_t *rkqu, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback_queue(rd_kafka_queue_t *rkqu, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_offset_store(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
rd_kafka_resp_err_t rd_kafka_offsets_store(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets);
rd_kafka_resp_err_t rd_kafka_subscribe(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *topics);
rd_kafka_resp_err_t rd_kafka_unsubscribe(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_subscription(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **topics);
rd_kafka_message_t *rd_kafka_consumer_poll(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_consumer_close(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_assignment(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **partitions);
rd_kafka_resp_err_t rd_kafka_commit(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, int async);
rd_kafka_resp_err_t rd_kafka_commit_message(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, int async);
rd_kafka_resp_err_t rd_kafka_commit_queue(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_queue_t *rkqu, void (*cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_committed(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_position(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata(rd_kafka_t *rk);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new(const char *group_id);
void rd_kafka_consumer_group_metadata_destroy(rd_kafka_consumer_group_metadata_t *);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_write(const rd_kafka_consumer_group_metadata_t *cgmd, void **bufferp, size_t *sizep);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_read(rd_kafka_consumer_group_metadata_t **cgmdp, const void *buffer, size_t size);
int rd_kafka_produce(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, void *payload, size_t len, const void *key, size_t keylen, void *msg_opaque);
rd_kafka_resp_err_t rd_kafka_producev(rd_kafka_t *rk, ...);
rd_kafka_error_t *rd_kafka_produceva(rd_kafka_t *rk, const rd_kafka_vu_t *vus, size_t cnt);
int rd_kafka_produce_batch(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, rd_kafka_message_t *rkmessages, int message_cnt);
rd_kafka_resp_err_t rd_kafka_flush(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_purge(rd_kafka_t *rk, int purge_flags);
typedef struct rd_kafka_metadata_broker {
  int32_t id;
  char *host;
  int port;
} rd_kafka_metadata_broker_t;
typedef struct rd_kafka_metadata_partition {
  int32_t id;
  rd_kafka_resp_err_t err;
  int32_t leader;
  int replica_cnt;
  int32_t *replicas;
  int isr_cnt;
  int32_t *isrs;
} rd_kafka_metadata_partition_t;
typedef struct rd_kafka_metadata_topic {
  char *topic;
  int partition_cnt;
  struct rd_kafka_metadata_partition *partitions;
  rd_kafka_resp_err_t err;
} rd_kafka_metadata_topic_t;
typedef struct rd_kafka_metadata {
  int broker_cnt;
  struct rd_kafka_metadata_broker *brokers;
  int topic_cnt;
  struct rd_kafka_metadata_topic *topics;
  int32_t orig_broker_id;
  char *orig_broker_name;
} rd_kafka_metadata_t;
rd_kafka_resp_err_t rd_kafka_metadata(rd_kafka_t *rk, int all_topics, rd_kafka_topic_t *only_rkt, const struct rd_kafka_metadata **metadatap, int timeout_ms);
void rd_kafka_metadata_destroy(const struct rd_kafka_metadata *metadata);
struct rd_kafka_group_member_info {
  char *member_id;
  char *client_id;
  char *client_host;
  void *member_metadata;
  int member_metadata_size;
  void *member_assignment;
  int member_assignment_size;
};
struct rd_kafka_group_info {
  struct rd_kafka_metadata_broker broker;
  char *group;
  rd_kafka_resp_err_t err;
  char *state;
  char *protocol_type;
  char *protocol;
  struct rd_kafka_group_member_info *members;
  int member_cnt;
};
struct rd_kafka_group_list {
  struct rd_kafka_group_info *groups;
  int group_cnt;
};
rd_kafka_resp_err_t rd_kafka_list_groups(rd_kafka_t *rk, const char *group, const struct rd_kafka_group_list **grplistp, int timeout_ms);
void rd_kafka_group_list_destroy(const struct rd_kafka_group_list *grplist);
int rd_kafka_brokers_add(rd_kafka_t *rk, const char *brokerlist);
void rd_kafka_set_logger(rd_kafka_t *rk, void (*func)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_set_log_level(rd_kafka_t *rk, int level);
void rd_kafka_log_print(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
void rd_kafka_log_syslog(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
int rd_kafka_outq_len(rd_kafka_t *rk);
void rd_kafka_dump(FILE *fp, rd_kafka_t *rk);
int rd_kafka_thread_cnt(void);
typedef enum rd_kafka_thread_type_t {
  RD_KAFKA_THREAD_MAIN,
  RD_KAFKA_THREAD_BACKGROUND,
  RD_KAFKA_THREAD_BROKER,
} rd_kafka_thread_type_t;
int rd_kafka_wait_destroyed(int timeout_ms);
int rd_kafka_unittest(void);
rd_kafka_resp_err_t rd_kafka_poll_set_consumer(rd_kafka_t *rk);
typedef int rd_kafka_event_type_t;
rd_kafka_event_type_t rd_kafka_event_type(const rd_kafka_event_t *rkev);
const char *rd_kafka_event_name(const rd_kafka_event_t *rkev);
void rd_kafka_event_destroy(rd_kafka_event_t *rkev);
const rd_kafka_message_t *rd_kafka_event_message_next(rd_kafka_event_t *rkev);
size_t rd_kafka_event_message_array(rd_kafka_event_t *rkev, const rd_kafka_message_t **rkmessages, size_t size);
size_t rd_kafka_event_message_count(rd_kafka_event_t *rkev);
const char *rd_kafka_event_config_string(rd_kafka_event_t *rkev);
rd_kafka_resp_err_t rd_kafka_event_error(rd_kafka_event_t *rkev);
const char *rd_kafka_event_error_string(rd_kafka_event_t *rkev);
int rd_kafka_event_error_is_fatal(rd_kafka_event_t *rkev);
void *rd_kafka_event_opaque(rd_kafka_event_t *rkev);
int rd_kafka_event_log(rd_kafka_event_t *rkev, const char **fac, const char **str, int *level);
int rd_kafka_event_debug_contexts(rd_kafka_event_t *rkev, char *dst, size_t dstsize);
const char *rd_kafka_event_stats(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_list_t *rd_kafka_event_topic_partition_list(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_t *rd_kafka_event_topic_partition(rd_kafka_event_t *rkev);
typedef rd_kafka_event_t rd_kafka_CreateTopics_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteTopics_result_t;
typedef rd_kafka_event_t rd_kafka_CreatePartitions_result_t;
typedef rd_kafka_event_t rd_kafka_AlterConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeConfigs_result_t;
const rd_kafka_CreateTopics_result_t *rd_kafka_event_CreateTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteTopics_result_t *rd_kafka_event_DeleteTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_CreatePartitions_result_t *rd_kafka_event_CreatePartitions_result(rd_kafka_event_t *rkev);
const rd_kafka_AlterConfigs_result_t *rd_kafka_event_AlterConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeConfigs_result_t *rd_kafka_event_DescribeConfigs_result(rd_kafka_event_t *rkev);
rd_kafka_event_t *rd_kafka_queue_poll(rd_kafka_queue_t *rkqu, int timeout_ms);
int rd_kafka_queue_poll_callback(rd_kafka_queue_t *rkqu, int timeout_ms);
typedef rd_kafka_resp_err_t (rd_kafka_plugin_f_conf_init_t)(rd_kafka_conf_t *conf, void **plug_opaquep, char *errstr, size_t errstr_size);
typedef rd_kafka_conf_res_t (rd_kafka_interceptor_f_on_conf_set_t)(rd_kafka_conf_t *conf, const char *name, const char *val, char *errstr, size_t errstr_size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_dup_t)(rd_kafka_conf_t *new_conf, const rd_kafka_conf_t *old_conf, size_t filter_cnt, const char **filter, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_destroy_t)(void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_new_t)(rd_kafka_t *rk, const rd_kafka_conf_t *conf, void *ic_opaque, char *errstr, size_t errstr_size);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_destroy_t)(rd_kafka_t *rk, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_send_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_acknowledgement_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_consume_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_commit_t)(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_request_sent_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_start_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_exit_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_set(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_set_t *on_conf_set, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_dup(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_dup_t *on_conf_dup, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_destroy(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_destroy_t *on_conf_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_new(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_new_t *on_new, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_destroy(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_destroy_t *on_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_send(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_send_t *on_send, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_acknowledgement(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_acknowledgement_t *on_acknowledgement, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_consume(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_consume_t *on_consume, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_commit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_commit_t *on_commit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_request_sent(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_request_sent_t *on_request_sent, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_start(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_start_t *on_thread_start, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_exit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_exit_t *on_thread_exit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_topic_result_error(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_error_string(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_name(const rd_kafka_topic_result_t *topicres);
typedef enum rd_kafka_admin_op_t {
  RD_KAFKA_ADMIN_OP_ANY = 0,
  RD_KAFKA_ADMIN_OP_CREATETOPICS,
  RD_KAFKA_ADMIN_OP_DELETETOPICS,
  RD_KAFKA_ADMIN_OP_CREATEPARTITIONS,
  RD_KAFKA_ADMIN_OP_ALTERCONFIGS,
  RD_KAFKA_ADMIN_OP_DESCRIBECONFIGS,
  RD_KAFKA_ADMIN_OP__CNT,
} rd_kafka_admin_op_t;
typedef struct rd_kafka_AdminOptions_s rd_kafka_AdminOptions_t;
rd_kafka_AdminOptions_t *rd_kafka_AdminOptions_new(rd_kafka_t *rk, rd_kafka_admin_op_t for_api);
void rd_kafka_AdminOptions_destroy(rd_kafka_AdminOptions_t *options);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_request_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_operation_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_validate_only(rd_kafka_AdminOptions_t *options, int true_or_false, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_broker(rd_kafka_AdminOptions_t *options, int32_t broker_id, char *errstr, size_t errstr_size);
void rd_kafka_AdminOptions_set_opaque(rd_kafka_AdminOptions_t *options, void *ev_opaque);
typedef struct rd_kafka_NewTopic_s rd_kafka_NewTopic_t;
rd_kafka_NewTopic_t *rd_kafka_NewTopic_new(const char *topic, int num_partitions, int replication_factor, char *errstr, size_t errstr_size);
void rd_kafka_NewTopic_destroy(rd_kafka_NewTopic_t *new_topic);
void rd_kafka_NewTopic_destroy_array(rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_replica_assignment(rd_kafka_NewTopic_t *new_topic, int32_t partition, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_config(rd_kafka_NewTopic_t *new_topic, const char *name, const char *value);
void rd_kafka_CreateTopics(rd_kafka_t *rk, rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreateTopics_result_topics(const rd_kafka_CreateTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteTopic_s rd_kafka_DeleteTopic_t;
rd_kafka_DeleteTopic_t *rd_kafka_DeleteTopic_new(const char *topic);
void rd_kafka_DeleteTopic_destroy(rd_kafka_DeleteTopic_t *del_topic);
void rd_kafka_DeleteTopic_destroy_array(rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt);
void rd_kafka_DeleteTopics(rd_kafka_t *rk, rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_DeleteTopics_result_topics(const rd_kafka_DeleteTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_NewPartitions_s rd_kafka_NewPartitions_t;
rd_kafka_NewPartitions_t *rd_kafka_NewPartitions_new(const char *topic, size_t new_total_cnt, char *errstr, size_t errstr_size);
void rd_kafka_NewPartitions_destroy(rd_kafka_NewPartitions_t *new_parts);
void rd_kafka_NewPartitions_destroy_array(rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt);
rd_kafka_resp_err_t rd_kafka_NewPartitions_set_replica_assignment(rd_kafka_NewPartitions_t *new_parts, int32_t new_partition_idx, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
void rd_kafka_CreatePartitions(rd_kafka_t *rk, rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreatePartitions_result_topics(const rd_kafka_CreatePartitions_result_t *result, size_t *cntp);
typedef enum rd_kafka_ConfigSource_t {
  RD_KAFKA_CONFIG_SOURCE_UNKNOWN_CONFIG = 0,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG = 1,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG = 2,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG = 3,
  RD_KAFKA_CONFIG_SOURCE_STATIC_BROKER_CONFIG = 4,
  RD_KAFKA_CONFIG_SOURCE_DEFAULT_CONFIG = 5,
  RD_KAFKA_CONFIG_SOURCE__CNT,
} rd_kafka_ConfigSource_t;
const char *rd_kafka_ConfigSource_name(rd_kafka_ConfigSource_t confsource);
typedef struct rd_kafka_ConfigEntry_s rd_kafka_ConfigEntry_t;
const char *rd_kafka_ConfigEntry_name(const rd_kafka_ConfigEntry_t *entry);
const char *rd_kafka_ConfigEntry_value(const rd_kafka_ConfigEntry_t *entry);
rd_kafka_ConfigSource_t rd_kafka_ConfigEntry_source(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_read_only(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_default(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_sensitive(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_synonym(const rd_kafka_ConfigEntry_t *entry);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigEntry_synonyms(const rd_kafka_ConfigEntry_t *entry, size_t *cntp);
typedef enum rd_kafka_ResourceType_t {
  RD_KAFKA_RESOURCE_UNKNOWN = 0,
  RD_KAFKA_RESOURCE_ANY = 1,
  RD_KAFKA_RESOURCE_TOPIC = 2,
  RD_KAFKA_RESOURCE_GROUP = 3,
  RD_KAFKA_RESOURCE_BROKER = 4,
  RD_KAFKA_RESOURCE__CNT,
} rd_kafka_ResourceType_t;
const char *rd_kafka_ResourceType_name(rd_kafka_ResourceType_t restype);
typedef struct rd_kafka_ConfigResource_s rd_kafka_ConfigResource_t;
rd_kafka_ConfigResource_t *rd_kafka_ConfigResource_new(rd_kafka_ResourceType_t restype, const char *resname);
void rd_kafka_ConfigResource_destroy(rd_kafka_ConfigResource_t *config);
void rd_kafka_ConfigResource_destroy_array(rd_kafka_ConfigResource_t **config, size_t config_cnt);
rd_kafka_resp_err_t rd_kafka_ConfigResource_set_config(rd_kafka_ConfigResource_t *config, const char *name, const char *value);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigResource_configs(const rd_kafka_ConfigResource_t *config, size_t *cntp);
rd_kafka_ResourceType_t rd_kafka_ConfigResource_type(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_name(const rd_kafka_ConfigResource_t *config);
rd_kafka_resp_err_t rd_kafka_ConfigResource_error(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_error_string(const rd_kafka_ConfigResource_t *config);
void rd_kafka_AlterConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_AlterConfigs_result_resources(const rd_kafka_AlterConfigs_result_t *result, size_t *cntp);
void rd_kafka_DescribeConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_DescribeConfigs_result_resources(const rd_kafka_DescribeConfigs_result_t *result, size_t *cntp);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token(rd_kafka_t *rk, const char *token_value, int64_t md_lifetime_ms, const char *md_principal_name, const char **extensions, size_t extension_size, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token_failure(rd_kafka_t *rk, const char *errstr);
rd_kafka_error_t *rd_kafka_init_transactions(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_begin_transaction(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_send_offsets_to_transaction(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, const rd_kafka_consumer_group_metadata_t *cgmetadata, int timeout_ms);
rd_kafka_error_t *rd_kafka_commit_transaction(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_abort_transaction(rd_kafka_t *rk, int timeout_ms);
typedef struct rd_kafka_mock_cluster_s rd_kafka_mock_cluster_t;
rd_kafka_mock_cluster_t *rd_kafka_mock_cluster_new(rd_kafka_t *rk, int broker_cnt);
void rd_kafka_mock_cluster_destroy(rd_kafka_mock_cluster_t *mcluster);
rd_kafka_t *rd_kafka_mock_cluster_handle(const rd_kafka_mock_cluster_t *mcluster);
rd_kafka_mock_cluster_t *rd_kafka_handle_mock_cluster(const rd_kafka_t *rk);
const char *rd_kafka_mock_cluster_bootstraps(const rd_kafka_mock_cluster_t *mcluster);
void rd_kafka_mock_push_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, ...);
rd_kafka_resp_err_t rd_kafka_mock_broker_push_request_errors(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int16_t ApiKey, size_t cnt, ...);
void rd_kafka_mock_topic_set_error(rd_kafka_mock_cluster_t *mcluster, const char *topic, rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_mock_topic_create(rd_kafka_mock_cluster_t *mcluster, const char *topic, int partition_cnt, int replication_factor);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_leader(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower_wmarks(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int64_t lo, int64_t hi);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_down(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_up(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rtt(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int rtt_ms);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rack(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, const char *rack);
rd_kafka_resp_err_t rd_kafka_mock_coordinator_set(rd_kafka_mock_cluster_t *mcluster, const char *key_type, const char *key, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_set_apiversion(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, int16_t MinVersion, int16_t MaxVersion);
'
rdkafka.h, rdkafka_mock.h

RD_KAFKA_VERSION

public RD_KAFKA_VERSION = 17170687

librdkafka version

Interpreted as hex MM.mm.rr.xx:

  • MM = Major
  • mm = minor
  • rr = revision
  • xx = pre-release id (0xff is the final release)

E.g.: 0x000801ff = 0.8.1

Remarks
This value should only be used during compile time, for runtime checks of version use rd_kafka_version()

RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE

public RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76

Unsupported compression type

RD_KAFKA_RESP_ERR_END_ALL

public RD_KAFKA_RESP_ERR_END_ALL = 98
enum rd_kafka_resp_err_t

RD_KAFKA_ADMIN_OP__CNT

public RD_KAFKA_ADMIN_OP__CNT = 9

Number of ops defined

RD_KAFKA_CDEF

public RD_KAFKA_CDEF = 'typedef long int ssize_t;
typedef struct _IO_FILE FILE;
typedef long int mode_t;
typedef signed int int16_t;
typedef unsigned int uint16_t;
typedef signed int int32_t;
typedef signed long int int64_t;
int rd_kafka_version(void);
const char *rd_kafka_version_str(void);
typedef enum rd_kafka_type_t {
  RD_KAFKA_PRODUCER,
  RD_KAFKA_CONSUMER,
} rd_kafka_type_t;
typedef enum rd_kafka_timestamp_type_t {
  RD_KAFKA_TIMESTAMP_NOT_AVAILABLE,
  RD_KAFKA_TIMESTAMP_CREATE_TIME,
  RD_KAFKA_TIMESTAMP_LOG_APPEND_TIME,
} rd_kafka_timestamp_type_t;
const char *rd_kafka_get_debug_contexts(void);
typedef struct rd_kafka_s rd_kafka_t;
typedef struct rd_kafka_topic_s rd_kafka_topic_t;
typedef struct rd_kafka_conf_s rd_kafka_conf_t;
typedef struct rd_kafka_topic_conf_s rd_kafka_topic_conf_t;
typedef struct rd_kafka_queue_s rd_kafka_queue_t;
typedef struct rd_kafka_op_s rd_kafka_event_t;
typedef struct rd_kafka_topic_result_s rd_kafka_topic_result_t;
typedef struct rd_kafka_consumer_group_metadata_s rd_kafka_consumer_group_metadata_t;
typedef struct rd_kafka_error_s {
  unsigned int code;
  char *errstr;
  unsigned char fatal;
  unsigned char retriable;
  unsigned char txn_requires_abort;
} rd_kafka_error_t;
typedef struct rd_kafka_headers_s rd_kafka_headers_t;
typedef struct rd_kafka_group_result_s rd_kafka_group_result_t;
typedef enum {
  RD_KAFKA_RESP_ERR__BEGIN = (- 200),
  RD_KAFKA_RESP_ERR__BAD_MSG = (- 199),
  RD_KAFKA_RESP_ERR__BAD_COMPRESSION = (- 198),
  RD_KAFKA_RESP_ERR__DESTROY = (- 197),
  RD_KAFKA_RESP_ERR__FAIL = (- 196),
  RD_KAFKA_RESP_ERR__TRANSPORT = (- 195),
  RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE = (- 194),
  RD_KAFKA_RESP_ERR__RESOLVE = (- 193),
  RD_KAFKA_RESP_ERR__MSG_TIMED_OUT = (- 192),
  RD_KAFKA_RESP_ERR__PARTITION_EOF = (- 191),
  RD_KAFKA_RESP_ERR__UNKNOWN_PARTITION = (- 190),
  RD_KAFKA_RESP_ERR__FS = (- 189),
  RD_KAFKA_RESP_ERR__UNKNOWN_TOPIC = (- 188),
  RD_KAFKA_RESP_ERR__ALL_BROKERS_DOWN = (- 187),
  RD_KAFKA_RESP_ERR__INVALID_ARG = (- 186),
  RD_KAFKA_RESP_ERR__TIMED_OUT = (- 185),
  RD_KAFKA_RESP_ERR__QUEUE_FULL = (- 184),
  RD_KAFKA_RESP_ERR__ISR_INSUFF = (- 183),
  RD_KAFKA_RESP_ERR__NODE_UPDATE = (- 182),
  RD_KAFKA_RESP_ERR__SSL = (- 181),
  RD_KAFKA_RESP_ERR__WAIT_COORD = (- 180),
  RD_KAFKA_RESP_ERR__UNKNOWN_GROUP = (- 179),
  RD_KAFKA_RESP_ERR__IN_PROGRESS = (- 178),
  RD_KAFKA_RESP_ERR__PREV_IN_PROGRESS = (- 177),
  RD_KAFKA_RESP_ERR__EXISTING_SUBSCRIPTION = (- 176),
  RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS = (- 175),
  RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS = (- 174),
  RD_KAFKA_RESP_ERR__CONFLICT = (- 173),
  RD_KAFKA_RESP_ERR__STATE = (- 172),
  RD_KAFKA_RESP_ERR__UNKNOWN_PROTOCOL = (- 171),
  RD_KAFKA_RESP_ERR__NOT_IMPLEMENTED = (- 170),
  RD_KAFKA_RESP_ERR__AUTHENTICATION = (- 169),
  RD_KAFKA_RESP_ERR__NO_OFFSET = (- 168),
  RD_KAFKA_RESP_ERR__OUTDATED = (- 167),
  RD_KAFKA_RESP_ERR__TIMED_OUT_QUEUE = (- 166),
  RD_KAFKA_RESP_ERR__UNSUPPORTED_FEATURE = (- 165),
  RD_KAFKA_RESP_ERR__WAIT_CACHE = (- 164),
  RD_KAFKA_RESP_ERR__INTR = (- 163),
  RD_KAFKA_RESP_ERR__KEY_SERIALIZATION = (- 162),
  RD_KAFKA_RESP_ERR__VALUE_SERIALIZATION = (- 161),
  RD_KAFKA_RESP_ERR__KEY_DESERIALIZATION = (- 160),
  RD_KAFKA_RESP_ERR__VALUE_DESERIALIZATION = (- 159),
  RD_KAFKA_RESP_ERR__PARTIAL = (- 158),
  RD_KAFKA_RESP_ERR__READ_ONLY = (- 157),
  RD_KAFKA_RESP_ERR__NOENT = (- 156),
  RD_KAFKA_RESP_ERR__UNDERFLOW = (- 155),
  RD_KAFKA_RESP_ERR__INVALID_TYPE = (- 154),
  RD_KAFKA_RESP_ERR__RETRY = (- 153),
  RD_KAFKA_RESP_ERR__PURGE_QUEUE = (- 152),
  RD_KAFKA_RESP_ERR__PURGE_INFLIGHT = (- 151),
  RD_KAFKA_RESP_ERR__FATAL = (- 150),
  RD_KAFKA_RESP_ERR__INCONSISTENT = (- 149),
  RD_KAFKA_RESP_ERR__GAPLESS_GUARANTEE = (- 148),
  RD_KAFKA_RESP_ERR__MAX_POLL_EXCEEDED = (- 147),
  RD_KAFKA_RESP_ERR__UNKNOWN_BROKER = (- 146),
  RD_KAFKA_RESP_ERR__NOT_CONFIGURED = (- 145),
  RD_KAFKA_RESP_ERR__FENCED = (- 144),
  RD_KAFKA_RESP_ERR__APPLICATION = (- 143),
  RD_KAFKA_RESP_ERR__ASSIGNMENT_LOST = (- 142),
  RD_KAFKA_RESP_ERR__NOOP = (- 141),
  RD_KAFKA_RESP_ERR__END = (- 100),
  RD_KAFKA_RESP_ERR_UNKNOWN = (- 1),
  RD_KAFKA_RESP_ERR_NO_ERROR = 0,
  RD_KAFKA_RESP_ERR_OFFSET_OUT_OF_RANGE = 1,
  RD_KAFKA_RESP_ERR_INVALID_MSG = 2,
  RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_OR_PART = 3,
  RD_KAFKA_RESP_ERR_INVALID_MSG_SIZE = 4,
  RD_KAFKA_RESP_ERR_LEADER_NOT_AVAILABLE = 5,
  RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION = 6,
  RD_KAFKA_RESP_ERR_REQUEST_TIMED_OUT = 7,
  RD_KAFKA_RESP_ERR_BROKER_NOT_AVAILABLE = 8,
  RD_KAFKA_RESP_ERR_REPLICA_NOT_AVAILABLE = 9,
  RD_KAFKA_RESP_ERR_MSG_SIZE_TOO_LARGE = 10,
  RD_KAFKA_RESP_ERR_STALE_CTRL_EPOCH = 11,
  RD_KAFKA_RESP_ERR_OFFSET_METADATA_TOO_LARGE = 12,
  RD_KAFKA_RESP_ERR_NETWORK_EXCEPTION = 13,
  RD_KAFKA_RESP_ERR_COORDINATOR_LOAD_IN_PROGRESS = 14,
  RD_KAFKA_RESP_ERR_COORDINATOR_NOT_AVAILABLE = 15,
  RD_KAFKA_RESP_ERR_NOT_COORDINATOR = 16,
  RD_KAFKA_RESP_ERR_TOPIC_EXCEPTION = 17,
  RD_KAFKA_RESP_ERR_RECORD_LIST_TOO_LARGE = 18,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS = 19,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS_AFTER_APPEND = 20,
  RD_KAFKA_RESP_ERR_INVALID_REQUIRED_ACKS = 21,
  RD_KAFKA_RESP_ERR_ILLEGAL_GENERATION = 22,
  RD_KAFKA_RESP_ERR_INCONSISTENT_GROUP_PROTOCOL = 23,
  RD_KAFKA_RESP_ERR_INVALID_GROUP_ID = 24,
  RD_KAFKA_RESP_ERR_UNKNOWN_MEMBER_ID = 25,
  RD_KAFKA_RESP_ERR_INVALID_SESSION_TIMEOUT = 26,
  RD_KAFKA_RESP_ERR_REBALANCE_IN_PROGRESS = 27,
  RD_KAFKA_RESP_ERR_INVALID_COMMIT_OFFSET_SIZE = 28,
  RD_KAFKA_RESP_ERR_TOPIC_AUTHORIZATION_FAILED = 29,
  RD_KAFKA_RESP_ERR_GROUP_AUTHORIZATION_FAILED = 30,
  RD_KAFKA_RESP_ERR_CLUSTER_AUTHORIZATION_FAILED = 31,
  RD_KAFKA_RESP_ERR_INVALID_TIMESTAMP = 32,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_SASL_MECHANISM = 33,
  RD_KAFKA_RESP_ERR_ILLEGAL_SASL_STATE = 34,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_VERSION = 35,
  RD_KAFKA_RESP_ERR_TOPIC_ALREADY_EXISTS = 36,
  RD_KAFKA_RESP_ERR_INVALID_PARTITIONS = 37,
  RD_KAFKA_RESP_ERR_INVALID_REPLICATION_FACTOR = 38,
  RD_KAFKA_RESP_ERR_INVALID_REPLICA_ASSIGNMENT = 39,
  RD_KAFKA_RESP_ERR_INVALID_CONFIG = 40,
  RD_KAFKA_RESP_ERR_NOT_CONTROLLER = 41,
  RD_KAFKA_RESP_ERR_INVALID_REQUEST = 42,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_FOR_MESSAGE_FORMAT = 43,
  RD_KAFKA_RESP_ERR_POLICY_VIOLATION = 44,
  RD_KAFKA_RESP_ERR_OUT_OF_ORDER_SEQUENCE_NUMBER = 45,
  RD_KAFKA_RESP_ERR_DUPLICATE_SEQUENCE_NUMBER = 46,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_EPOCH = 47,
  RD_KAFKA_RESP_ERR_INVALID_TXN_STATE = 48,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_ID_MAPPING = 49,
  RD_KAFKA_RESP_ERR_INVALID_TRANSACTION_TIMEOUT = 50,
  RD_KAFKA_RESP_ERR_CONCURRENT_TRANSACTIONS = 51,
  RD_KAFKA_RESP_ERR_TRANSACTION_COORDINATOR_FENCED = 52,
  RD_KAFKA_RESP_ERR_TRANSACTIONAL_ID_AUTHORIZATION_FAILED = 53,
  RD_KAFKA_RESP_ERR_SECURITY_DISABLED = 54,
  RD_KAFKA_RESP_ERR_OPERATION_NOT_ATTEMPTED = 55,
  RD_KAFKA_RESP_ERR_KAFKA_STORAGE_ERROR = 56,
  RD_KAFKA_RESP_ERR_LOG_DIR_NOT_FOUND = 57,
  RD_KAFKA_RESP_ERR_SASL_AUTHENTICATION_FAILED = 58,
  RD_KAFKA_RESP_ERR_UNKNOWN_PRODUCER_ID = 59,
  RD_KAFKA_RESP_ERR_REASSIGNMENT_IN_PROGRESS = 60,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTH_DISABLED = 61,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_NOT_FOUND = 62,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_OWNER_MISMATCH = 63,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_REQUEST_NOT_ALLOWED = 64,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTHORIZATION_FAILED = 65,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_EXPIRED = 66,
  RD_KAFKA_RESP_ERR_INVALID_PRINCIPAL_TYPE = 67,
  RD_KAFKA_RESP_ERR_NON_EMPTY_GROUP = 68,
  RD_KAFKA_RESP_ERR_GROUP_ID_NOT_FOUND = 69,
  RD_KAFKA_RESP_ERR_FETCH_SESSION_ID_NOT_FOUND = 70,
  RD_KAFKA_RESP_ERR_INVALID_FETCH_SESSION_EPOCH = 71,
  RD_KAFKA_RESP_ERR_LISTENER_NOT_FOUND = 72,
  RD_KAFKA_RESP_ERR_TOPIC_DELETION_DISABLED = 73,
  RD_KAFKA_RESP_ERR_FENCED_LEADER_EPOCH = 74,
  RD_KAFKA_RESP_ERR_UNKNOWN_LEADER_EPOCH = 75,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76,
  RD_KAFKA_RESP_ERR_STALE_BROKER_EPOCH = 77,
  RD_KAFKA_RESP_ERR_OFFSET_NOT_AVAILABLE = 78,
  RD_KAFKA_RESP_ERR_MEMBER_ID_REQUIRED = 79,
  RD_KAFKA_RESP_ERR_PREFERRED_LEADER_NOT_AVAILABLE = 80,
  RD_KAFKA_RESP_ERR_GROUP_MAX_SIZE_REACHED = 81,
  RD_KAFKA_RESP_ERR_FENCED_INSTANCE_ID = 82,
  RD_KAFKA_RESP_ERR_ELIGIBLE_LEADERS_NOT_AVAILABLE = 83,
  RD_KAFKA_RESP_ERR_ELECTION_NOT_NEEDED = 84,
  RD_KAFKA_RESP_ERR_NO_REASSIGNMENT_IN_PROGRESS = 85,
  RD_KAFKA_RESP_ERR_GROUP_SUBSCRIBED_TO_TOPIC = 86,
  RD_KAFKA_RESP_ERR_INVALID_RECORD = 87,
  RD_KAFKA_RESP_ERR_UNSTABLE_OFFSET_COMMIT = 88,
  RD_KAFKA_RESP_ERR_THROTTLING_QUOTA_EXCEEDED = 89,
  RD_KAFKA_RESP_ERR_PRODUCER_FENCED = 90,
  RD_KAFKA_RESP_ERR_RESOURCE_NOT_FOUND = 91,
  RD_KAFKA_RESP_ERR_DUPLICATE_RESOURCE = 92,
  RD_KAFKA_RESP_ERR_UNACCEPTABLE_CREDENTIAL = 93,
  RD_KAFKA_RESP_ERR_INCONSISTENT_VOTER_SET = 94,
  RD_KAFKA_RESP_ERR_INVALID_UPDATE_VERSION = 95,
  RD_KAFKA_RESP_ERR_FEATURE_UPDATE_FAILED = 96,
  RD_KAFKA_RESP_ERR_PRINCIPAL_DESERIALIZATION_FAILURE = 97,
  RD_KAFKA_RESP_ERR_END_ALL,
} rd_kafka_resp_err_t;
struct rd_kafka_err_desc {
  rd_kafka_resp_err_t code;
  char *name;
  char *desc;
};
void rd_kafka_get_err_descs(const struct rd_kafka_err_desc **errdescs, size_t *cntp);
const char *rd_kafka_err2str(rd_kafka_resp_err_t err);
const char *rd_kafka_err2name(rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_last_error(void);
rd_kafka_resp_err_t rd_kafka_errno2err(int errnox);
int rd_kafka_errno(void);
rd_kafka_resp_err_t rd_kafka_fatal_error(rd_kafka_t *rk, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_test_fatal_error(rd_kafka_t *rk, rd_kafka_resp_err_t err, const char *reason);
rd_kafka_resp_err_t rd_kafka_error_code(const rd_kafka_error_t *error);
const char *rd_kafka_error_name(const rd_kafka_error_t *error);
const char *rd_kafka_error_string(const rd_kafka_error_t *error);
int rd_kafka_error_is_fatal(const rd_kafka_error_t *error);
int rd_kafka_error_is_retriable(const rd_kafka_error_t *error);
int rd_kafka_error_txn_requires_abort(const rd_kafka_error_t *error);
void rd_kafka_error_destroy(rd_kafka_error_t *error);
rd_kafka_error_t *rd_kafka_error_new(rd_kafka_resp_err_t code, const char *fmt, ...);
typedef struct rd_kafka_topic_partition_s {
  char *topic;
  int32_t partition;
  int64_t offset;
  void *metadata;
  size_t metadata_size;
  void *opaque;
  rd_kafka_resp_err_t err;
  void *_private;
} rd_kafka_topic_partition_t;
void rd_kafka_topic_partition_destroy(rd_kafka_topic_partition_t *rktpar);
typedef struct rd_kafka_topic_partition_list_s {
  int cnt;
  int size;
  rd_kafka_topic_partition_t *elems;
} rd_kafka_topic_partition_list_t;
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_new(int size);
void rd_kafka_topic_partition_list_destroy(rd_kafka_topic_partition_list_t *rkparlist);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_add(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_add_range(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t start, int32_t stop);
int rd_kafka_topic_partition_list_del(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
int rd_kafka_topic_partition_list_del_by_idx(rd_kafka_topic_partition_list_t *rktparlist, int idx);
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_copy(const rd_kafka_topic_partition_list_t *src);
rd_kafka_resp_err_t rd_kafka_topic_partition_list_set_offset(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition, int64_t offset);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_find(const rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_sort(rd_kafka_topic_partition_list_t *rktparlist, int (*cmp)(const void *a, const void *b, void *cmp_opaque), void *cmp_opaque);
typedef enum rd_kafka_vtype_t {
  RD_KAFKA_VTYPE_END,
  RD_KAFKA_VTYPE_TOPIC,
  RD_KAFKA_VTYPE_RKT,
  RD_KAFKA_VTYPE_PARTITION,
  RD_KAFKA_VTYPE_VALUE,
  RD_KAFKA_VTYPE_KEY,
  RD_KAFKA_VTYPE_OPAQUE,
  RD_KAFKA_VTYPE_MSGFLAGS,
  RD_KAFKA_VTYPE_TIMESTAMP,
  RD_KAFKA_VTYPE_HEADER,
  RD_KAFKA_VTYPE_HEADERS,
} rd_kafka_vtype_t;
typedef struct rd_kafka_vu_s {
  rd_kafka_vtype_t vtype;
  union {
    char *cstr;
    rd_kafka_topic_t *rkt;
    int i;
    int32_t i32;
    int64_t i64;
    struct {
      void *ptr;
      size_t size;
    } mem;
    struct {
      char *name;
      void *val;
      ssize_t size;
    } header;
    rd_kafka_headers_t *headers;
    void *ptr;
    char _pad[64];
  } u;
} rd_kafka_vu_t;
rd_kafka_headers_t *rd_kafka_headers_new(size_t initial_count);
void rd_kafka_headers_destroy(rd_kafka_headers_t *hdrs);
rd_kafka_headers_t *rd_kafka_headers_copy(const rd_kafka_headers_t *src);
rd_kafka_resp_err_t rd_kafka_header_add(rd_kafka_headers_t *hdrs, const char *name, ssize_t name_size, const void *value, ssize_t value_size);
rd_kafka_resp_err_t rd_kafka_header_remove(rd_kafka_headers_t *hdrs, const char *name);
rd_kafka_resp_err_t rd_kafka_header_get_last(const rd_kafka_headers_t *hdrs, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get(const rd_kafka_headers_t *hdrs, size_t idx, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get_all(const rd_kafka_headers_t *hdrs, size_t idx, const char **namep, const void **valuep, size_t *sizep);
typedef struct rd_kafka_message_s {
  rd_kafka_resp_err_t err;
  rd_kafka_topic_t *rkt;
  int32_t partition;
  void *payload;
  size_t len;
  void *key;
  size_t key_len;
  int64_t offset;
  void *_private;
} rd_kafka_message_t;
void rd_kafka_message_destroy(rd_kafka_message_t *rkmessage);
const char *rd_kafka_message_errstr(const rd_kafka_message_t *rkmessage);
int64_t rd_kafka_message_timestamp(const rd_kafka_message_t *rkmessage, rd_kafka_timestamp_type_t *tstype);
int64_t rd_kafka_message_latency(const rd_kafka_message_t *rkmessage);
int32_t rd_kafka_message_broker_id(const rd_kafka_message_t *rkmessage);
rd_kafka_resp_err_t rd_kafka_message_headers(const rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
rd_kafka_resp_err_t rd_kafka_message_detach_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
void rd_kafka_message_set_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t *hdrs);
size_t rd_kafka_header_cnt(const rd_kafka_headers_t *hdrs);
typedef enum {
  RD_KAFKA_MSG_STATUS_NOT_PERSISTED = 0,
  RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED = 1,
  RD_KAFKA_MSG_STATUS_PERSISTED = 2,
} rd_kafka_msg_status_t;
rd_kafka_msg_status_t rd_kafka_message_status(const rd_kafka_message_t *rkmessage);
typedef enum {
  RD_KAFKA_CONF_UNKNOWN = (- 2),
  RD_KAFKA_CONF_INVALID = (- 1),
  RD_KAFKA_CONF_OK = 0,
} rd_kafka_conf_res_t;
rd_kafka_conf_t *rd_kafka_conf_new(void);
void rd_kafka_conf_destroy(rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup(const rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup_filter(const rd_kafka_conf_t *conf, size_t filter_cnt, const char **filter);
const rd_kafka_conf_t *rd_kafka_conf(rd_kafka_t *rk);
rd_kafka_conf_res_t rd_kafka_conf_set(rd_kafka_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_events(rd_kafka_conf_t *conf, int events);
void rd_kafka_conf_set_background_event_cb(rd_kafka_conf_t *conf, void (*event_cb)(rd_kafka_t *rk, rd_kafka_event_t *rkev, void *opaque));
void rd_kafka_conf_set_dr_cb(rd_kafka_conf_t *conf, void (*dr_cb)(rd_kafka_t *rk, void *payload, size_t len, rd_kafka_resp_err_t err, void *opaque, void *msg_opaque));
void rd_kafka_conf_set_dr_msg_cb(rd_kafka_conf_t *conf, void (*dr_msg_cb)(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_consume_cb(rd_kafka_conf_t *conf, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_rebalance_cb(rd_kafka_conf_t *conf, void (*rebalance_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *partitions, void *opaque));
void rd_kafka_conf_set_offset_commit_cb(rd_kafka_conf_t *conf, void (*offset_commit_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *opaque));
void rd_kafka_conf_set_error_cb(rd_kafka_conf_t *conf, void (*error_cb)(rd_kafka_t *rk, int err, const char *reason, void *opaque));
void rd_kafka_conf_set_throttle_cb(rd_kafka_conf_t *conf, void (*throttle_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int throttle_time_ms, void *opaque));
void rd_kafka_conf_set_log_cb(rd_kafka_conf_t *conf, void (*log_cb)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_conf_set_stats_cb(rd_kafka_conf_t *conf, int (*stats_cb)(rd_kafka_t *rk, char *json, size_t json_len, void *opaque));
void rd_kafka_conf_set_oauthbearer_token_refresh_cb(rd_kafka_conf_t *conf, void (*oauthbearer_token_refresh_cb)(rd_kafka_t *rk, const char *oauthbearer_config, void *opaque));
void rd_kafka_conf_set_socket_cb(rd_kafka_conf_t *conf, int (*socket_cb)(int domain, int type, int protocol, void *opaque));
void rd_kafka_conf_set_connect_cb(rd_kafka_conf_t *conf, int (*connect_cb)(int sockfd, const struct sockaddr *addr, int addrlen, const char *id, void *opaque));
void rd_kafka_conf_set_closesocket_cb(rd_kafka_conf_t *conf, int (*closesocket_cb)(int sockfd, void *opaque));
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert_verify_cb(rd_kafka_conf_t *conf, int (*ssl_cert_verify_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int *x509_error, int depth, const char *buf, size_t size, char *errstr, size_t errstr_size, void *opaque));
typedef enum rd_kafka_cert_type_t {
  RD_KAFKA_CERT_PUBLIC_KEY,
  RD_KAFKA_CERT_PRIVATE_KEY,
  RD_KAFKA_CERT_CA,
  RD_KAFKA_CERT__CNT,
} rd_kafka_cert_type_t;
typedef enum rd_kafka_cert_enc_t {
  RD_KAFKA_CERT_ENC_PKCS12,
  RD_KAFKA_CERT_ENC_DER,
  RD_KAFKA_CERT_ENC_PEM,
  RD_KAFKA_CERT_ENC__CNT,
} rd_kafka_cert_enc_t;
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert(rd_kafka_conf_t *conf, rd_kafka_cert_type_t cert_type, rd_kafka_cert_enc_t cert_enc, const void *buffer, size_t size, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_opaque(rd_kafka_conf_t *conf, void *opaque);
void *rd_kafka_opaque(const rd_kafka_t *rk);
void rd_kafka_conf_set_default_topic_conf(rd_kafka_conf_t *conf, rd_kafka_topic_conf_t *tconf);
rd_kafka_topic_conf_t *rd_kafka_conf_get_default_topic_conf(rd_kafka_conf_t *conf);
rd_kafka_conf_res_t rd_kafka_conf_get(const rd_kafka_conf_t *conf, const char *name, char *dest, size_t *dest_size);
rd_kafka_conf_res_t rd_kafka_topic_conf_get(const rd_kafka_topic_conf_t *conf, const char *name, char *dest, size_t *dest_size);
const char **rd_kafka_conf_dump(rd_kafka_conf_t *conf, size_t *cntp);
const char **rd_kafka_topic_conf_dump(rd_kafka_topic_conf_t *conf, size_t *cntp);
void rd_kafka_conf_dump_free(const char **arr, size_t cnt);
void rd_kafka_conf_properties_show(FILE *fp);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_new(void);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_dup(const rd_kafka_topic_conf_t *conf);
rd_kafka_topic_conf_t *rd_kafka_default_topic_conf_dup(rd_kafka_t *rk);
void rd_kafka_topic_conf_destroy(rd_kafka_topic_conf_t *topic_conf);
rd_kafka_conf_res_t rd_kafka_topic_conf_set(rd_kafka_topic_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_topic_conf_set_opaque(rd_kafka_topic_conf_t *conf, void *rkt_opaque);
void rd_kafka_topic_conf_set_partitioner_cb(rd_kafka_topic_conf_t *topic_conf, int32_t (*partitioner)(const rd_kafka_topic_t *rkt, const void *keydata, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque));
void rd_kafka_topic_conf_set_msg_order_cmp(rd_kafka_topic_conf_t *topic_conf, int (*msg_order_cmp)(const rd_kafka_message_t *a, const rd_kafka_message_t *b));
int rd_kafka_topic_partition_available(const rd_kafka_topic_t *rkt, int32_t partition);
int32_t rd_kafka_msg_partitioner_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
rd_kafka_t *rd_kafka_new(rd_kafka_type_t type, rd_kafka_conf_t *conf, char *errstr, size_t errstr_size);
void rd_kafka_destroy(rd_kafka_t *rk);
void rd_kafka_destroy_flags(rd_kafka_t *rk, int flags);
const char *rd_kafka_name(const rd_kafka_t *rk);
rd_kafka_type_t rd_kafka_type(const rd_kafka_t *rk);
char *rd_kafka_memberid(const rd_kafka_t *rk);
char *rd_kafka_clusterid(rd_kafka_t *rk, int timeout_ms);
int32_t rd_kafka_controllerid(rd_kafka_t *rk, int timeout_ms);
rd_kafka_topic_t *rd_kafka_topic_new(rd_kafka_t *rk, const char *topic, rd_kafka_topic_conf_t *conf);
void rd_kafka_topic_destroy(rd_kafka_topic_t *rkt);
const char *rd_kafka_topic_name(const rd_kafka_topic_t *rkt);
void *rd_kafka_topic_opaque(const rd_kafka_topic_t *rkt);
int rd_kafka_poll(rd_kafka_t *rk, int timeout_ms);
void rd_kafka_yield(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_pause_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_resume_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_query_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_get_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high);
rd_kafka_resp_err_t rd_kafka_offsets_for_times(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets, int timeout_ms);
void rd_kafka_mem_free(rd_kafka_t *rk, void *ptr);
rd_kafka_queue_t *rd_kafka_queue_new(rd_kafka_t *rk);
void rd_kafka_queue_destroy(rd_kafka_queue_t *rkqu);
rd_kafka_queue_t *rd_kafka_queue_get_main(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_consumer(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_partition(rd_kafka_t *rk, const char *topic, int32_t partition);
rd_kafka_queue_t *rd_kafka_queue_get_background(rd_kafka_t *rk);
void rd_kafka_queue_forward(rd_kafka_queue_t *src, rd_kafka_queue_t *dst);
rd_kafka_resp_err_t rd_kafka_set_log_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu);
size_t rd_kafka_queue_length(rd_kafka_queue_t *rkqu);
void rd_kafka_queue_io_event_enable(rd_kafka_queue_t *rkqu, int fd, const void *payload, size_t size);
void rd_kafka_queue_cb_event_enable(rd_kafka_queue_t *rkqu, void (*event_cb)(rd_kafka_t *rk, void *qev_opaque), void *qev_opaque);
void rd_kafka_queue_yield(rd_kafka_queue_t *rkqu);
int rd_kafka_consume_start(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
int rd_kafka_consume_start_queue(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, rd_kafka_queue_t *rkqu);
int rd_kafka_consume_stop(rd_kafka_topic_t *rkt, int32_t partition);
rd_kafka_resp_err_t rd_kafka_seek(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, int timeout_ms);
rd_kafka_error_t *rd_kafka_seek_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_message_t *rd_kafka_consume(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms);
ssize_t rd_kafka_consume_batch(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_message_t *rd_kafka_consume_queue(rd_kafka_queue_t *rkqu, int timeout_ms);
ssize_t rd_kafka_consume_batch_queue(rd_kafka_queue_t *rkqu, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback_queue(rd_kafka_queue_t *rkqu, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_offset_store(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
rd_kafka_resp_err_t rd_kafka_offsets_store(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets);
rd_kafka_resp_err_t rd_kafka_subscribe(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *topics);
rd_kafka_resp_err_t rd_kafka_unsubscribe(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_subscription(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **topics);
rd_kafka_message_t *rd_kafka_consumer_poll(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_consumer_close(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_incremental_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_error_t *rd_kafka_incremental_unassign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
const char *rd_kafka_rebalance_protocol(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_assignment(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **partitions);
int rd_kafka_assignment_lost(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_commit(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, int async);
rd_kafka_resp_err_t rd_kafka_commit_message(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, int async);
rd_kafka_resp_err_t rd_kafka_commit_queue(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_queue_t *rkqu, void (*cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_committed(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_position(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata(rd_kafka_t *rk);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new(const char *group_id);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new_with_genid(const char *group_id, int32_t generation_id, const char *member_id, const char *group_instance_id);
void rd_kafka_consumer_group_metadata_destroy(rd_kafka_consumer_group_metadata_t *);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_write(const rd_kafka_consumer_group_metadata_t *cgmd, void **bufferp, size_t *sizep);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_read(rd_kafka_consumer_group_metadata_t **cgmdp, const void *buffer, size_t size);
int rd_kafka_produce(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, void *payload, size_t len, const void *key, size_t keylen, void *msg_opaque);
rd_kafka_resp_err_t rd_kafka_producev(rd_kafka_t *rk, ...);
rd_kafka_error_t *rd_kafka_produceva(rd_kafka_t *rk, const rd_kafka_vu_t *vus, size_t cnt);
int rd_kafka_produce_batch(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, rd_kafka_message_t *rkmessages, int message_cnt);
rd_kafka_resp_err_t rd_kafka_flush(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_purge(rd_kafka_t *rk, int purge_flags);
typedef struct rd_kafka_metadata_broker {
  int32_t id;
  char *host;
  int port;
} rd_kafka_metadata_broker_t;
typedef struct rd_kafka_metadata_partition {
  int32_t id;
  rd_kafka_resp_err_t err;
  int32_t leader;
  int replica_cnt;
  int32_t *replicas;
  int isr_cnt;
  int32_t *isrs;
} rd_kafka_metadata_partition_t;
typedef struct rd_kafka_metadata_topic {
  char *topic;
  int partition_cnt;
  struct rd_kafka_metadata_partition *partitions;
  rd_kafka_resp_err_t err;
} rd_kafka_metadata_topic_t;
typedef struct rd_kafka_metadata {
  int broker_cnt;
  struct rd_kafka_metadata_broker *brokers;
  int topic_cnt;
  struct rd_kafka_metadata_topic *topics;
  int32_t orig_broker_id;
  char *orig_broker_name;
} rd_kafka_metadata_t;
rd_kafka_resp_err_t rd_kafka_metadata(rd_kafka_t *rk, int all_topics, rd_kafka_topic_t *only_rkt, const struct rd_kafka_metadata **metadatap, int timeout_ms);
void rd_kafka_metadata_destroy(const struct rd_kafka_metadata *metadata);
struct rd_kafka_group_member_info {
  char *member_id;
  char *client_id;
  char *client_host;
  void *member_metadata;
  int member_metadata_size;
  void *member_assignment;
  int member_assignment_size;
};
struct rd_kafka_group_info {
  struct rd_kafka_metadata_broker broker;
  char *group;
  rd_kafka_resp_err_t err;
  char *state;
  char *protocol_type;
  char *protocol;
  struct rd_kafka_group_member_info *members;
  int member_cnt;
};
struct rd_kafka_group_list {
  struct rd_kafka_group_info *groups;
  int group_cnt;
};
rd_kafka_resp_err_t rd_kafka_list_groups(rd_kafka_t *rk, const char *group, const struct rd_kafka_group_list **grplistp, int timeout_ms);
void rd_kafka_group_list_destroy(const struct rd_kafka_group_list *grplist);
int rd_kafka_brokers_add(rd_kafka_t *rk, const char *brokerlist);
void rd_kafka_set_logger(rd_kafka_t *rk, void (*func)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_set_log_level(rd_kafka_t *rk, int level);
void rd_kafka_log_print(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
void rd_kafka_log_syslog(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
int rd_kafka_outq_len(rd_kafka_t *rk);
void rd_kafka_dump(FILE *fp, rd_kafka_t *rk);
int rd_kafka_thread_cnt(void);
typedef enum rd_kafka_thread_type_t {
  RD_KAFKA_THREAD_MAIN,
  RD_KAFKA_THREAD_BACKGROUND,
  RD_KAFKA_THREAD_BROKER,
} rd_kafka_thread_type_t;
int rd_kafka_wait_destroyed(int timeout_ms);
int rd_kafka_unittest(void);
rd_kafka_resp_err_t rd_kafka_poll_set_consumer(rd_kafka_t *rk);
typedef int rd_kafka_event_type_t;
rd_kafka_event_type_t rd_kafka_event_type(const rd_kafka_event_t *rkev);
const char *rd_kafka_event_name(const rd_kafka_event_t *rkev);
void rd_kafka_event_destroy(rd_kafka_event_t *rkev);
const rd_kafka_message_t *rd_kafka_event_message_next(rd_kafka_event_t *rkev);
size_t rd_kafka_event_message_array(rd_kafka_event_t *rkev, const rd_kafka_message_t **rkmessages, size_t size);
size_t rd_kafka_event_message_count(rd_kafka_event_t *rkev);
const char *rd_kafka_event_config_string(rd_kafka_event_t *rkev);
rd_kafka_resp_err_t rd_kafka_event_error(rd_kafka_event_t *rkev);
const char *rd_kafka_event_error_string(rd_kafka_event_t *rkev);
int rd_kafka_event_error_is_fatal(rd_kafka_event_t *rkev);
void *rd_kafka_event_opaque(rd_kafka_event_t *rkev);
int rd_kafka_event_log(rd_kafka_event_t *rkev, const char **fac, const char **str, int *level);
int rd_kafka_event_debug_contexts(rd_kafka_event_t *rkev, char *dst, size_t dstsize);
const char *rd_kafka_event_stats(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_list_t *rd_kafka_event_topic_partition_list(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_t *rd_kafka_event_topic_partition(rd_kafka_event_t *rkev);
typedef rd_kafka_event_t rd_kafka_CreateTopics_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteTopics_result_t;
typedef rd_kafka_event_t rd_kafka_CreatePartitions_result_t;
typedef rd_kafka_event_t rd_kafka_AlterConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteRecords_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteGroups_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteConsumerGroupOffsets_result_t;
const rd_kafka_CreateTopics_result_t *rd_kafka_event_CreateTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteTopics_result_t *rd_kafka_event_DeleteTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_CreatePartitions_result_t *rd_kafka_event_CreatePartitions_result(rd_kafka_event_t *rkev);
const rd_kafka_AlterConfigs_result_t *rd_kafka_event_AlterConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeConfigs_result_t *rd_kafka_event_DescribeConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteRecords_result_t *rd_kafka_event_DeleteRecords_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteGroups_result_t *rd_kafka_event_DeleteGroups_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteConsumerGroupOffsets_result_t *rd_kafka_event_DeleteConsumerGroupOffsets_result(rd_kafka_event_t *rkev);
rd_kafka_event_t *rd_kafka_queue_poll(rd_kafka_queue_t *rkqu, int timeout_ms);
int rd_kafka_queue_poll_callback(rd_kafka_queue_t *rkqu, int timeout_ms);
typedef rd_kafka_resp_err_t (rd_kafka_plugin_f_conf_init_t)(rd_kafka_conf_t *conf, void **plug_opaquep, char *errstr, size_t errstr_size);
typedef rd_kafka_conf_res_t (rd_kafka_interceptor_f_on_conf_set_t)(rd_kafka_conf_t *conf, const char *name, const char *val, char *errstr, size_t errstr_size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_dup_t)(rd_kafka_conf_t *new_conf, const rd_kafka_conf_t *old_conf, size_t filter_cnt, const char **filter, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_destroy_t)(void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_new_t)(rd_kafka_t *rk, const rd_kafka_conf_t *conf, void *ic_opaque, char *errstr, size_t errstr_size);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_destroy_t)(rd_kafka_t *rk, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_send_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_acknowledgement_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_consume_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_commit_t)(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_request_sent_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_start_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_exit_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_set(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_set_t *on_conf_set, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_dup(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_dup_t *on_conf_dup, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_destroy(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_destroy_t *on_conf_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_new(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_new_t *on_new, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_destroy(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_destroy_t *on_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_send(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_send_t *on_send, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_acknowledgement(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_acknowledgement_t *on_acknowledgement, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_consume(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_consume_t *on_consume, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_commit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_commit_t *on_commit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_request_sent(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_request_sent_t *on_request_sent, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_start(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_start_t *on_thread_start, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_exit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_exit_t *on_thread_exit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_topic_result_error(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_error_string(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_name(const rd_kafka_topic_result_t *topicres);
const rd_kafka_error_t *rd_kafka_group_result_error(const rd_kafka_group_result_t *groupres);
const char *rd_kafka_group_result_name(const rd_kafka_group_result_t *groupres);
const rd_kafka_topic_partition_list_t *rd_kafka_group_result_partitions(const rd_kafka_group_result_t *groupres);
typedef enum rd_kafka_admin_op_t {
  RD_KAFKA_ADMIN_OP_ANY = 0,
  RD_KAFKA_ADMIN_OP_CREATETOPICS,
  RD_KAFKA_ADMIN_OP_DELETETOPICS,
  RD_KAFKA_ADMIN_OP_CREATEPARTITIONS,
  RD_KAFKA_ADMIN_OP_ALTERCONFIGS,
  RD_KAFKA_ADMIN_OP_DESCRIBECONFIGS,
  RD_KAFKA_ADMIN_OP_DELETERECORDS,
  RD_KAFKA_ADMIN_OP_DELETEGROUPS,
  RD_KAFKA_ADMIN_OP_DELETECONSUMERGROUPOFFSETS,
  RD_KAFKA_ADMIN_OP__CNT,
} rd_kafka_admin_op_t;
typedef struct rd_kafka_AdminOptions_s rd_kafka_AdminOptions_t;
rd_kafka_AdminOptions_t *rd_kafka_AdminOptions_new(rd_kafka_t *rk, rd_kafka_admin_op_t for_api);
void rd_kafka_AdminOptions_destroy(rd_kafka_AdminOptions_t *options);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_request_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_operation_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_validate_only(rd_kafka_AdminOptions_t *options, int true_or_false, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_broker(rd_kafka_AdminOptions_t *options, int32_t broker_id, char *errstr, size_t errstr_size);
void rd_kafka_AdminOptions_set_opaque(rd_kafka_AdminOptions_t *options, void *ev_opaque);
typedef struct rd_kafka_NewTopic_s rd_kafka_NewTopic_t;
rd_kafka_NewTopic_t *rd_kafka_NewTopic_new(const char *topic, int num_partitions, int replication_factor, char *errstr, size_t errstr_size);
void rd_kafka_NewTopic_destroy(rd_kafka_NewTopic_t *new_topic);
void rd_kafka_NewTopic_destroy_array(rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_replica_assignment(rd_kafka_NewTopic_t *new_topic, int32_t partition, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_config(rd_kafka_NewTopic_t *new_topic, const char *name, const char *value);
void rd_kafka_CreateTopics(rd_kafka_t *rk, rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreateTopics_result_topics(const rd_kafka_CreateTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteTopic_s rd_kafka_DeleteTopic_t;
rd_kafka_DeleteTopic_t *rd_kafka_DeleteTopic_new(const char *topic);
void rd_kafka_DeleteTopic_destroy(rd_kafka_DeleteTopic_t *del_topic);
void rd_kafka_DeleteTopic_destroy_array(rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt);
void rd_kafka_DeleteTopics(rd_kafka_t *rk, rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_DeleteTopics_result_topics(const rd_kafka_DeleteTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_NewPartitions_s rd_kafka_NewPartitions_t;
rd_kafka_NewPartitions_t *rd_kafka_NewPartitions_new(const char *topic, size_t new_total_cnt, char *errstr, size_t errstr_size);
void rd_kafka_NewPartitions_destroy(rd_kafka_NewPartitions_t *new_parts);
void rd_kafka_NewPartitions_destroy_array(rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt);
rd_kafka_resp_err_t rd_kafka_NewPartitions_set_replica_assignment(rd_kafka_NewPartitions_t *new_parts, int32_t new_partition_idx, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
void rd_kafka_CreatePartitions(rd_kafka_t *rk, rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreatePartitions_result_topics(const rd_kafka_CreatePartitions_result_t *result, size_t *cntp);
typedef enum rd_kafka_ConfigSource_t {
  RD_KAFKA_CONFIG_SOURCE_UNKNOWN_CONFIG = 0,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG = 1,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG = 2,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG = 3,
  RD_KAFKA_CONFIG_SOURCE_STATIC_BROKER_CONFIG = 4,
  RD_KAFKA_CONFIG_SOURCE_DEFAULT_CONFIG = 5,
  RD_KAFKA_CONFIG_SOURCE__CNT,
} rd_kafka_ConfigSource_t;
const char *rd_kafka_ConfigSource_name(rd_kafka_ConfigSource_t confsource);
typedef struct rd_kafka_ConfigEntry_s rd_kafka_ConfigEntry_t;
const char *rd_kafka_ConfigEntry_name(const rd_kafka_ConfigEntry_t *entry);
const char *rd_kafka_ConfigEntry_value(const rd_kafka_ConfigEntry_t *entry);
rd_kafka_ConfigSource_t rd_kafka_ConfigEntry_source(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_read_only(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_default(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_sensitive(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_synonym(const rd_kafka_ConfigEntry_t *entry);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigEntry_synonyms(const rd_kafka_ConfigEntry_t *entry, size_t *cntp);
typedef enum rd_kafka_ResourceType_t {
  RD_KAFKA_RESOURCE_UNKNOWN = 0,
  RD_KAFKA_RESOURCE_ANY = 1,
  RD_KAFKA_RESOURCE_TOPIC = 2,
  RD_KAFKA_RESOURCE_GROUP = 3,
  RD_KAFKA_RESOURCE_BROKER = 4,
  RD_KAFKA_RESOURCE__CNT,
} rd_kafka_ResourceType_t;
const char *rd_kafka_ResourceType_name(rd_kafka_ResourceType_t restype);
typedef struct rd_kafka_ConfigResource_s rd_kafka_ConfigResource_t;
rd_kafka_ConfigResource_t *rd_kafka_ConfigResource_new(rd_kafka_ResourceType_t restype, const char *resname);
void rd_kafka_ConfigResource_destroy(rd_kafka_ConfigResource_t *config);
void rd_kafka_ConfigResource_destroy_array(rd_kafka_ConfigResource_t **config, size_t config_cnt);
rd_kafka_resp_err_t rd_kafka_ConfigResource_set_config(rd_kafka_ConfigResource_t *config, const char *name, const char *value);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigResource_configs(const rd_kafka_ConfigResource_t *config, size_t *cntp);
rd_kafka_ResourceType_t rd_kafka_ConfigResource_type(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_name(const rd_kafka_ConfigResource_t *config);
rd_kafka_resp_err_t rd_kafka_ConfigResource_error(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_error_string(const rd_kafka_ConfigResource_t *config);
void rd_kafka_AlterConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_AlterConfigs_result_resources(const rd_kafka_AlterConfigs_result_t *result, size_t *cntp);
void rd_kafka_DescribeConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_DescribeConfigs_result_resources(const rd_kafka_DescribeConfigs_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteRecords_s rd_kafka_DeleteRecords_t;
rd_kafka_DeleteRecords_t *rd_kafka_DeleteRecords_new(const rd_kafka_topic_partition_list_t *before_offsets);
void rd_kafka_DeleteRecords_destroy(rd_kafka_DeleteRecords_t *del_records);
void rd_kafka_DeleteRecords_destroy_array(rd_kafka_DeleteRecords_t **del_records, size_t del_record_cnt);
void rd_kafka_DeleteRecords(rd_kafka_t *rk, rd_kafka_DeleteRecords_t **del_records, size_t del_record_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_partition_list_t *rd_kafka_DeleteRecords_result_offsets(const rd_kafka_DeleteRecords_result_t *result);
typedef struct rd_kafka_DeleteGroup_s rd_kafka_DeleteGroup_t;
rd_kafka_DeleteGroup_t *rd_kafka_DeleteGroup_new(const char *group);
void rd_kafka_DeleteGroup_destroy(rd_kafka_DeleteGroup_t *del_group);
void rd_kafka_DeleteGroup_destroy_array(rd_kafka_DeleteGroup_t **del_groups, size_t del_group_cnt);
void rd_kafka_DeleteGroups(rd_kafka_t *rk, rd_kafka_DeleteGroup_t **del_groups, size_t del_group_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_DeleteGroups_result_groups(const rd_kafka_DeleteGroups_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteConsumerGroupOffsets_s rd_kafka_DeleteConsumerGroupOffsets_t;
rd_kafka_DeleteConsumerGroupOffsets_t *rd_kafka_DeleteConsumerGroupOffsets_new(const char *group, const rd_kafka_topic_partition_list_t *partitions);
void rd_kafka_DeleteConsumerGroupOffsets_destroy(rd_kafka_DeleteConsumerGroupOffsets_t *del_grpoffsets);
void rd_kafka_DeleteConsumerGroupOffsets_destroy_array(rd_kafka_DeleteConsumerGroupOffsets_t **del_grpoffsets, size_t del_grpoffset_cnt);
void rd_kafka_DeleteConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_DeleteConsumerGroupOffsets_t **del_grpoffsets, size_t del_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_DeleteConsumerGroupOffsets_result_groups(const rd_kafka_DeleteConsumerGroupOffsets_result_t *result, size_t *cntp);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token(rd_kafka_t *rk, const char *token_value, int64_t md_lifetime_ms, const char *md_principal_name, const char **extensions, size_t extension_size, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token_failure(rd_kafka_t *rk, const char *errstr);
rd_kafka_error_t *rd_kafka_init_transactions(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_begin_transaction(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_send_offsets_to_transaction(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, const rd_kafka_consumer_group_metadata_t *cgmetadata, int timeout_ms);
rd_kafka_error_t *rd_kafka_commit_transaction(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_abort_transaction(rd_kafka_t *rk, int timeout_ms);
typedef struct rd_kafka_mock_cluster_s rd_kafka_mock_cluster_t;
rd_kafka_mock_cluster_t *rd_kafka_mock_cluster_new(rd_kafka_t *rk, int broker_cnt);
void rd_kafka_mock_cluster_destroy(rd_kafka_mock_cluster_t *mcluster);
rd_kafka_t *rd_kafka_mock_cluster_handle(const rd_kafka_mock_cluster_t *mcluster);
rd_kafka_mock_cluster_t *rd_kafka_handle_mock_cluster(const rd_kafka_t *rk);
const char *rd_kafka_mock_cluster_bootstraps(const rd_kafka_mock_cluster_t *mcluster);
void rd_kafka_mock_clear_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey);
void rd_kafka_mock_push_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, ...);
void rd_kafka_mock_push_request_errors_array(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, const rd_kafka_resp_err_t *errors);
rd_kafka_resp_err_t rd_kafka_mock_broker_push_request_errors(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int16_t ApiKey, size_t cnt, ...);
void rd_kafka_mock_topic_set_error(rd_kafka_mock_cluster_t *mcluster, const char *topic, rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_mock_topic_create(rd_kafka_mock_cluster_t *mcluster, const char *topic, int partition_cnt, int replication_factor);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_leader(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower_wmarks(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int64_t lo, int64_t hi);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_down(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_up(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rtt(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int rtt_ms);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rack(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, const char *rack);
rd_kafka_resp_err_t rd_kafka_mock_coordinator_set(rd_kafka_mock_cluster_t *mcluster, const char *key_type, const char *key, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_set_apiversion(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, int16_t MinVersion, int16_t MaxVersion);
'
rdkafka.h, rdkafka_mock.h

RD_KAFKA_VERSION

public RD_KAFKA_VERSION = 17170943

librdkafka version

Interpreted as hex MM.mm.rr.xx:

  • MM = Major
  • mm = minor
  • rr = revision
  • xx = pre-release id (0xff is the final release)

E.g.: 0x000801ff = 0.8.1

Remarks
This value should only be used during compile time, for runtime checks of version use rd_kafka_version()

RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE

public RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76

Unsupported compression type

RD_KAFKA_RESP_ERR_END_ALL

public RD_KAFKA_RESP_ERR_END_ALL = 98
enum rd_kafka_resp_err_t

RD_KAFKA_ADMIN_OP__CNT

public RD_KAFKA_ADMIN_OP__CNT = 9

Number of ops defined

RD_KAFKA_CDEF

public RD_KAFKA_CDEF = 'typedef long int ssize_t;
typedef struct _IO_FILE FILE;
typedef long int mode_t;
typedef signed int int16_t;
typedef unsigned int uint16_t;
typedef signed int int32_t;
typedef signed long int int64_t;
int rd_kafka_version(void);
const char *rd_kafka_version_str(void);
typedef enum rd_kafka_type_t {
  RD_KAFKA_PRODUCER,
  RD_KAFKA_CONSUMER,
} rd_kafka_type_t;
typedef enum rd_kafka_timestamp_type_t {
  RD_KAFKA_TIMESTAMP_NOT_AVAILABLE,
  RD_KAFKA_TIMESTAMP_CREATE_TIME,
  RD_KAFKA_TIMESTAMP_LOG_APPEND_TIME,
} rd_kafka_timestamp_type_t;
const char *rd_kafka_get_debug_contexts(void);
typedef struct rd_kafka_s rd_kafka_t;
typedef struct rd_kafka_topic_s rd_kafka_topic_t;
typedef struct rd_kafka_conf_s rd_kafka_conf_t;
typedef struct rd_kafka_topic_conf_s rd_kafka_topic_conf_t;
typedef struct rd_kafka_queue_s rd_kafka_queue_t;
typedef struct rd_kafka_op_s rd_kafka_event_t;
typedef struct rd_kafka_topic_result_s rd_kafka_topic_result_t;
typedef struct rd_kafka_consumer_group_metadata_s rd_kafka_consumer_group_metadata_t;
typedef struct rd_kafka_error_s {
  unsigned int code;
  char *errstr;
  unsigned char fatal;
  unsigned char retriable;
  unsigned char txn_requires_abort;
} rd_kafka_error_t;
typedef struct rd_kafka_headers_s rd_kafka_headers_t;
typedef struct rd_kafka_group_result_s rd_kafka_group_result_t;
typedef enum {
  RD_KAFKA_RESP_ERR__BEGIN = (- 200),
  RD_KAFKA_RESP_ERR__BAD_MSG = (- 199),
  RD_KAFKA_RESP_ERR__BAD_COMPRESSION = (- 198),
  RD_KAFKA_RESP_ERR__DESTROY = (- 197),
  RD_KAFKA_RESP_ERR__FAIL = (- 196),
  RD_KAFKA_RESP_ERR__TRANSPORT = (- 195),
  RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE = (- 194),
  RD_KAFKA_RESP_ERR__RESOLVE = (- 193),
  RD_KAFKA_RESP_ERR__MSG_TIMED_OUT = (- 192),
  RD_KAFKA_RESP_ERR__PARTITION_EOF = (- 191),
  RD_KAFKA_RESP_ERR__UNKNOWN_PARTITION = (- 190),
  RD_KAFKA_RESP_ERR__FS = (- 189),
  RD_KAFKA_RESP_ERR__UNKNOWN_TOPIC = (- 188),
  RD_KAFKA_RESP_ERR__ALL_BROKERS_DOWN = (- 187),
  RD_KAFKA_RESP_ERR__INVALID_ARG = (- 186),
  RD_KAFKA_RESP_ERR__TIMED_OUT = (- 185),
  RD_KAFKA_RESP_ERR__QUEUE_FULL = (- 184),
  RD_KAFKA_RESP_ERR__ISR_INSUFF = (- 183),
  RD_KAFKA_RESP_ERR__NODE_UPDATE = (- 182),
  RD_KAFKA_RESP_ERR__SSL = (- 181),
  RD_KAFKA_RESP_ERR__WAIT_COORD = (- 180),
  RD_KAFKA_RESP_ERR__UNKNOWN_GROUP = (- 179),
  RD_KAFKA_RESP_ERR__IN_PROGRESS = (- 178),
  RD_KAFKA_RESP_ERR__PREV_IN_PROGRESS = (- 177),
  RD_KAFKA_RESP_ERR__EXISTING_SUBSCRIPTION = (- 176),
  RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS = (- 175),
  RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS = (- 174),
  RD_KAFKA_RESP_ERR__CONFLICT = (- 173),
  RD_KAFKA_RESP_ERR__STATE = (- 172),
  RD_KAFKA_RESP_ERR__UNKNOWN_PROTOCOL = (- 171),
  RD_KAFKA_RESP_ERR__NOT_IMPLEMENTED = (- 170),
  RD_KAFKA_RESP_ERR__AUTHENTICATION = (- 169),
  RD_KAFKA_RESP_ERR__NO_OFFSET = (- 168),
  RD_KAFKA_RESP_ERR__OUTDATED = (- 167),
  RD_KAFKA_RESP_ERR__TIMED_OUT_QUEUE = (- 166),
  RD_KAFKA_RESP_ERR__UNSUPPORTED_FEATURE = (- 165),
  RD_KAFKA_RESP_ERR__WAIT_CACHE = (- 164),
  RD_KAFKA_RESP_ERR__INTR = (- 163),
  RD_KAFKA_RESP_ERR__KEY_SERIALIZATION = (- 162),
  RD_KAFKA_RESP_ERR__VALUE_SERIALIZATION = (- 161),
  RD_KAFKA_RESP_ERR__KEY_DESERIALIZATION = (- 160),
  RD_KAFKA_RESP_ERR__VALUE_DESERIALIZATION = (- 159),
  RD_KAFKA_RESP_ERR__PARTIAL = (- 158),
  RD_KAFKA_RESP_ERR__READ_ONLY = (- 157),
  RD_KAFKA_RESP_ERR__NOENT = (- 156),
  RD_KAFKA_RESP_ERR__UNDERFLOW = (- 155),
  RD_KAFKA_RESP_ERR__INVALID_TYPE = (- 154),
  RD_KAFKA_RESP_ERR__RETRY = (- 153),
  RD_KAFKA_RESP_ERR__PURGE_QUEUE = (- 152),
  RD_KAFKA_RESP_ERR__PURGE_INFLIGHT = (- 151),
  RD_KAFKA_RESP_ERR__FATAL = (- 150),
  RD_KAFKA_RESP_ERR__INCONSISTENT = (- 149),
  RD_KAFKA_RESP_ERR__GAPLESS_GUARANTEE = (- 148),
  RD_KAFKA_RESP_ERR__MAX_POLL_EXCEEDED = (- 147),
  RD_KAFKA_RESP_ERR__UNKNOWN_BROKER = (- 146),
  RD_KAFKA_RESP_ERR__NOT_CONFIGURED = (- 145),
  RD_KAFKA_RESP_ERR__FENCED = (- 144),
  RD_KAFKA_RESP_ERR__APPLICATION = (- 143),
  RD_KAFKA_RESP_ERR__ASSIGNMENT_LOST = (- 142),
  RD_KAFKA_RESP_ERR__NOOP = (- 141),
  RD_KAFKA_RESP_ERR__AUTO_OFFSET_RESET = (- 140),
  RD_KAFKA_RESP_ERR__END = (- 100),
  RD_KAFKA_RESP_ERR_UNKNOWN = (- 1),
  RD_KAFKA_RESP_ERR_NO_ERROR = 0,
  RD_KAFKA_RESP_ERR_OFFSET_OUT_OF_RANGE = 1,
  RD_KAFKA_RESP_ERR_INVALID_MSG = 2,
  RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_OR_PART = 3,
  RD_KAFKA_RESP_ERR_INVALID_MSG_SIZE = 4,
  RD_KAFKA_RESP_ERR_LEADER_NOT_AVAILABLE = 5,
  RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION = 6,
  RD_KAFKA_RESP_ERR_REQUEST_TIMED_OUT = 7,
  RD_KAFKA_RESP_ERR_BROKER_NOT_AVAILABLE = 8,
  RD_KAFKA_RESP_ERR_REPLICA_NOT_AVAILABLE = 9,
  RD_KAFKA_RESP_ERR_MSG_SIZE_TOO_LARGE = 10,
  RD_KAFKA_RESP_ERR_STALE_CTRL_EPOCH = 11,
  RD_KAFKA_RESP_ERR_OFFSET_METADATA_TOO_LARGE = 12,
  RD_KAFKA_RESP_ERR_NETWORK_EXCEPTION = 13,
  RD_KAFKA_RESP_ERR_COORDINATOR_LOAD_IN_PROGRESS = 14,
  RD_KAFKA_RESP_ERR_COORDINATOR_NOT_AVAILABLE = 15,
  RD_KAFKA_RESP_ERR_NOT_COORDINATOR = 16,
  RD_KAFKA_RESP_ERR_TOPIC_EXCEPTION = 17,
  RD_KAFKA_RESP_ERR_RECORD_LIST_TOO_LARGE = 18,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS = 19,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS_AFTER_APPEND = 20,
  RD_KAFKA_RESP_ERR_INVALID_REQUIRED_ACKS = 21,
  RD_KAFKA_RESP_ERR_ILLEGAL_GENERATION = 22,
  RD_KAFKA_RESP_ERR_INCONSISTENT_GROUP_PROTOCOL = 23,
  RD_KAFKA_RESP_ERR_INVALID_GROUP_ID = 24,
  RD_KAFKA_RESP_ERR_UNKNOWN_MEMBER_ID = 25,
  RD_KAFKA_RESP_ERR_INVALID_SESSION_TIMEOUT = 26,
  RD_KAFKA_RESP_ERR_REBALANCE_IN_PROGRESS = 27,
  RD_KAFKA_RESP_ERR_INVALID_COMMIT_OFFSET_SIZE = 28,
  RD_KAFKA_RESP_ERR_TOPIC_AUTHORIZATION_FAILED = 29,
  RD_KAFKA_RESP_ERR_GROUP_AUTHORIZATION_FAILED = 30,
  RD_KAFKA_RESP_ERR_CLUSTER_AUTHORIZATION_FAILED = 31,
  RD_KAFKA_RESP_ERR_INVALID_TIMESTAMP = 32,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_SASL_MECHANISM = 33,
  RD_KAFKA_RESP_ERR_ILLEGAL_SASL_STATE = 34,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_VERSION = 35,
  RD_KAFKA_RESP_ERR_TOPIC_ALREADY_EXISTS = 36,
  RD_KAFKA_RESP_ERR_INVALID_PARTITIONS = 37,
  RD_KAFKA_RESP_ERR_INVALID_REPLICATION_FACTOR = 38,
  RD_KAFKA_RESP_ERR_INVALID_REPLICA_ASSIGNMENT = 39,
  RD_KAFKA_RESP_ERR_INVALID_CONFIG = 40,
  RD_KAFKA_RESP_ERR_NOT_CONTROLLER = 41,
  RD_KAFKA_RESP_ERR_INVALID_REQUEST = 42,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_FOR_MESSAGE_FORMAT = 43,
  RD_KAFKA_RESP_ERR_POLICY_VIOLATION = 44,
  RD_KAFKA_RESP_ERR_OUT_OF_ORDER_SEQUENCE_NUMBER = 45,
  RD_KAFKA_RESP_ERR_DUPLICATE_SEQUENCE_NUMBER = 46,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_EPOCH = 47,
  RD_KAFKA_RESP_ERR_INVALID_TXN_STATE = 48,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_ID_MAPPING = 49,
  RD_KAFKA_RESP_ERR_INVALID_TRANSACTION_TIMEOUT = 50,
  RD_KAFKA_RESP_ERR_CONCURRENT_TRANSACTIONS = 51,
  RD_KAFKA_RESP_ERR_TRANSACTION_COORDINATOR_FENCED = 52,
  RD_KAFKA_RESP_ERR_TRANSACTIONAL_ID_AUTHORIZATION_FAILED = 53,
  RD_KAFKA_RESP_ERR_SECURITY_DISABLED = 54,
  RD_KAFKA_RESP_ERR_OPERATION_NOT_ATTEMPTED = 55,
  RD_KAFKA_RESP_ERR_KAFKA_STORAGE_ERROR = 56,
  RD_KAFKA_RESP_ERR_LOG_DIR_NOT_FOUND = 57,
  RD_KAFKA_RESP_ERR_SASL_AUTHENTICATION_FAILED = 58,
  RD_KAFKA_RESP_ERR_UNKNOWN_PRODUCER_ID = 59,
  RD_KAFKA_RESP_ERR_REASSIGNMENT_IN_PROGRESS = 60,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTH_DISABLED = 61,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_NOT_FOUND = 62,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_OWNER_MISMATCH = 63,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_REQUEST_NOT_ALLOWED = 64,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTHORIZATION_FAILED = 65,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_EXPIRED = 66,
  RD_KAFKA_RESP_ERR_INVALID_PRINCIPAL_TYPE = 67,
  RD_KAFKA_RESP_ERR_NON_EMPTY_GROUP = 68,
  RD_KAFKA_RESP_ERR_GROUP_ID_NOT_FOUND = 69,
  RD_KAFKA_RESP_ERR_FETCH_SESSION_ID_NOT_FOUND = 70,
  RD_KAFKA_RESP_ERR_INVALID_FETCH_SESSION_EPOCH = 71,
  RD_KAFKA_RESP_ERR_LISTENER_NOT_FOUND = 72,
  RD_KAFKA_RESP_ERR_TOPIC_DELETION_DISABLED = 73,
  RD_KAFKA_RESP_ERR_FENCED_LEADER_EPOCH = 74,
  RD_KAFKA_RESP_ERR_UNKNOWN_LEADER_EPOCH = 75,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76,
  RD_KAFKA_RESP_ERR_STALE_BROKER_EPOCH = 77,
  RD_KAFKA_RESP_ERR_OFFSET_NOT_AVAILABLE = 78,
  RD_KAFKA_RESP_ERR_MEMBER_ID_REQUIRED = 79,
  RD_KAFKA_RESP_ERR_PREFERRED_LEADER_NOT_AVAILABLE = 80,
  RD_KAFKA_RESP_ERR_GROUP_MAX_SIZE_REACHED = 81,
  RD_KAFKA_RESP_ERR_FENCED_INSTANCE_ID = 82,
  RD_KAFKA_RESP_ERR_ELIGIBLE_LEADERS_NOT_AVAILABLE = 83,
  RD_KAFKA_RESP_ERR_ELECTION_NOT_NEEDED = 84,
  RD_KAFKA_RESP_ERR_NO_REASSIGNMENT_IN_PROGRESS = 85,
  RD_KAFKA_RESP_ERR_GROUP_SUBSCRIBED_TO_TOPIC = 86,
  RD_KAFKA_RESP_ERR_INVALID_RECORD = 87,
  RD_KAFKA_RESP_ERR_UNSTABLE_OFFSET_COMMIT = 88,
  RD_KAFKA_RESP_ERR_THROTTLING_QUOTA_EXCEEDED = 89,
  RD_KAFKA_RESP_ERR_PRODUCER_FENCED = 90,
  RD_KAFKA_RESP_ERR_RESOURCE_NOT_FOUND = 91,
  RD_KAFKA_RESP_ERR_DUPLICATE_RESOURCE = 92,
  RD_KAFKA_RESP_ERR_UNACCEPTABLE_CREDENTIAL = 93,
  RD_KAFKA_RESP_ERR_INCONSISTENT_VOTER_SET = 94,
  RD_KAFKA_RESP_ERR_INVALID_UPDATE_VERSION = 95,
  RD_KAFKA_RESP_ERR_FEATURE_UPDATE_FAILED = 96,
  RD_KAFKA_RESP_ERR_PRINCIPAL_DESERIALIZATION_FAILURE = 97,
  RD_KAFKA_RESP_ERR_END_ALL,
} rd_kafka_resp_err_t;
struct rd_kafka_err_desc {
  rd_kafka_resp_err_t code;
  char *name;
  char *desc;
};
void rd_kafka_get_err_descs(const struct rd_kafka_err_desc **errdescs, size_t *cntp);
const char *rd_kafka_err2str(rd_kafka_resp_err_t err);
const char *rd_kafka_err2name(rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_last_error(void);
rd_kafka_resp_err_t rd_kafka_errno2err(int errnox);
int rd_kafka_errno(void);
rd_kafka_resp_err_t rd_kafka_fatal_error(rd_kafka_t *rk, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_test_fatal_error(rd_kafka_t *rk, rd_kafka_resp_err_t err, const char *reason);
rd_kafka_resp_err_t rd_kafka_error_code(const rd_kafka_error_t *error);
const char *rd_kafka_error_name(const rd_kafka_error_t *error);
const char *rd_kafka_error_string(const rd_kafka_error_t *error);
int rd_kafka_error_is_fatal(const rd_kafka_error_t *error);
int rd_kafka_error_is_retriable(const rd_kafka_error_t *error);
int rd_kafka_error_txn_requires_abort(const rd_kafka_error_t *error);
void rd_kafka_error_destroy(rd_kafka_error_t *error);
rd_kafka_error_t *rd_kafka_error_new(rd_kafka_resp_err_t code, const char *fmt, ...);
typedef struct rd_kafka_topic_partition_s {
  char *topic;
  int32_t partition;
  int64_t offset;
  void *metadata;
  size_t metadata_size;
  void *opaque;
  rd_kafka_resp_err_t err;
  void *_private;
} rd_kafka_topic_partition_t;
void rd_kafka_topic_partition_destroy(rd_kafka_topic_partition_t *rktpar);
typedef struct rd_kafka_topic_partition_list_s {
  int cnt;
  int size;
  rd_kafka_topic_partition_t *elems;
} rd_kafka_topic_partition_list_t;
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_new(int size);
void rd_kafka_topic_partition_list_destroy(rd_kafka_topic_partition_list_t *rkparlist);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_add(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_add_range(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t start, int32_t stop);
int rd_kafka_topic_partition_list_del(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
int rd_kafka_topic_partition_list_del_by_idx(rd_kafka_topic_partition_list_t *rktparlist, int idx);
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_copy(const rd_kafka_topic_partition_list_t *src);
rd_kafka_resp_err_t rd_kafka_topic_partition_list_set_offset(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition, int64_t offset);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_find(const rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_sort(rd_kafka_topic_partition_list_t *rktparlist, int (*cmp)(const void *a, const void *b, void *cmp_opaque), void *cmp_opaque);
typedef enum rd_kafka_vtype_t {
  RD_KAFKA_VTYPE_END,
  RD_KAFKA_VTYPE_TOPIC,
  RD_KAFKA_VTYPE_RKT,
  RD_KAFKA_VTYPE_PARTITION,
  RD_KAFKA_VTYPE_VALUE,
  RD_KAFKA_VTYPE_KEY,
  RD_KAFKA_VTYPE_OPAQUE,
  RD_KAFKA_VTYPE_MSGFLAGS,
  RD_KAFKA_VTYPE_TIMESTAMP,
  RD_KAFKA_VTYPE_HEADER,
  RD_KAFKA_VTYPE_HEADERS,
} rd_kafka_vtype_t;
typedef struct rd_kafka_vu_s {
  rd_kafka_vtype_t vtype;
  union {
    char *cstr;
    rd_kafka_topic_t *rkt;
    int i;
    int32_t i32;
    int64_t i64;
    struct {
      void *ptr;
      size_t size;
    } mem;
    struct {
      char *name;
      void *val;
      ssize_t size;
    } header;
    rd_kafka_headers_t *headers;
    void *ptr;
    char _pad[64];
  } u;
} rd_kafka_vu_t;
rd_kafka_headers_t *rd_kafka_headers_new(size_t initial_count);
void rd_kafka_headers_destroy(rd_kafka_headers_t *hdrs);
rd_kafka_headers_t *rd_kafka_headers_copy(const rd_kafka_headers_t *src);
rd_kafka_resp_err_t rd_kafka_header_add(rd_kafka_headers_t *hdrs, const char *name, ssize_t name_size, const void *value, ssize_t value_size);
rd_kafka_resp_err_t rd_kafka_header_remove(rd_kafka_headers_t *hdrs, const char *name);
rd_kafka_resp_err_t rd_kafka_header_get_last(const rd_kafka_headers_t *hdrs, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get(const rd_kafka_headers_t *hdrs, size_t idx, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get_all(const rd_kafka_headers_t *hdrs, size_t idx, const char **namep, const void **valuep, size_t *sizep);
typedef struct rd_kafka_message_s {
  rd_kafka_resp_err_t err;
  rd_kafka_topic_t *rkt;
  int32_t partition;
  void *payload;
  size_t len;
  void *key;
  size_t key_len;
  int64_t offset;
  void *_private;
} rd_kafka_message_t;
void rd_kafka_message_destroy(rd_kafka_message_t *rkmessage);
const char *rd_kafka_message_errstr(const rd_kafka_message_t *rkmessage);
int64_t rd_kafka_message_timestamp(const rd_kafka_message_t *rkmessage, rd_kafka_timestamp_type_t *tstype);
int64_t rd_kafka_message_latency(const rd_kafka_message_t *rkmessage);
int32_t rd_kafka_message_broker_id(const rd_kafka_message_t *rkmessage);
rd_kafka_resp_err_t rd_kafka_message_headers(const rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
rd_kafka_resp_err_t rd_kafka_message_detach_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
void rd_kafka_message_set_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t *hdrs);
size_t rd_kafka_header_cnt(const rd_kafka_headers_t *hdrs);
typedef enum {
  RD_KAFKA_MSG_STATUS_NOT_PERSISTED = 0,
  RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED = 1,
  RD_KAFKA_MSG_STATUS_PERSISTED = 2,
} rd_kafka_msg_status_t;
rd_kafka_msg_status_t rd_kafka_message_status(const rd_kafka_message_t *rkmessage);
typedef enum {
  RD_KAFKA_CONF_UNKNOWN = (- 2),
  RD_KAFKA_CONF_INVALID = (- 1),
  RD_KAFKA_CONF_OK = 0,
} rd_kafka_conf_res_t;
rd_kafka_conf_t *rd_kafka_conf_new(void);
void rd_kafka_conf_destroy(rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup(const rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup_filter(const rd_kafka_conf_t *conf, size_t filter_cnt, const char **filter);
const rd_kafka_conf_t *rd_kafka_conf(rd_kafka_t *rk);
rd_kafka_conf_res_t rd_kafka_conf_set(rd_kafka_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_events(rd_kafka_conf_t *conf, int events);
void rd_kafka_conf_set_background_event_cb(rd_kafka_conf_t *conf, void (*event_cb)(rd_kafka_t *rk, rd_kafka_event_t *rkev, void *opaque));
void rd_kafka_conf_set_dr_cb(rd_kafka_conf_t *conf, void (*dr_cb)(rd_kafka_t *rk, void *payload, size_t len, rd_kafka_resp_err_t err, void *opaque, void *msg_opaque));
void rd_kafka_conf_set_dr_msg_cb(rd_kafka_conf_t *conf, void (*dr_msg_cb)(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_consume_cb(rd_kafka_conf_t *conf, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_rebalance_cb(rd_kafka_conf_t *conf, void (*rebalance_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *partitions, void *opaque));
void rd_kafka_conf_set_offset_commit_cb(rd_kafka_conf_t *conf, void (*offset_commit_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *opaque));
void rd_kafka_conf_set_error_cb(rd_kafka_conf_t *conf, void (*error_cb)(rd_kafka_t *rk, int err, const char *reason, void *opaque));
void rd_kafka_conf_set_throttle_cb(rd_kafka_conf_t *conf, void (*throttle_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int throttle_time_ms, void *opaque));
void rd_kafka_conf_set_log_cb(rd_kafka_conf_t *conf, void (*log_cb)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_conf_set_stats_cb(rd_kafka_conf_t *conf, int (*stats_cb)(rd_kafka_t *rk, char *json, size_t json_len, void *opaque));
void rd_kafka_conf_set_oauthbearer_token_refresh_cb(rd_kafka_conf_t *conf, void (*oauthbearer_token_refresh_cb)(rd_kafka_t *rk, const char *oauthbearer_config, void *opaque));
void rd_kafka_conf_set_socket_cb(rd_kafka_conf_t *conf, int (*socket_cb)(int domain, int type, int protocol, void *opaque));
void rd_kafka_conf_set_connect_cb(rd_kafka_conf_t *conf, int (*connect_cb)(int sockfd, const struct sockaddr *addr, int addrlen, const char *id, void *opaque));
void rd_kafka_conf_set_closesocket_cb(rd_kafka_conf_t *conf, int (*closesocket_cb)(int sockfd, void *opaque));
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert_verify_cb(rd_kafka_conf_t *conf, int (*ssl_cert_verify_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int *x509_error, int depth, const char *buf, size_t size, char *errstr, size_t errstr_size, void *opaque));
typedef enum rd_kafka_cert_type_t {
  RD_KAFKA_CERT_PUBLIC_KEY,
  RD_KAFKA_CERT_PRIVATE_KEY,
  RD_KAFKA_CERT_CA,
  RD_KAFKA_CERT__CNT,
} rd_kafka_cert_type_t;
typedef enum rd_kafka_cert_enc_t {
  RD_KAFKA_CERT_ENC_PKCS12,
  RD_KAFKA_CERT_ENC_DER,
  RD_KAFKA_CERT_ENC_PEM,
  RD_KAFKA_CERT_ENC__CNT,
} rd_kafka_cert_enc_t;
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert(rd_kafka_conf_t *conf, rd_kafka_cert_type_t cert_type, rd_kafka_cert_enc_t cert_enc, const void *buffer, size_t size, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_opaque(rd_kafka_conf_t *conf, void *opaque);
void *rd_kafka_opaque(const rd_kafka_t *rk);
void rd_kafka_conf_set_default_topic_conf(rd_kafka_conf_t *conf, rd_kafka_topic_conf_t *tconf);
rd_kafka_topic_conf_t *rd_kafka_conf_get_default_topic_conf(rd_kafka_conf_t *conf);
rd_kafka_conf_res_t rd_kafka_conf_get(const rd_kafka_conf_t *conf, const char *name, char *dest, size_t *dest_size);
rd_kafka_conf_res_t rd_kafka_topic_conf_get(const rd_kafka_topic_conf_t *conf, const char *name, char *dest, size_t *dest_size);
const char **rd_kafka_conf_dump(rd_kafka_conf_t *conf, size_t *cntp);
const char **rd_kafka_topic_conf_dump(rd_kafka_topic_conf_t *conf, size_t *cntp);
void rd_kafka_conf_dump_free(const char **arr, size_t cnt);
void rd_kafka_conf_properties_show(FILE *fp);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_new(void);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_dup(const rd_kafka_topic_conf_t *conf);
rd_kafka_topic_conf_t *rd_kafka_default_topic_conf_dup(rd_kafka_t *rk);
void rd_kafka_topic_conf_destroy(rd_kafka_topic_conf_t *topic_conf);
rd_kafka_conf_res_t rd_kafka_topic_conf_set(rd_kafka_topic_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_topic_conf_set_opaque(rd_kafka_topic_conf_t *conf, void *rkt_opaque);
void rd_kafka_topic_conf_set_partitioner_cb(rd_kafka_topic_conf_t *topic_conf, int32_t (*partitioner)(const rd_kafka_topic_t *rkt, const void *keydata, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque));
void rd_kafka_topic_conf_set_msg_order_cmp(rd_kafka_topic_conf_t *topic_conf, int (*msg_order_cmp)(const rd_kafka_message_t *a, const rd_kafka_message_t *b));
int rd_kafka_topic_partition_available(const rd_kafka_topic_t *rkt, int32_t partition);
int32_t rd_kafka_msg_partitioner_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
rd_kafka_t *rd_kafka_new(rd_kafka_type_t type, rd_kafka_conf_t *conf, char *errstr, size_t errstr_size);
void rd_kafka_destroy(rd_kafka_t *rk);
void rd_kafka_destroy_flags(rd_kafka_t *rk, int flags);
const char *rd_kafka_name(const rd_kafka_t *rk);
rd_kafka_type_t rd_kafka_type(const rd_kafka_t *rk);
char *rd_kafka_memberid(const rd_kafka_t *rk);
char *rd_kafka_clusterid(rd_kafka_t *rk, int timeout_ms);
int32_t rd_kafka_controllerid(rd_kafka_t *rk, int timeout_ms);
rd_kafka_topic_t *rd_kafka_topic_new(rd_kafka_t *rk, const char *topic, rd_kafka_topic_conf_t *conf);
void rd_kafka_topic_destroy(rd_kafka_topic_t *rkt);
const char *rd_kafka_topic_name(const rd_kafka_topic_t *rkt);
void *rd_kafka_topic_opaque(const rd_kafka_topic_t *rkt);
int rd_kafka_poll(rd_kafka_t *rk, int timeout_ms);
void rd_kafka_yield(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_pause_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_resume_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_query_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_get_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high);
rd_kafka_resp_err_t rd_kafka_offsets_for_times(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets, int timeout_ms);
void rd_kafka_mem_free(rd_kafka_t *rk, void *ptr);
rd_kafka_queue_t *rd_kafka_queue_new(rd_kafka_t *rk);
void rd_kafka_queue_destroy(rd_kafka_queue_t *rkqu);
rd_kafka_queue_t *rd_kafka_queue_get_main(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_consumer(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_partition(rd_kafka_t *rk, const char *topic, int32_t partition);
rd_kafka_queue_t *rd_kafka_queue_get_background(rd_kafka_t *rk);
void rd_kafka_queue_forward(rd_kafka_queue_t *src, rd_kafka_queue_t *dst);
rd_kafka_resp_err_t rd_kafka_set_log_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu);
size_t rd_kafka_queue_length(rd_kafka_queue_t *rkqu);
void rd_kafka_queue_io_event_enable(rd_kafka_queue_t *rkqu, int fd, const void *payload, size_t size);
void rd_kafka_queue_cb_event_enable(rd_kafka_queue_t *rkqu, void (*event_cb)(rd_kafka_t *rk, void *qev_opaque), void *qev_opaque);
void rd_kafka_queue_yield(rd_kafka_queue_t *rkqu);
int rd_kafka_consume_start(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
int rd_kafka_consume_start_queue(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, rd_kafka_queue_t *rkqu);
int rd_kafka_consume_stop(rd_kafka_topic_t *rkt, int32_t partition);
rd_kafka_resp_err_t rd_kafka_seek(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, int timeout_ms);
rd_kafka_error_t *rd_kafka_seek_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_message_t *rd_kafka_consume(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms);
ssize_t rd_kafka_consume_batch(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_message_t *rd_kafka_consume_queue(rd_kafka_queue_t *rkqu, int timeout_ms);
ssize_t rd_kafka_consume_batch_queue(rd_kafka_queue_t *rkqu, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback_queue(rd_kafka_queue_t *rkqu, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_offset_store(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
rd_kafka_resp_err_t rd_kafka_offsets_store(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets);
rd_kafka_resp_err_t rd_kafka_subscribe(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *topics);
rd_kafka_resp_err_t rd_kafka_unsubscribe(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_subscription(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **topics);
rd_kafka_message_t *rd_kafka_consumer_poll(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_consumer_close(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_incremental_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_error_t *rd_kafka_incremental_unassign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
const char *rd_kafka_rebalance_protocol(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_assignment(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **partitions);
int rd_kafka_assignment_lost(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_commit(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, int async);
rd_kafka_resp_err_t rd_kafka_commit_message(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, int async);
rd_kafka_resp_err_t rd_kafka_commit_queue(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_queue_t *rkqu, void (*cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_committed(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_position(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata(rd_kafka_t *rk);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new(const char *group_id);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new_with_genid(const char *group_id, int32_t generation_id, const char *member_id, const char *group_instance_id);
void rd_kafka_consumer_group_metadata_destroy(rd_kafka_consumer_group_metadata_t *);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_write(const rd_kafka_consumer_group_metadata_t *cgmd, void **bufferp, size_t *sizep);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_read(rd_kafka_consumer_group_metadata_t **cgmdp, const void *buffer, size_t size);
int rd_kafka_produce(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, void *payload, size_t len, const void *key, size_t keylen, void *msg_opaque);
rd_kafka_resp_err_t rd_kafka_producev(rd_kafka_t *rk, ...);
rd_kafka_error_t *rd_kafka_produceva(rd_kafka_t *rk, const rd_kafka_vu_t *vus, size_t cnt);
int rd_kafka_produce_batch(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, rd_kafka_message_t *rkmessages, int message_cnt);
rd_kafka_resp_err_t rd_kafka_flush(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_purge(rd_kafka_t *rk, int purge_flags);
typedef struct rd_kafka_metadata_broker {
  int32_t id;
  char *host;
  int port;
} rd_kafka_metadata_broker_t;
typedef struct rd_kafka_metadata_partition {
  int32_t id;
  rd_kafka_resp_err_t err;
  int32_t leader;
  int replica_cnt;
  int32_t *replicas;
  int isr_cnt;
  int32_t *isrs;
} rd_kafka_metadata_partition_t;
typedef struct rd_kafka_metadata_topic {
  char *topic;
  int partition_cnt;
  struct rd_kafka_metadata_partition *partitions;
  rd_kafka_resp_err_t err;
} rd_kafka_metadata_topic_t;
typedef struct rd_kafka_metadata {
  int broker_cnt;
  struct rd_kafka_metadata_broker *brokers;
  int topic_cnt;
  struct rd_kafka_metadata_topic *topics;
  int32_t orig_broker_id;
  char *orig_broker_name;
} rd_kafka_metadata_t;
rd_kafka_resp_err_t rd_kafka_metadata(rd_kafka_t *rk, int all_topics, rd_kafka_topic_t *only_rkt, const struct rd_kafka_metadata **metadatap, int timeout_ms);
void rd_kafka_metadata_destroy(const struct rd_kafka_metadata *metadata);
struct rd_kafka_group_member_info {
  char *member_id;
  char *client_id;
  char *client_host;
  void *member_metadata;
  int member_metadata_size;
  void *member_assignment;
  int member_assignment_size;
};
struct rd_kafka_group_info {
  struct rd_kafka_metadata_broker broker;
  char *group;
  rd_kafka_resp_err_t err;
  char *state;
  char *protocol_type;
  char *protocol;
  struct rd_kafka_group_member_info *members;
  int member_cnt;
};
struct rd_kafka_group_list {
  struct rd_kafka_group_info *groups;
  int group_cnt;
};
rd_kafka_resp_err_t rd_kafka_list_groups(rd_kafka_t *rk, const char *group, const struct rd_kafka_group_list **grplistp, int timeout_ms);
void rd_kafka_group_list_destroy(const struct rd_kafka_group_list *grplist);
int rd_kafka_brokers_add(rd_kafka_t *rk, const char *brokerlist);
void rd_kafka_set_logger(rd_kafka_t *rk, void (*func)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_set_log_level(rd_kafka_t *rk, int level);
void rd_kafka_log_print(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
void rd_kafka_log_syslog(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
int rd_kafka_outq_len(rd_kafka_t *rk);
void rd_kafka_dump(FILE *fp, rd_kafka_t *rk);
int rd_kafka_thread_cnt(void);
typedef enum rd_kafka_thread_type_t {
  RD_KAFKA_THREAD_MAIN,
  RD_KAFKA_THREAD_BACKGROUND,
  RD_KAFKA_THREAD_BROKER,
} rd_kafka_thread_type_t;
int rd_kafka_wait_destroyed(int timeout_ms);
int rd_kafka_unittest(void);
rd_kafka_resp_err_t rd_kafka_poll_set_consumer(rd_kafka_t *rk);
typedef int rd_kafka_event_type_t;
rd_kafka_event_type_t rd_kafka_event_type(const rd_kafka_event_t *rkev);
const char *rd_kafka_event_name(const rd_kafka_event_t *rkev);
void rd_kafka_event_destroy(rd_kafka_event_t *rkev);
const rd_kafka_message_t *rd_kafka_event_message_next(rd_kafka_event_t *rkev);
size_t rd_kafka_event_message_array(rd_kafka_event_t *rkev, const rd_kafka_message_t **rkmessages, size_t size);
size_t rd_kafka_event_message_count(rd_kafka_event_t *rkev);
const char *rd_kafka_event_config_string(rd_kafka_event_t *rkev);
rd_kafka_resp_err_t rd_kafka_event_error(rd_kafka_event_t *rkev);
const char *rd_kafka_event_error_string(rd_kafka_event_t *rkev);
int rd_kafka_event_error_is_fatal(rd_kafka_event_t *rkev);
void *rd_kafka_event_opaque(rd_kafka_event_t *rkev);
int rd_kafka_event_log(rd_kafka_event_t *rkev, const char **fac, const char **str, int *level);
int rd_kafka_event_debug_contexts(rd_kafka_event_t *rkev, char *dst, size_t dstsize);
const char *rd_kafka_event_stats(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_list_t *rd_kafka_event_topic_partition_list(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_t *rd_kafka_event_topic_partition(rd_kafka_event_t *rkev);
typedef rd_kafka_event_t rd_kafka_CreateTopics_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteTopics_result_t;
typedef rd_kafka_event_t rd_kafka_CreatePartitions_result_t;
typedef rd_kafka_event_t rd_kafka_AlterConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteRecords_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteGroups_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteConsumerGroupOffsets_result_t;
const rd_kafka_CreateTopics_result_t *rd_kafka_event_CreateTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteTopics_result_t *rd_kafka_event_DeleteTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_CreatePartitions_result_t *rd_kafka_event_CreatePartitions_result(rd_kafka_event_t *rkev);
const rd_kafka_AlterConfigs_result_t *rd_kafka_event_AlterConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeConfigs_result_t *rd_kafka_event_DescribeConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteRecords_result_t *rd_kafka_event_DeleteRecords_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteGroups_result_t *rd_kafka_event_DeleteGroups_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteConsumerGroupOffsets_result_t *rd_kafka_event_DeleteConsumerGroupOffsets_result(rd_kafka_event_t *rkev);
rd_kafka_event_t *rd_kafka_queue_poll(rd_kafka_queue_t *rkqu, int timeout_ms);
int rd_kafka_queue_poll_callback(rd_kafka_queue_t *rkqu, int timeout_ms);
typedef rd_kafka_resp_err_t (rd_kafka_plugin_f_conf_init_t)(rd_kafka_conf_t *conf, void **plug_opaquep, char *errstr, size_t errstr_size);
typedef rd_kafka_conf_res_t (rd_kafka_interceptor_f_on_conf_set_t)(rd_kafka_conf_t *conf, const char *name, const char *val, char *errstr, size_t errstr_size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_dup_t)(rd_kafka_conf_t *new_conf, const rd_kafka_conf_t *old_conf, size_t filter_cnt, const char **filter, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_destroy_t)(void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_new_t)(rd_kafka_t *rk, const rd_kafka_conf_t *conf, void *ic_opaque, char *errstr, size_t errstr_size);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_destroy_t)(rd_kafka_t *rk, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_send_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_acknowledgement_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_consume_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_commit_t)(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_request_sent_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_response_received_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, int64_t rtt, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_start_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_exit_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_set(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_set_t *on_conf_set, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_dup(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_dup_t *on_conf_dup, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_destroy(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_destroy_t *on_conf_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_new(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_new_t *on_new, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_destroy(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_destroy_t *on_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_send(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_send_t *on_send, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_acknowledgement(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_acknowledgement_t *on_acknowledgement, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_consume(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_consume_t *on_consume, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_commit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_commit_t *on_commit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_request_sent(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_request_sent_t *on_request_sent, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_response_received(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_response_received_t *on_response_received, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_start(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_start_t *on_thread_start, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_exit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_exit_t *on_thread_exit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_topic_result_error(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_error_string(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_name(const rd_kafka_topic_result_t *topicres);
const rd_kafka_error_t *rd_kafka_group_result_error(const rd_kafka_group_result_t *groupres);
const char *rd_kafka_group_result_name(const rd_kafka_group_result_t *groupres);
const rd_kafka_topic_partition_list_t *rd_kafka_group_result_partitions(const rd_kafka_group_result_t *groupres);
typedef enum rd_kafka_admin_op_t {
  RD_KAFKA_ADMIN_OP_ANY = 0,
  RD_KAFKA_ADMIN_OP_CREATETOPICS,
  RD_KAFKA_ADMIN_OP_DELETETOPICS,
  RD_KAFKA_ADMIN_OP_CREATEPARTITIONS,
  RD_KAFKA_ADMIN_OP_ALTERCONFIGS,
  RD_KAFKA_ADMIN_OP_DESCRIBECONFIGS,
  RD_KAFKA_ADMIN_OP_DELETERECORDS,
  RD_KAFKA_ADMIN_OP_DELETEGROUPS,
  RD_KAFKA_ADMIN_OP_DELETECONSUMERGROUPOFFSETS,
  RD_KAFKA_ADMIN_OP__CNT,
} rd_kafka_admin_op_t;
typedef struct rd_kafka_AdminOptions_s rd_kafka_AdminOptions_t;
rd_kafka_AdminOptions_t *rd_kafka_AdminOptions_new(rd_kafka_t *rk, rd_kafka_admin_op_t for_api);
void rd_kafka_AdminOptions_destroy(rd_kafka_AdminOptions_t *options);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_request_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_operation_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_validate_only(rd_kafka_AdminOptions_t *options, int true_or_false, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_broker(rd_kafka_AdminOptions_t *options, int32_t broker_id, char *errstr, size_t errstr_size);
void rd_kafka_AdminOptions_set_opaque(rd_kafka_AdminOptions_t *options, void *ev_opaque);
typedef struct rd_kafka_NewTopic_s rd_kafka_NewTopic_t;
rd_kafka_NewTopic_t *rd_kafka_NewTopic_new(const char *topic, int num_partitions, int replication_factor, char *errstr, size_t errstr_size);
void rd_kafka_NewTopic_destroy(rd_kafka_NewTopic_t *new_topic);
void rd_kafka_NewTopic_destroy_array(rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_replica_assignment(rd_kafka_NewTopic_t *new_topic, int32_t partition, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_config(rd_kafka_NewTopic_t *new_topic, const char *name, const char *value);
void rd_kafka_CreateTopics(rd_kafka_t *rk, rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreateTopics_result_topics(const rd_kafka_CreateTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteTopic_s rd_kafka_DeleteTopic_t;
rd_kafka_DeleteTopic_t *rd_kafka_DeleteTopic_new(const char *topic);
void rd_kafka_DeleteTopic_destroy(rd_kafka_DeleteTopic_t *del_topic);
void rd_kafka_DeleteTopic_destroy_array(rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt);
void rd_kafka_DeleteTopics(rd_kafka_t *rk, rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_DeleteTopics_result_topics(const rd_kafka_DeleteTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_NewPartitions_s rd_kafka_NewPartitions_t;
rd_kafka_NewPartitions_t *rd_kafka_NewPartitions_new(const char *topic, size_t new_total_cnt, char *errstr, size_t errstr_size);
void rd_kafka_NewPartitions_destroy(rd_kafka_NewPartitions_t *new_parts);
void rd_kafka_NewPartitions_destroy_array(rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt);
rd_kafka_resp_err_t rd_kafka_NewPartitions_set_replica_assignment(rd_kafka_NewPartitions_t *new_parts, int32_t new_partition_idx, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
void rd_kafka_CreatePartitions(rd_kafka_t *rk, rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreatePartitions_result_topics(const rd_kafka_CreatePartitions_result_t *result, size_t *cntp);
typedef enum rd_kafka_ConfigSource_t {
  RD_KAFKA_CONFIG_SOURCE_UNKNOWN_CONFIG = 0,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG = 1,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG = 2,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG = 3,
  RD_KAFKA_CONFIG_SOURCE_STATIC_BROKER_CONFIG = 4,
  RD_KAFKA_CONFIG_SOURCE_DEFAULT_CONFIG = 5,
  RD_KAFKA_CONFIG_SOURCE__CNT,
} rd_kafka_ConfigSource_t;
const char *rd_kafka_ConfigSource_name(rd_kafka_ConfigSource_t confsource);
typedef struct rd_kafka_ConfigEntry_s rd_kafka_ConfigEntry_t;
const char *rd_kafka_ConfigEntry_name(const rd_kafka_ConfigEntry_t *entry);
const char *rd_kafka_ConfigEntry_value(const rd_kafka_ConfigEntry_t *entry);
rd_kafka_ConfigSource_t rd_kafka_ConfigEntry_source(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_read_only(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_default(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_sensitive(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_synonym(const rd_kafka_ConfigEntry_t *entry);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigEntry_synonyms(const rd_kafka_ConfigEntry_t *entry, size_t *cntp);
typedef enum rd_kafka_ResourceType_t {
  RD_KAFKA_RESOURCE_UNKNOWN = 0,
  RD_KAFKA_RESOURCE_ANY = 1,
  RD_KAFKA_RESOURCE_TOPIC = 2,
  RD_KAFKA_RESOURCE_GROUP = 3,
  RD_KAFKA_RESOURCE_BROKER = 4,
  RD_KAFKA_RESOURCE__CNT,
} rd_kafka_ResourceType_t;
const char *rd_kafka_ResourceType_name(rd_kafka_ResourceType_t restype);
typedef struct rd_kafka_ConfigResource_s rd_kafka_ConfigResource_t;
rd_kafka_ConfigResource_t *rd_kafka_ConfigResource_new(rd_kafka_ResourceType_t restype, const char *resname);
void rd_kafka_ConfigResource_destroy(rd_kafka_ConfigResource_t *config);
void rd_kafka_ConfigResource_destroy_array(rd_kafka_ConfigResource_t **config, size_t config_cnt);
rd_kafka_resp_err_t rd_kafka_ConfigResource_set_config(rd_kafka_ConfigResource_t *config, const char *name, const char *value);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigResource_configs(const rd_kafka_ConfigResource_t *config, size_t *cntp);
rd_kafka_ResourceType_t rd_kafka_ConfigResource_type(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_name(const rd_kafka_ConfigResource_t *config);
rd_kafka_resp_err_t rd_kafka_ConfigResource_error(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_error_string(const rd_kafka_ConfigResource_t *config);
void rd_kafka_AlterConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_AlterConfigs_result_resources(const rd_kafka_AlterConfigs_result_t *result, size_t *cntp);
void rd_kafka_DescribeConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_DescribeConfigs_result_resources(const rd_kafka_DescribeConfigs_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteRecords_s rd_kafka_DeleteRecords_t;
rd_kafka_DeleteRecords_t *rd_kafka_DeleteRecords_new(const rd_kafka_topic_partition_list_t *before_offsets);
void rd_kafka_DeleteRecords_destroy(rd_kafka_DeleteRecords_t *del_records);
void rd_kafka_DeleteRecords_destroy_array(rd_kafka_DeleteRecords_t **del_records, size_t del_record_cnt);
void rd_kafka_DeleteRecords(rd_kafka_t *rk, rd_kafka_DeleteRecords_t **del_records, size_t del_record_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_partition_list_t *rd_kafka_DeleteRecords_result_offsets(const rd_kafka_DeleteRecords_result_t *result);
typedef struct rd_kafka_DeleteGroup_s rd_kafka_DeleteGroup_t;
rd_kafka_DeleteGroup_t *rd_kafka_DeleteGroup_new(const char *group);
void rd_kafka_DeleteGroup_destroy(rd_kafka_DeleteGroup_t *del_group);
void rd_kafka_DeleteGroup_destroy_array(rd_kafka_DeleteGroup_t **del_groups, size_t del_group_cnt);
void rd_kafka_DeleteGroups(rd_kafka_t *rk, rd_kafka_DeleteGroup_t **del_groups, size_t del_group_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_DeleteGroups_result_groups(const rd_kafka_DeleteGroups_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteConsumerGroupOffsets_s rd_kafka_DeleteConsumerGroupOffsets_t;
rd_kafka_DeleteConsumerGroupOffsets_t *rd_kafka_DeleteConsumerGroupOffsets_new(const char *group, const rd_kafka_topic_partition_list_t *partitions);
void rd_kafka_DeleteConsumerGroupOffsets_destroy(rd_kafka_DeleteConsumerGroupOffsets_t *del_grpoffsets);
void rd_kafka_DeleteConsumerGroupOffsets_destroy_array(rd_kafka_DeleteConsumerGroupOffsets_t **del_grpoffsets, size_t del_grpoffset_cnt);
void rd_kafka_DeleteConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_DeleteConsumerGroupOffsets_t **del_grpoffsets, size_t del_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_DeleteConsumerGroupOffsets_result_groups(const rd_kafka_DeleteConsumerGroupOffsets_result_t *result, size_t *cntp);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token(rd_kafka_t *rk, const char *token_value, int64_t md_lifetime_ms, const char *md_principal_name, const char **extensions, size_t extension_size, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token_failure(rd_kafka_t *rk, const char *errstr);
rd_kafka_error_t *rd_kafka_init_transactions(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_begin_transaction(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_send_offsets_to_transaction(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, const rd_kafka_consumer_group_metadata_t *cgmetadata, int timeout_ms);
rd_kafka_error_t *rd_kafka_commit_transaction(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_abort_transaction(rd_kafka_t *rk, int timeout_ms);
typedef struct rd_kafka_mock_cluster_s rd_kafka_mock_cluster_t;
rd_kafka_mock_cluster_t *rd_kafka_mock_cluster_new(rd_kafka_t *rk, int broker_cnt);
void rd_kafka_mock_cluster_destroy(rd_kafka_mock_cluster_t *mcluster);
rd_kafka_t *rd_kafka_mock_cluster_handle(const rd_kafka_mock_cluster_t *mcluster);
rd_kafka_mock_cluster_t *rd_kafka_handle_mock_cluster(const rd_kafka_t *rk);
const char *rd_kafka_mock_cluster_bootstraps(const rd_kafka_mock_cluster_t *mcluster);
void rd_kafka_mock_clear_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey);
void rd_kafka_mock_push_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, ...);
void rd_kafka_mock_push_request_errors_array(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, const rd_kafka_resp_err_t *errors);
rd_kafka_resp_err_t rd_kafka_mock_broker_push_request_errors(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int16_t ApiKey, size_t cnt, ...);
void rd_kafka_mock_topic_set_error(rd_kafka_mock_cluster_t *mcluster, const char *topic, rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_mock_topic_create(rd_kafka_mock_cluster_t *mcluster, const char *topic, int partition_cnt, int replication_factor);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_leader(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower_wmarks(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int64_t lo, int64_t hi);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_down(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_up(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rtt(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int rtt_ms);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rack(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, const char *rack);
rd_kafka_resp_err_t rd_kafka_mock_coordinator_set(rd_kafka_mock_cluster_t *mcluster, const char *key_type, const char *key, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_set_apiversion(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, int16_t MinVersion, int16_t MaxVersion);
'
rdkafka.h, rdkafka_mock.h

RD_KAFKA_VERSION

public RD_KAFKA_VERSION = 17171199

librdkafka version

Interpreted as hex MM.mm.rr.xx:

  • MM = Major
  • mm = minor
  • rr = revision
  • xx = pre-release id (0xff is the final release)

E.g.: 0x000801ff = 0.8.1

Remarks
This value should only be used during compile time, for runtime checks of version use rd_kafka_version()

RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE

public RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76

Unsupported compression type

RD_KAFKA_RESP_ERR_END_ALL

public RD_KAFKA_RESP_ERR_END_ALL = 98
enum rd_kafka_resp_err_t

RD_KAFKA_ADMIN_OP__CNT

public RD_KAFKA_ADMIN_OP__CNT = 9

Number of ops defined

RD_KAFKA_CDEF

public RD_KAFKA_CDEF = 'typedef long int ssize_t;
typedef struct _IO_FILE FILE;
typedef long int mode_t;
typedef signed int int16_t;
typedef unsigned int uint16_t;
typedef signed int int32_t;
typedef signed long int int64_t;
int rd_kafka_version(void);
const char *rd_kafka_version_str(void);
typedef enum rd_kafka_type_t {
  RD_KAFKA_PRODUCER,
  RD_KAFKA_CONSUMER,
} rd_kafka_type_t;
typedef enum rd_kafka_timestamp_type_t {
  RD_KAFKA_TIMESTAMP_NOT_AVAILABLE,
  RD_KAFKA_TIMESTAMP_CREATE_TIME,
  RD_KAFKA_TIMESTAMP_LOG_APPEND_TIME,
} rd_kafka_timestamp_type_t;
const char *rd_kafka_get_debug_contexts(void);
typedef struct rd_kafka_s rd_kafka_t;
typedef struct rd_kafka_topic_s rd_kafka_topic_t;
typedef struct rd_kafka_conf_s rd_kafka_conf_t;
typedef struct rd_kafka_topic_conf_s rd_kafka_topic_conf_t;
typedef struct rd_kafka_queue_s rd_kafka_queue_t;
typedef struct rd_kafka_op_s rd_kafka_event_t;
typedef struct rd_kafka_topic_result_s rd_kafka_topic_result_t;
typedef struct rd_kafka_consumer_group_metadata_s rd_kafka_consumer_group_metadata_t;
typedef struct rd_kafka_error_s {
  unsigned int code;
  char *errstr;
  unsigned char fatal;
  unsigned char retriable;
  unsigned char txn_requires_abort;
} rd_kafka_error_t;
typedef struct rd_kafka_headers_s rd_kafka_headers_t;
typedef struct rd_kafka_group_result_s rd_kafka_group_result_t;
typedef enum {
  RD_KAFKA_RESP_ERR__BEGIN = (- 200),
  RD_KAFKA_RESP_ERR__BAD_MSG = (- 199),
  RD_KAFKA_RESP_ERR__BAD_COMPRESSION = (- 198),
  RD_KAFKA_RESP_ERR__DESTROY = (- 197),
  RD_KAFKA_RESP_ERR__FAIL = (- 196),
  RD_KAFKA_RESP_ERR__TRANSPORT = (- 195),
  RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE = (- 194),
  RD_KAFKA_RESP_ERR__RESOLVE = (- 193),
  RD_KAFKA_RESP_ERR__MSG_TIMED_OUT = (- 192),
  RD_KAFKA_RESP_ERR__PARTITION_EOF = (- 191),
  RD_KAFKA_RESP_ERR__UNKNOWN_PARTITION = (- 190),
  RD_KAFKA_RESP_ERR__FS = (- 189),
  RD_KAFKA_RESP_ERR__UNKNOWN_TOPIC = (- 188),
  RD_KAFKA_RESP_ERR__ALL_BROKERS_DOWN = (- 187),
  RD_KAFKA_RESP_ERR__INVALID_ARG = (- 186),
  RD_KAFKA_RESP_ERR__TIMED_OUT = (- 185),
  RD_KAFKA_RESP_ERR__QUEUE_FULL = (- 184),
  RD_KAFKA_RESP_ERR__ISR_INSUFF = (- 183),
  RD_KAFKA_RESP_ERR__NODE_UPDATE = (- 182),
  RD_KAFKA_RESP_ERR__SSL = (- 181),
  RD_KAFKA_RESP_ERR__WAIT_COORD = (- 180),
  RD_KAFKA_RESP_ERR__UNKNOWN_GROUP = (- 179),
  RD_KAFKA_RESP_ERR__IN_PROGRESS = (- 178),
  RD_KAFKA_RESP_ERR__PREV_IN_PROGRESS = (- 177),
  RD_KAFKA_RESP_ERR__EXISTING_SUBSCRIPTION = (- 176),
  RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS = (- 175),
  RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS = (- 174),
  RD_KAFKA_RESP_ERR__CONFLICT = (- 173),
  RD_KAFKA_RESP_ERR__STATE = (- 172),
  RD_KAFKA_RESP_ERR__UNKNOWN_PROTOCOL = (- 171),
  RD_KAFKA_RESP_ERR__NOT_IMPLEMENTED = (- 170),
  RD_KAFKA_RESP_ERR__AUTHENTICATION = (- 169),
  RD_KAFKA_RESP_ERR__NO_OFFSET = (- 168),
  RD_KAFKA_RESP_ERR__OUTDATED = (- 167),
  RD_KAFKA_RESP_ERR__TIMED_OUT_QUEUE = (- 166),
  RD_KAFKA_RESP_ERR__UNSUPPORTED_FEATURE = (- 165),
  RD_KAFKA_RESP_ERR__WAIT_CACHE = (- 164),
  RD_KAFKA_RESP_ERR__INTR = (- 163),
  RD_KAFKA_RESP_ERR__KEY_SERIALIZATION = (- 162),
  RD_KAFKA_RESP_ERR__VALUE_SERIALIZATION = (- 161),
  RD_KAFKA_RESP_ERR__KEY_DESERIALIZATION = (- 160),
  RD_KAFKA_RESP_ERR__VALUE_DESERIALIZATION = (- 159),
  RD_KAFKA_RESP_ERR__PARTIAL = (- 158),
  RD_KAFKA_RESP_ERR__READ_ONLY = (- 157),
  RD_KAFKA_RESP_ERR__NOENT = (- 156),
  RD_KAFKA_RESP_ERR__UNDERFLOW = (- 155),
  RD_KAFKA_RESP_ERR__INVALID_TYPE = (- 154),
  RD_KAFKA_RESP_ERR__RETRY = (- 153),
  RD_KAFKA_RESP_ERR__PURGE_QUEUE = (- 152),
  RD_KAFKA_RESP_ERR__PURGE_INFLIGHT = (- 151),
  RD_KAFKA_RESP_ERR__FATAL = (- 150),
  RD_KAFKA_RESP_ERR__INCONSISTENT = (- 149),
  RD_KAFKA_RESP_ERR__GAPLESS_GUARANTEE = (- 148),
  RD_KAFKA_RESP_ERR__MAX_POLL_EXCEEDED = (- 147),
  RD_KAFKA_RESP_ERR__UNKNOWN_BROKER = (- 146),
  RD_KAFKA_RESP_ERR__NOT_CONFIGURED = (- 145),
  RD_KAFKA_RESP_ERR__FENCED = (- 144),
  RD_KAFKA_RESP_ERR__APPLICATION = (- 143),
  RD_KAFKA_RESP_ERR__ASSIGNMENT_LOST = (- 142),
  RD_KAFKA_RESP_ERR__NOOP = (- 141),
  RD_KAFKA_RESP_ERR__AUTO_OFFSET_RESET = (- 140),
  RD_KAFKA_RESP_ERR__END = (- 100),
  RD_KAFKA_RESP_ERR_UNKNOWN = (- 1),
  RD_KAFKA_RESP_ERR_NO_ERROR = 0,
  RD_KAFKA_RESP_ERR_OFFSET_OUT_OF_RANGE = 1,
  RD_KAFKA_RESP_ERR_INVALID_MSG = 2,
  RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_OR_PART = 3,
  RD_KAFKA_RESP_ERR_INVALID_MSG_SIZE = 4,
  RD_KAFKA_RESP_ERR_LEADER_NOT_AVAILABLE = 5,
  RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION = 6,
  RD_KAFKA_RESP_ERR_REQUEST_TIMED_OUT = 7,
  RD_KAFKA_RESP_ERR_BROKER_NOT_AVAILABLE = 8,
  RD_KAFKA_RESP_ERR_REPLICA_NOT_AVAILABLE = 9,
  RD_KAFKA_RESP_ERR_MSG_SIZE_TOO_LARGE = 10,
  RD_KAFKA_RESP_ERR_STALE_CTRL_EPOCH = 11,
  RD_KAFKA_RESP_ERR_OFFSET_METADATA_TOO_LARGE = 12,
  RD_KAFKA_RESP_ERR_NETWORK_EXCEPTION = 13,
  RD_KAFKA_RESP_ERR_COORDINATOR_LOAD_IN_PROGRESS = 14,
  RD_KAFKA_RESP_ERR_COORDINATOR_NOT_AVAILABLE = 15,
  RD_KAFKA_RESP_ERR_NOT_COORDINATOR = 16,
  RD_KAFKA_RESP_ERR_TOPIC_EXCEPTION = 17,
  RD_KAFKA_RESP_ERR_RECORD_LIST_TOO_LARGE = 18,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS = 19,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS_AFTER_APPEND = 20,
  RD_KAFKA_RESP_ERR_INVALID_REQUIRED_ACKS = 21,
  RD_KAFKA_RESP_ERR_ILLEGAL_GENERATION = 22,
  RD_KAFKA_RESP_ERR_INCONSISTENT_GROUP_PROTOCOL = 23,
  RD_KAFKA_RESP_ERR_INVALID_GROUP_ID = 24,
  RD_KAFKA_RESP_ERR_UNKNOWN_MEMBER_ID = 25,
  RD_KAFKA_RESP_ERR_INVALID_SESSION_TIMEOUT = 26,
  RD_KAFKA_RESP_ERR_REBALANCE_IN_PROGRESS = 27,
  RD_KAFKA_RESP_ERR_INVALID_COMMIT_OFFSET_SIZE = 28,
  RD_KAFKA_RESP_ERR_TOPIC_AUTHORIZATION_FAILED = 29,
  RD_KAFKA_RESP_ERR_GROUP_AUTHORIZATION_FAILED = 30,
  RD_KAFKA_RESP_ERR_CLUSTER_AUTHORIZATION_FAILED = 31,
  RD_KAFKA_RESP_ERR_INVALID_TIMESTAMP = 32,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_SASL_MECHANISM = 33,
  RD_KAFKA_RESP_ERR_ILLEGAL_SASL_STATE = 34,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_VERSION = 35,
  RD_KAFKA_RESP_ERR_TOPIC_ALREADY_EXISTS = 36,
  RD_KAFKA_RESP_ERR_INVALID_PARTITIONS = 37,
  RD_KAFKA_RESP_ERR_INVALID_REPLICATION_FACTOR = 38,
  RD_KAFKA_RESP_ERR_INVALID_REPLICA_ASSIGNMENT = 39,
  RD_KAFKA_RESP_ERR_INVALID_CONFIG = 40,
  RD_KAFKA_RESP_ERR_NOT_CONTROLLER = 41,
  RD_KAFKA_RESP_ERR_INVALID_REQUEST = 42,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_FOR_MESSAGE_FORMAT = 43,
  RD_KAFKA_RESP_ERR_POLICY_VIOLATION = 44,
  RD_KAFKA_RESP_ERR_OUT_OF_ORDER_SEQUENCE_NUMBER = 45,
  RD_KAFKA_RESP_ERR_DUPLICATE_SEQUENCE_NUMBER = 46,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_EPOCH = 47,
  RD_KAFKA_RESP_ERR_INVALID_TXN_STATE = 48,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_ID_MAPPING = 49,
  RD_KAFKA_RESP_ERR_INVALID_TRANSACTION_TIMEOUT = 50,
  RD_KAFKA_RESP_ERR_CONCURRENT_TRANSACTIONS = 51,
  RD_KAFKA_RESP_ERR_TRANSACTION_COORDINATOR_FENCED = 52,
  RD_KAFKA_RESP_ERR_TRANSACTIONAL_ID_AUTHORIZATION_FAILED = 53,
  RD_KAFKA_RESP_ERR_SECURITY_DISABLED = 54,
  RD_KAFKA_RESP_ERR_OPERATION_NOT_ATTEMPTED = 55,
  RD_KAFKA_RESP_ERR_KAFKA_STORAGE_ERROR = 56,
  RD_KAFKA_RESP_ERR_LOG_DIR_NOT_FOUND = 57,
  RD_KAFKA_RESP_ERR_SASL_AUTHENTICATION_FAILED = 58,
  RD_KAFKA_RESP_ERR_UNKNOWN_PRODUCER_ID = 59,
  RD_KAFKA_RESP_ERR_REASSIGNMENT_IN_PROGRESS = 60,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTH_DISABLED = 61,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_NOT_FOUND = 62,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_OWNER_MISMATCH = 63,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_REQUEST_NOT_ALLOWED = 64,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTHORIZATION_FAILED = 65,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_EXPIRED = 66,
  RD_KAFKA_RESP_ERR_INVALID_PRINCIPAL_TYPE = 67,
  RD_KAFKA_RESP_ERR_NON_EMPTY_GROUP = 68,
  RD_KAFKA_RESP_ERR_GROUP_ID_NOT_FOUND = 69,
  RD_KAFKA_RESP_ERR_FETCH_SESSION_ID_NOT_FOUND = 70,
  RD_KAFKA_RESP_ERR_INVALID_FETCH_SESSION_EPOCH = 71,
  RD_KAFKA_RESP_ERR_LISTENER_NOT_FOUND = 72,
  RD_KAFKA_RESP_ERR_TOPIC_DELETION_DISABLED = 73,
  RD_KAFKA_RESP_ERR_FENCED_LEADER_EPOCH = 74,
  RD_KAFKA_RESP_ERR_UNKNOWN_LEADER_EPOCH = 75,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76,
  RD_KAFKA_RESP_ERR_STALE_BROKER_EPOCH = 77,
  RD_KAFKA_RESP_ERR_OFFSET_NOT_AVAILABLE = 78,
  RD_KAFKA_RESP_ERR_MEMBER_ID_REQUIRED = 79,
  RD_KAFKA_RESP_ERR_PREFERRED_LEADER_NOT_AVAILABLE = 80,
  RD_KAFKA_RESP_ERR_GROUP_MAX_SIZE_REACHED = 81,
  RD_KAFKA_RESP_ERR_FENCED_INSTANCE_ID = 82,
  RD_KAFKA_RESP_ERR_ELIGIBLE_LEADERS_NOT_AVAILABLE = 83,
  RD_KAFKA_RESP_ERR_ELECTION_NOT_NEEDED = 84,
  RD_KAFKA_RESP_ERR_NO_REASSIGNMENT_IN_PROGRESS = 85,
  RD_KAFKA_RESP_ERR_GROUP_SUBSCRIBED_TO_TOPIC = 86,
  RD_KAFKA_RESP_ERR_INVALID_RECORD = 87,
  RD_KAFKA_RESP_ERR_UNSTABLE_OFFSET_COMMIT = 88,
  RD_KAFKA_RESP_ERR_THROTTLING_QUOTA_EXCEEDED = 89,
  RD_KAFKA_RESP_ERR_PRODUCER_FENCED = 90,
  RD_KAFKA_RESP_ERR_RESOURCE_NOT_FOUND = 91,
  RD_KAFKA_RESP_ERR_DUPLICATE_RESOURCE = 92,
  RD_KAFKA_RESP_ERR_UNACCEPTABLE_CREDENTIAL = 93,
  RD_KAFKA_RESP_ERR_INCONSISTENT_VOTER_SET = 94,
  RD_KAFKA_RESP_ERR_INVALID_UPDATE_VERSION = 95,
  RD_KAFKA_RESP_ERR_FEATURE_UPDATE_FAILED = 96,
  RD_KAFKA_RESP_ERR_PRINCIPAL_DESERIALIZATION_FAILURE = 97,
  RD_KAFKA_RESP_ERR_END_ALL,
} rd_kafka_resp_err_t;
struct rd_kafka_err_desc {
  rd_kafka_resp_err_t code;
  char *name;
  char *desc;
};
void rd_kafka_get_err_descs(const struct rd_kafka_err_desc **errdescs, size_t *cntp);
const char *rd_kafka_err2str(rd_kafka_resp_err_t err);
const char *rd_kafka_err2name(rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_last_error(void);
rd_kafka_resp_err_t rd_kafka_errno2err(int errnox);
int rd_kafka_errno(void);
rd_kafka_resp_err_t rd_kafka_fatal_error(rd_kafka_t *rk, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_test_fatal_error(rd_kafka_t *rk, rd_kafka_resp_err_t err, const char *reason);
rd_kafka_resp_err_t rd_kafka_error_code(const rd_kafka_error_t *error);
const char *rd_kafka_error_name(const rd_kafka_error_t *error);
const char *rd_kafka_error_string(const rd_kafka_error_t *error);
int rd_kafka_error_is_fatal(const rd_kafka_error_t *error);
int rd_kafka_error_is_retriable(const rd_kafka_error_t *error);
int rd_kafka_error_txn_requires_abort(const rd_kafka_error_t *error);
void rd_kafka_error_destroy(rd_kafka_error_t *error);
rd_kafka_error_t *rd_kafka_error_new(rd_kafka_resp_err_t code, const char *fmt, ...);
typedef struct rd_kafka_topic_partition_s {
  char *topic;
  int32_t partition;
  int64_t offset;
  void *metadata;
  size_t metadata_size;
  void *opaque;
  rd_kafka_resp_err_t err;
  void *_private;
} rd_kafka_topic_partition_t;
void rd_kafka_topic_partition_destroy(rd_kafka_topic_partition_t *rktpar);
typedef struct rd_kafka_topic_partition_list_s {
  int cnt;
  int size;
  rd_kafka_topic_partition_t *elems;
} rd_kafka_topic_partition_list_t;
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_new(int size);
void rd_kafka_topic_partition_list_destroy(rd_kafka_topic_partition_list_t *rkparlist);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_add(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_add_range(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t start, int32_t stop);
int rd_kafka_topic_partition_list_del(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
int rd_kafka_topic_partition_list_del_by_idx(rd_kafka_topic_partition_list_t *rktparlist, int idx);
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_copy(const rd_kafka_topic_partition_list_t *src);
rd_kafka_resp_err_t rd_kafka_topic_partition_list_set_offset(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition, int64_t offset);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_find(const rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_sort(rd_kafka_topic_partition_list_t *rktparlist, int (*cmp)(const void *a, const void *b, void *cmp_opaque), void *cmp_opaque);
typedef enum rd_kafka_vtype_t {
  RD_KAFKA_VTYPE_END,
  RD_KAFKA_VTYPE_TOPIC,
  RD_KAFKA_VTYPE_RKT,
  RD_KAFKA_VTYPE_PARTITION,
  RD_KAFKA_VTYPE_VALUE,
  RD_KAFKA_VTYPE_KEY,
  RD_KAFKA_VTYPE_OPAQUE,
  RD_KAFKA_VTYPE_MSGFLAGS,
  RD_KAFKA_VTYPE_TIMESTAMP,
  RD_KAFKA_VTYPE_HEADER,
  RD_KAFKA_VTYPE_HEADERS,
} rd_kafka_vtype_t;
typedef struct rd_kafka_vu_s {
  rd_kafka_vtype_t vtype;
  union {
    char *cstr;
    rd_kafka_topic_t *rkt;
    int i;
    int32_t i32;
    int64_t i64;
    struct {
      void *ptr;
      size_t size;
    } mem;
    struct {
      char *name;
      void *val;
      ssize_t size;
    } header;
    rd_kafka_headers_t *headers;
    void *ptr;
    char _pad[64];
  } u;
} rd_kafka_vu_t;
rd_kafka_headers_t *rd_kafka_headers_new(size_t initial_count);
void rd_kafka_headers_destroy(rd_kafka_headers_t *hdrs);
rd_kafka_headers_t *rd_kafka_headers_copy(const rd_kafka_headers_t *src);
rd_kafka_resp_err_t rd_kafka_header_add(rd_kafka_headers_t *hdrs, const char *name, ssize_t name_size, const void *value, ssize_t value_size);
rd_kafka_resp_err_t rd_kafka_header_remove(rd_kafka_headers_t *hdrs, const char *name);
rd_kafka_resp_err_t rd_kafka_header_get_last(const rd_kafka_headers_t *hdrs, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get(const rd_kafka_headers_t *hdrs, size_t idx, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get_all(const rd_kafka_headers_t *hdrs, size_t idx, const char **namep, const void **valuep, size_t *sizep);
typedef struct rd_kafka_message_s {
  rd_kafka_resp_err_t err;
  rd_kafka_topic_t *rkt;
  int32_t partition;
  void *payload;
  size_t len;
  void *key;
  size_t key_len;
  int64_t offset;
  void *_private;
} rd_kafka_message_t;
void rd_kafka_message_destroy(rd_kafka_message_t *rkmessage);
const char *rd_kafka_message_errstr(const rd_kafka_message_t *rkmessage);
int64_t rd_kafka_message_timestamp(const rd_kafka_message_t *rkmessage, rd_kafka_timestamp_type_t *tstype);
int64_t rd_kafka_message_latency(const rd_kafka_message_t *rkmessage);
int32_t rd_kafka_message_broker_id(const rd_kafka_message_t *rkmessage);
rd_kafka_resp_err_t rd_kafka_message_headers(const rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
rd_kafka_resp_err_t rd_kafka_message_detach_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
void rd_kafka_message_set_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t *hdrs);
size_t rd_kafka_header_cnt(const rd_kafka_headers_t *hdrs);
typedef enum {
  RD_KAFKA_MSG_STATUS_NOT_PERSISTED = 0,
  RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED = 1,
  RD_KAFKA_MSG_STATUS_PERSISTED = 2,
} rd_kafka_msg_status_t;
rd_kafka_msg_status_t rd_kafka_message_status(const rd_kafka_message_t *rkmessage);
typedef enum {
  RD_KAFKA_CONF_UNKNOWN = (- 2),
  RD_KAFKA_CONF_INVALID = (- 1),
  RD_KAFKA_CONF_OK = 0,
} rd_kafka_conf_res_t;
rd_kafka_conf_t *rd_kafka_conf_new(void);
void rd_kafka_conf_destroy(rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup(const rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup_filter(const rd_kafka_conf_t *conf, size_t filter_cnt, const char **filter);
const rd_kafka_conf_t *rd_kafka_conf(rd_kafka_t *rk);
rd_kafka_conf_res_t rd_kafka_conf_set(rd_kafka_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_events(rd_kafka_conf_t *conf, int events);
void rd_kafka_conf_set_background_event_cb(rd_kafka_conf_t *conf, void (*event_cb)(rd_kafka_t *rk, rd_kafka_event_t *rkev, void *opaque));
void rd_kafka_conf_set_dr_cb(rd_kafka_conf_t *conf, void (*dr_cb)(rd_kafka_t *rk, void *payload, size_t len, rd_kafka_resp_err_t err, void *opaque, void *msg_opaque));
void rd_kafka_conf_set_dr_msg_cb(rd_kafka_conf_t *conf, void (*dr_msg_cb)(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_consume_cb(rd_kafka_conf_t *conf, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_rebalance_cb(rd_kafka_conf_t *conf, void (*rebalance_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *partitions, void *opaque));
void rd_kafka_conf_set_offset_commit_cb(rd_kafka_conf_t *conf, void (*offset_commit_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *opaque));
void rd_kafka_conf_set_error_cb(rd_kafka_conf_t *conf, void (*error_cb)(rd_kafka_t *rk, int err, const char *reason, void *opaque));
void rd_kafka_conf_set_throttle_cb(rd_kafka_conf_t *conf, void (*throttle_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int throttle_time_ms, void *opaque));
void rd_kafka_conf_set_log_cb(rd_kafka_conf_t *conf, void (*log_cb)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_conf_set_stats_cb(rd_kafka_conf_t *conf, int (*stats_cb)(rd_kafka_t *rk, char *json, size_t json_len, void *opaque));
void rd_kafka_conf_set_oauthbearer_token_refresh_cb(rd_kafka_conf_t *conf, void (*oauthbearer_token_refresh_cb)(rd_kafka_t *rk, const char *oauthbearer_config, void *opaque));
void rd_kafka_conf_set_socket_cb(rd_kafka_conf_t *conf, int (*socket_cb)(int domain, int type, int protocol, void *opaque));
void rd_kafka_conf_set_connect_cb(rd_kafka_conf_t *conf, int (*connect_cb)(int sockfd, const struct sockaddr *addr, int addrlen, const char *id, void *opaque));
void rd_kafka_conf_set_closesocket_cb(rd_kafka_conf_t *conf, int (*closesocket_cb)(int sockfd, void *opaque));
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert_verify_cb(rd_kafka_conf_t *conf, int (*ssl_cert_verify_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int *x509_error, int depth, const char *buf, size_t size, char *errstr, size_t errstr_size, void *opaque));
typedef enum rd_kafka_cert_type_t {
  RD_KAFKA_CERT_PUBLIC_KEY,
  RD_KAFKA_CERT_PRIVATE_KEY,
  RD_KAFKA_CERT_CA,
  RD_KAFKA_CERT__CNT,
} rd_kafka_cert_type_t;
typedef enum rd_kafka_cert_enc_t {
  RD_KAFKA_CERT_ENC_PKCS12,
  RD_KAFKA_CERT_ENC_DER,
  RD_KAFKA_CERT_ENC_PEM,
  RD_KAFKA_CERT_ENC__CNT,
} rd_kafka_cert_enc_t;
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert(rd_kafka_conf_t *conf, rd_kafka_cert_type_t cert_type, rd_kafka_cert_enc_t cert_enc, const void *buffer, size_t size, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_opaque(rd_kafka_conf_t *conf, void *opaque);
void *rd_kafka_opaque(const rd_kafka_t *rk);
void rd_kafka_conf_set_default_topic_conf(rd_kafka_conf_t *conf, rd_kafka_topic_conf_t *tconf);
rd_kafka_topic_conf_t *rd_kafka_conf_get_default_topic_conf(rd_kafka_conf_t *conf);
rd_kafka_conf_res_t rd_kafka_conf_get(const rd_kafka_conf_t *conf, const char *name, char *dest, size_t *dest_size);
rd_kafka_conf_res_t rd_kafka_topic_conf_get(const rd_kafka_topic_conf_t *conf, const char *name, char *dest, size_t *dest_size);
const char **rd_kafka_conf_dump(rd_kafka_conf_t *conf, size_t *cntp);
const char **rd_kafka_topic_conf_dump(rd_kafka_topic_conf_t *conf, size_t *cntp);
void rd_kafka_conf_dump_free(const char **arr, size_t cnt);
void rd_kafka_conf_properties_show(FILE *fp);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_new(void);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_dup(const rd_kafka_topic_conf_t *conf);
rd_kafka_topic_conf_t *rd_kafka_default_topic_conf_dup(rd_kafka_t *rk);
void rd_kafka_topic_conf_destroy(rd_kafka_topic_conf_t *topic_conf);
rd_kafka_conf_res_t rd_kafka_topic_conf_set(rd_kafka_topic_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_topic_conf_set_opaque(rd_kafka_topic_conf_t *conf, void *rkt_opaque);
void rd_kafka_topic_conf_set_partitioner_cb(rd_kafka_topic_conf_t *topic_conf, int32_t (*partitioner)(const rd_kafka_topic_t *rkt, const void *keydata, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque));
void rd_kafka_topic_conf_set_msg_order_cmp(rd_kafka_topic_conf_t *topic_conf, int (*msg_order_cmp)(const rd_kafka_message_t *a, const rd_kafka_message_t *b));
int rd_kafka_topic_partition_available(const rd_kafka_topic_t *rkt, int32_t partition);
int32_t rd_kafka_msg_partitioner_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
rd_kafka_t *rd_kafka_new(rd_kafka_type_t type, rd_kafka_conf_t *conf, char *errstr, size_t errstr_size);
void rd_kafka_destroy(rd_kafka_t *rk);
void rd_kafka_destroy_flags(rd_kafka_t *rk, int flags);
const char *rd_kafka_name(const rd_kafka_t *rk);
rd_kafka_type_t rd_kafka_type(const rd_kafka_t *rk);
char *rd_kafka_memberid(const rd_kafka_t *rk);
char *rd_kafka_clusterid(rd_kafka_t *rk, int timeout_ms);
int32_t rd_kafka_controllerid(rd_kafka_t *rk, int timeout_ms);
rd_kafka_topic_t *rd_kafka_topic_new(rd_kafka_t *rk, const char *topic, rd_kafka_topic_conf_t *conf);
void rd_kafka_topic_destroy(rd_kafka_topic_t *rkt);
const char *rd_kafka_topic_name(const rd_kafka_topic_t *rkt);
void *rd_kafka_topic_opaque(const rd_kafka_topic_t *rkt);
int rd_kafka_poll(rd_kafka_t *rk, int timeout_ms);
void rd_kafka_yield(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_pause_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_resume_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_query_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_get_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high);
rd_kafka_resp_err_t rd_kafka_offsets_for_times(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets, int timeout_ms);
void rd_kafka_mem_free(rd_kafka_t *rk, void *ptr);
rd_kafka_queue_t *rd_kafka_queue_new(rd_kafka_t *rk);
void rd_kafka_queue_destroy(rd_kafka_queue_t *rkqu);
rd_kafka_queue_t *rd_kafka_queue_get_main(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_consumer(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_partition(rd_kafka_t *rk, const char *topic, int32_t partition);
rd_kafka_queue_t *rd_kafka_queue_get_background(rd_kafka_t *rk);
void rd_kafka_queue_forward(rd_kafka_queue_t *src, rd_kafka_queue_t *dst);
rd_kafka_resp_err_t rd_kafka_set_log_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu);
size_t rd_kafka_queue_length(rd_kafka_queue_t *rkqu);
void rd_kafka_queue_io_event_enable(rd_kafka_queue_t *rkqu, int fd, const void *payload, size_t size);
void rd_kafka_queue_cb_event_enable(rd_kafka_queue_t *rkqu, void (*event_cb)(rd_kafka_t *rk, void *qev_opaque), void *qev_opaque);
void rd_kafka_queue_yield(rd_kafka_queue_t *rkqu);
int rd_kafka_consume_start(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
int rd_kafka_consume_start_queue(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, rd_kafka_queue_t *rkqu);
int rd_kafka_consume_stop(rd_kafka_topic_t *rkt, int32_t partition);
rd_kafka_resp_err_t rd_kafka_seek(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, int timeout_ms);
rd_kafka_error_t *rd_kafka_seek_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_message_t *rd_kafka_consume(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms);
ssize_t rd_kafka_consume_batch(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_message_t *rd_kafka_consume_queue(rd_kafka_queue_t *rkqu, int timeout_ms);
ssize_t rd_kafka_consume_batch_queue(rd_kafka_queue_t *rkqu, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback_queue(rd_kafka_queue_t *rkqu, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_offset_store(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
rd_kafka_resp_err_t rd_kafka_offsets_store(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets);
rd_kafka_resp_err_t rd_kafka_subscribe(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *topics);
rd_kafka_resp_err_t rd_kafka_unsubscribe(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_subscription(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **topics);
rd_kafka_message_t *rd_kafka_consumer_poll(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_consumer_close(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_incremental_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_error_t *rd_kafka_incremental_unassign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
const char *rd_kafka_rebalance_protocol(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_assignment(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **partitions);
int rd_kafka_assignment_lost(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_commit(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, int async);
rd_kafka_resp_err_t rd_kafka_commit_message(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, int async);
rd_kafka_resp_err_t rd_kafka_commit_queue(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_queue_t *rkqu, void (*cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_committed(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_position(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata(rd_kafka_t *rk);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new(const char *group_id);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new_with_genid(const char *group_id, int32_t generation_id, const char *member_id, const char *group_instance_id);
void rd_kafka_consumer_group_metadata_destroy(rd_kafka_consumer_group_metadata_t *);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_write(const rd_kafka_consumer_group_metadata_t *cgmd, void **bufferp, size_t *sizep);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_read(rd_kafka_consumer_group_metadata_t **cgmdp, const void *buffer, size_t size);
int rd_kafka_produce(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, void *payload, size_t len, const void *key, size_t keylen, void *msg_opaque);
rd_kafka_resp_err_t rd_kafka_producev(rd_kafka_t *rk, ...);
rd_kafka_error_t *rd_kafka_produceva(rd_kafka_t *rk, const rd_kafka_vu_t *vus, size_t cnt);
int rd_kafka_produce_batch(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, rd_kafka_message_t *rkmessages, int message_cnt);
rd_kafka_resp_err_t rd_kafka_flush(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_purge(rd_kafka_t *rk, int purge_flags);
typedef struct rd_kafka_metadata_broker {
  int32_t id;
  char *host;
  int port;
} rd_kafka_metadata_broker_t;
typedef struct rd_kafka_metadata_partition {
  int32_t id;
  rd_kafka_resp_err_t err;
  int32_t leader;
  int replica_cnt;
  int32_t *replicas;
  int isr_cnt;
  int32_t *isrs;
} rd_kafka_metadata_partition_t;
typedef struct rd_kafka_metadata_topic {
  char *topic;
  int partition_cnt;
  struct rd_kafka_metadata_partition *partitions;
  rd_kafka_resp_err_t err;
} rd_kafka_metadata_topic_t;
typedef struct rd_kafka_metadata {
  int broker_cnt;
  struct rd_kafka_metadata_broker *brokers;
  int topic_cnt;
  struct rd_kafka_metadata_topic *topics;
  int32_t orig_broker_id;
  char *orig_broker_name;
} rd_kafka_metadata_t;
rd_kafka_resp_err_t rd_kafka_metadata(rd_kafka_t *rk, int all_topics, rd_kafka_topic_t *only_rkt, const struct rd_kafka_metadata **metadatap, int timeout_ms);
void rd_kafka_metadata_destroy(const struct rd_kafka_metadata *metadata);
struct rd_kafka_group_member_info {
  char *member_id;
  char *client_id;
  char *client_host;
  void *member_metadata;
  int member_metadata_size;
  void *member_assignment;
  int member_assignment_size;
};
struct rd_kafka_group_info {
  struct rd_kafka_metadata_broker broker;
  char *group;
  rd_kafka_resp_err_t err;
  char *state;
  char *protocol_type;
  char *protocol;
  struct rd_kafka_group_member_info *members;
  int member_cnt;
};
struct rd_kafka_group_list {
  struct rd_kafka_group_info *groups;
  int group_cnt;
};
rd_kafka_resp_err_t rd_kafka_list_groups(rd_kafka_t *rk, const char *group, const struct rd_kafka_group_list **grplistp, int timeout_ms);
void rd_kafka_group_list_destroy(const struct rd_kafka_group_list *grplist);
int rd_kafka_brokers_add(rd_kafka_t *rk, const char *brokerlist);
void rd_kafka_set_logger(rd_kafka_t *rk, void (*func)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_set_log_level(rd_kafka_t *rk, int level);
void rd_kafka_log_print(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
void rd_kafka_log_syslog(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
int rd_kafka_outq_len(rd_kafka_t *rk);
void rd_kafka_dump(FILE *fp, rd_kafka_t *rk);
int rd_kafka_thread_cnt(void);
typedef enum rd_kafka_thread_type_t {
  RD_KAFKA_THREAD_MAIN,
  RD_KAFKA_THREAD_BACKGROUND,
  RD_KAFKA_THREAD_BROKER,
} rd_kafka_thread_type_t;
int rd_kafka_wait_destroyed(int timeout_ms);
int rd_kafka_unittest(void);
rd_kafka_resp_err_t rd_kafka_poll_set_consumer(rd_kafka_t *rk);
typedef int rd_kafka_event_type_t;
rd_kafka_event_type_t rd_kafka_event_type(const rd_kafka_event_t *rkev);
const char *rd_kafka_event_name(const rd_kafka_event_t *rkev);
void rd_kafka_event_destroy(rd_kafka_event_t *rkev);
const rd_kafka_message_t *rd_kafka_event_message_next(rd_kafka_event_t *rkev);
size_t rd_kafka_event_message_array(rd_kafka_event_t *rkev, const rd_kafka_message_t **rkmessages, size_t size);
size_t rd_kafka_event_message_count(rd_kafka_event_t *rkev);
const char *rd_kafka_event_config_string(rd_kafka_event_t *rkev);
rd_kafka_resp_err_t rd_kafka_event_error(rd_kafka_event_t *rkev);
const char *rd_kafka_event_error_string(rd_kafka_event_t *rkev);
int rd_kafka_event_error_is_fatal(rd_kafka_event_t *rkev);
void *rd_kafka_event_opaque(rd_kafka_event_t *rkev);
int rd_kafka_event_log(rd_kafka_event_t *rkev, const char **fac, const char **str, int *level);
int rd_kafka_event_debug_contexts(rd_kafka_event_t *rkev, char *dst, size_t dstsize);
const char *rd_kafka_event_stats(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_list_t *rd_kafka_event_topic_partition_list(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_t *rd_kafka_event_topic_partition(rd_kafka_event_t *rkev);
typedef rd_kafka_event_t rd_kafka_CreateTopics_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteTopics_result_t;
typedef rd_kafka_event_t rd_kafka_CreatePartitions_result_t;
typedef rd_kafka_event_t rd_kafka_AlterConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteRecords_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteGroups_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteConsumerGroupOffsets_result_t;
const rd_kafka_CreateTopics_result_t *rd_kafka_event_CreateTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteTopics_result_t *rd_kafka_event_DeleteTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_CreatePartitions_result_t *rd_kafka_event_CreatePartitions_result(rd_kafka_event_t *rkev);
const rd_kafka_AlterConfigs_result_t *rd_kafka_event_AlterConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeConfigs_result_t *rd_kafka_event_DescribeConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteRecords_result_t *rd_kafka_event_DeleteRecords_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteGroups_result_t *rd_kafka_event_DeleteGroups_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteConsumerGroupOffsets_result_t *rd_kafka_event_DeleteConsumerGroupOffsets_result(rd_kafka_event_t *rkev);
rd_kafka_event_t *rd_kafka_queue_poll(rd_kafka_queue_t *rkqu, int timeout_ms);
int rd_kafka_queue_poll_callback(rd_kafka_queue_t *rkqu, int timeout_ms);
typedef rd_kafka_resp_err_t (rd_kafka_plugin_f_conf_init_t)(rd_kafka_conf_t *conf, void **plug_opaquep, char *errstr, size_t errstr_size);
typedef rd_kafka_conf_res_t (rd_kafka_interceptor_f_on_conf_set_t)(rd_kafka_conf_t *conf, const char *name, const char *val, char *errstr, size_t errstr_size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_dup_t)(rd_kafka_conf_t *new_conf, const rd_kafka_conf_t *old_conf, size_t filter_cnt, const char **filter, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_destroy_t)(void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_new_t)(rd_kafka_t *rk, const rd_kafka_conf_t *conf, void *ic_opaque, char *errstr, size_t errstr_size);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_destroy_t)(rd_kafka_t *rk, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_send_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_acknowledgement_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_consume_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_commit_t)(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_request_sent_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_response_received_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, int64_t rtt, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_start_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_exit_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_set(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_set_t *on_conf_set, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_dup(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_dup_t *on_conf_dup, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_destroy(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_destroy_t *on_conf_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_new(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_new_t *on_new, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_destroy(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_destroy_t *on_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_send(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_send_t *on_send, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_acknowledgement(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_acknowledgement_t *on_acknowledgement, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_consume(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_consume_t *on_consume, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_commit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_commit_t *on_commit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_request_sent(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_request_sent_t *on_request_sent, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_response_received(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_response_received_t *on_response_received, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_start(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_start_t *on_thread_start, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_exit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_exit_t *on_thread_exit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_topic_result_error(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_error_string(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_name(const rd_kafka_topic_result_t *topicres);
const rd_kafka_error_t *rd_kafka_group_result_error(const rd_kafka_group_result_t *groupres);
const char *rd_kafka_group_result_name(const rd_kafka_group_result_t *groupres);
const rd_kafka_topic_partition_list_t *rd_kafka_group_result_partitions(const rd_kafka_group_result_t *groupres);
typedef enum rd_kafka_admin_op_t {
  RD_KAFKA_ADMIN_OP_ANY = 0,
  RD_KAFKA_ADMIN_OP_CREATETOPICS,
  RD_KAFKA_ADMIN_OP_DELETETOPICS,
  RD_KAFKA_ADMIN_OP_CREATEPARTITIONS,
  RD_KAFKA_ADMIN_OP_ALTERCONFIGS,
  RD_KAFKA_ADMIN_OP_DESCRIBECONFIGS,
  RD_KAFKA_ADMIN_OP_DELETERECORDS,
  RD_KAFKA_ADMIN_OP_DELETEGROUPS,
  RD_KAFKA_ADMIN_OP_DELETECONSUMERGROUPOFFSETS,
  RD_KAFKA_ADMIN_OP__CNT,
} rd_kafka_admin_op_t;
typedef struct rd_kafka_AdminOptions_s rd_kafka_AdminOptions_t;
rd_kafka_AdminOptions_t *rd_kafka_AdminOptions_new(rd_kafka_t *rk, rd_kafka_admin_op_t for_api);
void rd_kafka_AdminOptions_destroy(rd_kafka_AdminOptions_t *options);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_request_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_operation_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_validate_only(rd_kafka_AdminOptions_t *options, int true_or_false, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_broker(rd_kafka_AdminOptions_t *options, int32_t broker_id, char *errstr, size_t errstr_size);
void rd_kafka_AdminOptions_set_opaque(rd_kafka_AdminOptions_t *options, void *ev_opaque);
typedef struct rd_kafka_NewTopic_s rd_kafka_NewTopic_t;
rd_kafka_NewTopic_t *rd_kafka_NewTopic_new(const char *topic, int num_partitions, int replication_factor, char *errstr, size_t errstr_size);
void rd_kafka_NewTopic_destroy(rd_kafka_NewTopic_t *new_topic);
void rd_kafka_NewTopic_destroy_array(rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_replica_assignment(rd_kafka_NewTopic_t *new_topic, int32_t partition, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_config(rd_kafka_NewTopic_t *new_topic, const char *name, const char *value);
void rd_kafka_CreateTopics(rd_kafka_t *rk, rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreateTopics_result_topics(const rd_kafka_CreateTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteTopic_s rd_kafka_DeleteTopic_t;
rd_kafka_DeleteTopic_t *rd_kafka_DeleteTopic_new(const char *topic);
void rd_kafka_DeleteTopic_destroy(rd_kafka_DeleteTopic_t *del_topic);
void rd_kafka_DeleteTopic_destroy_array(rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt);
void rd_kafka_DeleteTopics(rd_kafka_t *rk, rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_DeleteTopics_result_topics(const rd_kafka_DeleteTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_NewPartitions_s rd_kafka_NewPartitions_t;
rd_kafka_NewPartitions_t *rd_kafka_NewPartitions_new(const char *topic, size_t new_total_cnt, char *errstr, size_t errstr_size);
void rd_kafka_NewPartitions_destroy(rd_kafka_NewPartitions_t *new_parts);
void rd_kafka_NewPartitions_destroy_array(rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt);
rd_kafka_resp_err_t rd_kafka_NewPartitions_set_replica_assignment(rd_kafka_NewPartitions_t *new_parts, int32_t new_partition_idx, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
void rd_kafka_CreatePartitions(rd_kafka_t *rk, rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreatePartitions_result_topics(const rd_kafka_CreatePartitions_result_t *result, size_t *cntp);
typedef enum rd_kafka_ConfigSource_t {
  RD_KAFKA_CONFIG_SOURCE_UNKNOWN_CONFIG = 0,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG = 1,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG = 2,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG = 3,
  RD_KAFKA_CONFIG_SOURCE_STATIC_BROKER_CONFIG = 4,
  RD_KAFKA_CONFIG_SOURCE_DEFAULT_CONFIG = 5,
  RD_KAFKA_CONFIG_SOURCE__CNT,
} rd_kafka_ConfigSource_t;
const char *rd_kafka_ConfigSource_name(rd_kafka_ConfigSource_t confsource);
typedef struct rd_kafka_ConfigEntry_s rd_kafka_ConfigEntry_t;
const char *rd_kafka_ConfigEntry_name(const rd_kafka_ConfigEntry_t *entry);
const char *rd_kafka_ConfigEntry_value(const rd_kafka_ConfigEntry_t *entry);
rd_kafka_ConfigSource_t rd_kafka_ConfigEntry_source(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_read_only(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_default(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_sensitive(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_synonym(const rd_kafka_ConfigEntry_t *entry);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigEntry_synonyms(const rd_kafka_ConfigEntry_t *entry, size_t *cntp);
typedef enum rd_kafka_ResourceType_t {
  RD_KAFKA_RESOURCE_UNKNOWN = 0,
  RD_KAFKA_RESOURCE_ANY = 1,
  RD_KAFKA_RESOURCE_TOPIC = 2,
  RD_KAFKA_RESOURCE_GROUP = 3,
  RD_KAFKA_RESOURCE_BROKER = 4,
  RD_KAFKA_RESOURCE__CNT,
} rd_kafka_ResourceType_t;
const char *rd_kafka_ResourceType_name(rd_kafka_ResourceType_t restype);
typedef struct rd_kafka_ConfigResource_s rd_kafka_ConfigResource_t;
rd_kafka_ConfigResource_t *rd_kafka_ConfigResource_new(rd_kafka_ResourceType_t restype, const char *resname);
void rd_kafka_ConfigResource_destroy(rd_kafka_ConfigResource_t *config);
void rd_kafka_ConfigResource_destroy_array(rd_kafka_ConfigResource_t **config, size_t config_cnt);
rd_kafka_resp_err_t rd_kafka_ConfigResource_set_config(rd_kafka_ConfigResource_t *config, const char *name, const char *value);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigResource_configs(const rd_kafka_ConfigResource_t *config, size_t *cntp);
rd_kafka_ResourceType_t rd_kafka_ConfigResource_type(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_name(const rd_kafka_ConfigResource_t *config);
rd_kafka_resp_err_t rd_kafka_ConfigResource_error(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_error_string(const rd_kafka_ConfigResource_t *config);
void rd_kafka_AlterConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_AlterConfigs_result_resources(const rd_kafka_AlterConfigs_result_t *result, size_t *cntp);
void rd_kafka_DescribeConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_DescribeConfigs_result_resources(const rd_kafka_DescribeConfigs_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteRecords_s rd_kafka_DeleteRecords_t;
rd_kafka_DeleteRecords_t *rd_kafka_DeleteRecords_new(const rd_kafka_topic_partition_list_t *before_offsets);
void rd_kafka_DeleteRecords_destroy(rd_kafka_DeleteRecords_t *del_records);
void rd_kafka_DeleteRecords_destroy_array(rd_kafka_DeleteRecords_t **del_records, size_t del_record_cnt);
void rd_kafka_DeleteRecords(rd_kafka_t *rk, rd_kafka_DeleteRecords_t **del_records, size_t del_record_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_partition_list_t *rd_kafka_DeleteRecords_result_offsets(const rd_kafka_DeleteRecords_result_t *result);
typedef struct rd_kafka_DeleteGroup_s rd_kafka_DeleteGroup_t;
rd_kafka_DeleteGroup_t *rd_kafka_DeleteGroup_new(const char *group);
void rd_kafka_DeleteGroup_destroy(rd_kafka_DeleteGroup_t *del_group);
void rd_kafka_DeleteGroup_destroy_array(rd_kafka_DeleteGroup_t **del_groups, size_t del_group_cnt);
void rd_kafka_DeleteGroups(rd_kafka_t *rk, rd_kafka_DeleteGroup_t **del_groups, size_t del_group_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_DeleteGroups_result_groups(const rd_kafka_DeleteGroups_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteConsumerGroupOffsets_s rd_kafka_DeleteConsumerGroupOffsets_t;
rd_kafka_DeleteConsumerGroupOffsets_t *rd_kafka_DeleteConsumerGroupOffsets_new(const char *group, const rd_kafka_topic_partition_list_t *partitions);
void rd_kafka_DeleteConsumerGroupOffsets_destroy(rd_kafka_DeleteConsumerGroupOffsets_t *del_grpoffsets);
void rd_kafka_DeleteConsumerGroupOffsets_destroy_array(rd_kafka_DeleteConsumerGroupOffsets_t **del_grpoffsets, size_t del_grpoffset_cnt);
void rd_kafka_DeleteConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_DeleteConsumerGroupOffsets_t **del_grpoffsets, size_t del_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_DeleteConsumerGroupOffsets_result_groups(const rd_kafka_DeleteConsumerGroupOffsets_result_t *result, size_t *cntp);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token(rd_kafka_t *rk, const char *token_value, int64_t md_lifetime_ms, const char *md_principal_name, const char **extensions, size_t extension_size, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token_failure(rd_kafka_t *rk, const char *errstr);
rd_kafka_error_t *rd_kafka_init_transactions(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_begin_transaction(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_send_offsets_to_transaction(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, const rd_kafka_consumer_group_metadata_t *cgmetadata, int timeout_ms);
rd_kafka_error_t *rd_kafka_commit_transaction(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_abort_transaction(rd_kafka_t *rk, int timeout_ms);
typedef struct rd_kafka_mock_cluster_s rd_kafka_mock_cluster_t;
rd_kafka_mock_cluster_t *rd_kafka_mock_cluster_new(rd_kafka_t *rk, int broker_cnt);
void rd_kafka_mock_cluster_destroy(rd_kafka_mock_cluster_t *mcluster);
rd_kafka_t *rd_kafka_mock_cluster_handle(const rd_kafka_mock_cluster_t *mcluster);
rd_kafka_mock_cluster_t *rd_kafka_handle_mock_cluster(const rd_kafka_t *rk);
const char *rd_kafka_mock_cluster_bootstraps(const rd_kafka_mock_cluster_t *mcluster);
void rd_kafka_mock_clear_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey);
void rd_kafka_mock_push_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, ...);
void rd_kafka_mock_push_request_errors_array(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, const rd_kafka_resp_err_t *errors);
rd_kafka_resp_err_t rd_kafka_mock_broker_push_request_errors(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int16_t ApiKey, size_t cnt, ...);
void rd_kafka_mock_topic_set_error(rd_kafka_mock_cluster_t *mcluster, const char *topic, rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_mock_topic_create(rd_kafka_mock_cluster_t *mcluster, const char *topic, int partition_cnt, int replication_factor);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_leader(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower_wmarks(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int64_t lo, int64_t hi);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_down(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_up(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rtt(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int rtt_ms);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rack(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, const char *rack);
rd_kafka_resp_err_t rd_kafka_mock_coordinator_set(rd_kafka_mock_cluster_t *mcluster, const char *key_type, const char *key, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_set_apiversion(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, int16_t MinVersion, int16_t MaxVersion);
'
rdkafka.h, rdkafka_mock.h

RD_KAFKA_VERSION

public RD_KAFKA_VERSION = 17236223

librdkafka version

Interpreted as hex MM.mm.rr.xx:

  • MM = Major
  • mm = minor
  • rr = revision
  • xx = pre-release id (0xff is the final release)

E.g.: 0x000801ff = 0.8.1

Remarks
This value should only be used during compile time, for runtime checks of version use rd_kafka_version()

RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE

public RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76

Unsupported compression type

RD_KAFKA_RESP_ERR_END_ALL

public RD_KAFKA_RESP_ERR_END_ALL = 98
enum rd_kafka_resp_err_t

RD_KAFKA_ADMIN_OP__CNT

public RD_KAFKA_ADMIN_OP__CNT = 9

Number of ops defined

RD_KAFKA_CDEF

public RD_KAFKA_CDEF = 'typedef long int ssize_t;
typedef struct _IO_FILE FILE;
typedef long int mode_t;
typedef signed int int16_t;
typedef unsigned int uint16_t;
typedef signed int int32_t;
typedef signed long int int64_t;
int rd_kafka_version(void);
const char *rd_kafka_version_str(void);
typedef enum rd_kafka_type_t {
  RD_KAFKA_PRODUCER,
  RD_KAFKA_CONSUMER,
} rd_kafka_type_t;
typedef enum rd_kafka_timestamp_type_t {
  RD_KAFKA_TIMESTAMP_NOT_AVAILABLE,
  RD_KAFKA_TIMESTAMP_CREATE_TIME,
  RD_KAFKA_TIMESTAMP_LOG_APPEND_TIME,
} rd_kafka_timestamp_type_t;
const char *rd_kafka_get_debug_contexts(void);
typedef struct rd_kafka_s rd_kafka_t;
typedef struct rd_kafka_topic_s rd_kafka_topic_t;
typedef struct rd_kafka_conf_s rd_kafka_conf_t;
typedef struct rd_kafka_topic_conf_s rd_kafka_topic_conf_t;
typedef struct rd_kafka_queue_s rd_kafka_queue_t;
typedef struct rd_kafka_op_s rd_kafka_event_t;
typedef struct rd_kafka_topic_result_s rd_kafka_topic_result_t;
typedef struct rd_kafka_consumer_group_metadata_s rd_kafka_consumer_group_metadata_t;
typedef struct rd_kafka_error_s {
  unsigned int code;
  char *errstr;
  unsigned char fatal;
  unsigned char retriable;
  unsigned char txn_requires_abort;
} rd_kafka_error_t;
typedef struct rd_kafka_headers_s rd_kafka_headers_t;
typedef struct rd_kafka_group_result_s rd_kafka_group_result_t;
typedef enum {
  RD_KAFKA_RESP_ERR__BEGIN = (- 200),
  RD_KAFKA_RESP_ERR__BAD_MSG = (- 199),
  RD_KAFKA_RESP_ERR__BAD_COMPRESSION = (- 198),
  RD_KAFKA_RESP_ERR__DESTROY = (- 197),
  RD_KAFKA_RESP_ERR__FAIL = (- 196),
  RD_KAFKA_RESP_ERR__TRANSPORT = (- 195),
  RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE = (- 194),
  RD_KAFKA_RESP_ERR__RESOLVE = (- 193),
  RD_KAFKA_RESP_ERR__MSG_TIMED_OUT = (- 192),
  RD_KAFKA_RESP_ERR__PARTITION_EOF = (- 191),
  RD_KAFKA_RESP_ERR__UNKNOWN_PARTITION = (- 190),
  RD_KAFKA_RESP_ERR__FS = (- 189),
  RD_KAFKA_RESP_ERR__UNKNOWN_TOPIC = (- 188),
  RD_KAFKA_RESP_ERR__ALL_BROKERS_DOWN = (- 187),
  RD_KAFKA_RESP_ERR__INVALID_ARG = (- 186),
  RD_KAFKA_RESP_ERR__TIMED_OUT = (- 185),
  RD_KAFKA_RESP_ERR__QUEUE_FULL = (- 184),
  RD_KAFKA_RESP_ERR__ISR_INSUFF = (- 183),
  RD_KAFKA_RESP_ERR__NODE_UPDATE = (- 182),
  RD_KAFKA_RESP_ERR__SSL = (- 181),
  RD_KAFKA_RESP_ERR__WAIT_COORD = (- 180),
  RD_KAFKA_RESP_ERR__UNKNOWN_GROUP = (- 179),
  RD_KAFKA_RESP_ERR__IN_PROGRESS = (- 178),
  RD_KAFKA_RESP_ERR__PREV_IN_PROGRESS = (- 177),
  RD_KAFKA_RESP_ERR__EXISTING_SUBSCRIPTION = (- 176),
  RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS = (- 175),
  RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS = (- 174),
  RD_KAFKA_RESP_ERR__CONFLICT = (- 173),
  RD_KAFKA_RESP_ERR__STATE = (- 172),
  RD_KAFKA_RESP_ERR__UNKNOWN_PROTOCOL = (- 171),
  RD_KAFKA_RESP_ERR__NOT_IMPLEMENTED = (- 170),
  RD_KAFKA_RESP_ERR__AUTHENTICATION = (- 169),
  RD_KAFKA_RESP_ERR__NO_OFFSET = (- 168),
  RD_KAFKA_RESP_ERR__OUTDATED = (- 167),
  RD_KAFKA_RESP_ERR__TIMED_OUT_QUEUE = (- 166),
  RD_KAFKA_RESP_ERR__UNSUPPORTED_FEATURE = (- 165),
  RD_KAFKA_RESP_ERR__WAIT_CACHE = (- 164),
  RD_KAFKA_RESP_ERR__INTR = (- 163),
  RD_KAFKA_RESP_ERR__KEY_SERIALIZATION = (- 162),
  RD_KAFKA_RESP_ERR__VALUE_SERIALIZATION = (- 161),
  RD_KAFKA_RESP_ERR__KEY_DESERIALIZATION = (- 160),
  RD_KAFKA_RESP_ERR__VALUE_DESERIALIZATION = (- 159),
  RD_KAFKA_RESP_ERR__PARTIAL = (- 158),
  RD_KAFKA_RESP_ERR__READ_ONLY = (- 157),
  RD_KAFKA_RESP_ERR__NOENT = (- 156),
  RD_KAFKA_RESP_ERR__UNDERFLOW = (- 155),
  RD_KAFKA_RESP_ERR__INVALID_TYPE = (- 154),
  RD_KAFKA_RESP_ERR__RETRY = (- 153),
  RD_KAFKA_RESP_ERR__PURGE_QUEUE = (- 152),
  RD_KAFKA_RESP_ERR__PURGE_INFLIGHT = (- 151),
  RD_KAFKA_RESP_ERR__FATAL = (- 150),
  RD_KAFKA_RESP_ERR__INCONSISTENT = (- 149),
  RD_KAFKA_RESP_ERR__GAPLESS_GUARANTEE = (- 148),
  RD_KAFKA_RESP_ERR__MAX_POLL_EXCEEDED = (- 147),
  RD_KAFKA_RESP_ERR__UNKNOWN_BROKER = (- 146),
  RD_KAFKA_RESP_ERR__NOT_CONFIGURED = (- 145),
  RD_KAFKA_RESP_ERR__FENCED = (- 144),
  RD_KAFKA_RESP_ERR__APPLICATION = (- 143),
  RD_KAFKA_RESP_ERR__ASSIGNMENT_LOST = (- 142),
  RD_KAFKA_RESP_ERR__NOOP = (- 141),
  RD_KAFKA_RESP_ERR__AUTO_OFFSET_RESET = (- 140),
  RD_KAFKA_RESP_ERR__END = (- 100),
  RD_KAFKA_RESP_ERR_UNKNOWN = (- 1),
  RD_KAFKA_RESP_ERR_NO_ERROR = 0,
  RD_KAFKA_RESP_ERR_OFFSET_OUT_OF_RANGE = 1,
  RD_KAFKA_RESP_ERR_INVALID_MSG = 2,
  RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_OR_PART = 3,
  RD_KAFKA_RESP_ERR_INVALID_MSG_SIZE = 4,
  RD_KAFKA_RESP_ERR_LEADER_NOT_AVAILABLE = 5,
  RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION = 6,
  RD_KAFKA_RESP_ERR_REQUEST_TIMED_OUT = 7,
  RD_KAFKA_RESP_ERR_BROKER_NOT_AVAILABLE = 8,
  RD_KAFKA_RESP_ERR_REPLICA_NOT_AVAILABLE = 9,
  RD_KAFKA_RESP_ERR_MSG_SIZE_TOO_LARGE = 10,
  RD_KAFKA_RESP_ERR_STALE_CTRL_EPOCH = 11,
  RD_KAFKA_RESP_ERR_OFFSET_METADATA_TOO_LARGE = 12,
  RD_KAFKA_RESP_ERR_NETWORK_EXCEPTION = 13,
  RD_KAFKA_RESP_ERR_COORDINATOR_LOAD_IN_PROGRESS = 14,
  RD_KAFKA_RESP_ERR_COORDINATOR_NOT_AVAILABLE = 15,
  RD_KAFKA_RESP_ERR_NOT_COORDINATOR = 16,
  RD_KAFKA_RESP_ERR_TOPIC_EXCEPTION = 17,
  RD_KAFKA_RESP_ERR_RECORD_LIST_TOO_LARGE = 18,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS = 19,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS_AFTER_APPEND = 20,
  RD_KAFKA_RESP_ERR_INVALID_REQUIRED_ACKS = 21,
  RD_KAFKA_RESP_ERR_ILLEGAL_GENERATION = 22,
  RD_KAFKA_RESP_ERR_INCONSISTENT_GROUP_PROTOCOL = 23,
  RD_KAFKA_RESP_ERR_INVALID_GROUP_ID = 24,
  RD_KAFKA_RESP_ERR_UNKNOWN_MEMBER_ID = 25,
  RD_KAFKA_RESP_ERR_INVALID_SESSION_TIMEOUT = 26,
  RD_KAFKA_RESP_ERR_REBALANCE_IN_PROGRESS = 27,
  RD_KAFKA_RESP_ERR_INVALID_COMMIT_OFFSET_SIZE = 28,
  RD_KAFKA_RESP_ERR_TOPIC_AUTHORIZATION_FAILED = 29,
  RD_KAFKA_RESP_ERR_GROUP_AUTHORIZATION_FAILED = 30,
  RD_KAFKA_RESP_ERR_CLUSTER_AUTHORIZATION_FAILED = 31,
  RD_KAFKA_RESP_ERR_INVALID_TIMESTAMP = 32,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_SASL_MECHANISM = 33,
  RD_KAFKA_RESP_ERR_ILLEGAL_SASL_STATE = 34,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_VERSION = 35,
  RD_KAFKA_RESP_ERR_TOPIC_ALREADY_EXISTS = 36,
  RD_KAFKA_RESP_ERR_INVALID_PARTITIONS = 37,
  RD_KAFKA_RESP_ERR_INVALID_REPLICATION_FACTOR = 38,
  RD_KAFKA_RESP_ERR_INVALID_REPLICA_ASSIGNMENT = 39,
  RD_KAFKA_RESP_ERR_INVALID_CONFIG = 40,
  RD_KAFKA_RESP_ERR_NOT_CONTROLLER = 41,
  RD_KAFKA_RESP_ERR_INVALID_REQUEST = 42,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_FOR_MESSAGE_FORMAT = 43,
  RD_KAFKA_RESP_ERR_POLICY_VIOLATION = 44,
  RD_KAFKA_RESP_ERR_OUT_OF_ORDER_SEQUENCE_NUMBER = 45,
  RD_KAFKA_RESP_ERR_DUPLICATE_SEQUENCE_NUMBER = 46,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_EPOCH = 47,
  RD_KAFKA_RESP_ERR_INVALID_TXN_STATE = 48,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_ID_MAPPING = 49,
  RD_KAFKA_RESP_ERR_INVALID_TRANSACTION_TIMEOUT = 50,
  RD_KAFKA_RESP_ERR_CONCURRENT_TRANSACTIONS = 51,
  RD_KAFKA_RESP_ERR_TRANSACTION_COORDINATOR_FENCED = 52,
  RD_KAFKA_RESP_ERR_TRANSACTIONAL_ID_AUTHORIZATION_FAILED = 53,
  RD_KAFKA_RESP_ERR_SECURITY_DISABLED = 54,
  RD_KAFKA_RESP_ERR_OPERATION_NOT_ATTEMPTED = 55,
  RD_KAFKA_RESP_ERR_KAFKA_STORAGE_ERROR = 56,
  RD_KAFKA_RESP_ERR_LOG_DIR_NOT_FOUND = 57,
  RD_KAFKA_RESP_ERR_SASL_AUTHENTICATION_FAILED = 58,
  RD_KAFKA_RESP_ERR_UNKNOWN_PRODUCER_ID = 59,
  RD_KAFKA_RESP_ERR_REASSIGNMENT_IN_PROGRESS = 60,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTH_DISABLED = 61,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_NOT_FOUND = 62,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_OWNER_MISMATCH = 63,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_REQUEST_NOT_ALLOWED = 64,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTHORIZATION_FAILED = 65,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_EXPIRED = 66,
  RD_KAFKA_RESP_ERR_INVALID_PRINCIPAL_TYPE = 67,
  RD_KAFKA_RESP_ERR_NON_EMPTY_GROUP = 68,
  RD_KAFKA_RESP_ERR_GROUP_ID_NOT_FOUND = 69,
  RD_KAFKA_RESP_ERR_FETCH_SESSION_ID_NOT_FOUND = 70,
  RD_KAFKA_RESP_ERR_INVALID_FETCH_SESSION_EPOCH = 71,
  RD_KAFKA_RESP_ERR_LISTENER_NOT_FOUND = 72,
  RD_KAFKA_RESP_ERR_TOPIC_DELETION_DISABLED = 73,
  RD_KAFKA_RESP_ERR_FENCED_LEADER_EPOCH = 74,
  RD_KAFKA_RESP_ERR_UNKNOWN_LEADER_EPOCH = 75,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76,
  RD_KAFKA_RESP_ERR_STALE_BROKER_EPOCH = 77,
  RD_KAFKA_RESP_ERR_OFFSET_NOT_AVAILABLE = 78,
  RD_KAFKA_RESP_ERR_MEMBER_ID_REQUIRED = 79,
  RD_KAFKA_RESP_ERR_PREFERRED_LEADER_NOT_AVAILABLE = 80,
  RD_KAFKA_RESP_ERR_GROUP_MAX_SIZE_REACHED = 81,
  RD_KAFKA_RESP_ERR_FENCED_INSTANCE_ID = 82,
  RD_KAFKA_RESP_ERR_ELIGIBLE_LEADERS_NOT_AVAILABLE = 83,
  RD_KAFKA_RESP_ERR_ELECTION_NOT_NEEDED = 84,
  RD_KAFKA_RESP_ERR_NO_REASSIGNMENT_IN_PROGRESS = 85,
  RD_KAFKA_RESP_ERR_GROUP_SUBSCRIBED_TO_TOPIC = 86,
  RD_KAFKA_RESP_ERR_INVALID_RECORD = 87,
  RD_KAFKA_RESP_ERR_UNSTABLE_OFFSET_COMMIT = 88,
  RD_KAFKA_RESP_ERR_THROTTLING_QUOTA_EXCEEDED = 89,
  RD_KAFKA_RESP_ERR_PRODUCER_FENCED = 90,
  RD_KAFKA_RESP_ERR_RESOURCE_NOT_FOUND = 91,
  RD_KAFKA_RESP_ERR_DUPLICATE_RESOURCE = 92,
  RD_KAFKA_RESP_ERR_UNACCEPTABLE_CREDENTIAL = 93,
  RD_KAFKA_RESP_ERR_INCONSISTENT_VOTER_SET = 94,
  RD_KAFKA_RESP_ERR_INVALID_UPDATE_VERSION = 95,
  RD_KAFKA_RESP_ERR_FEATURE_UPDATE_FAILED = 96,
  RD_KAFKA_RESP_ERR_PRINCIPAL_DESERIALIZATION_FAILURE = 97,
  RD_KAFKA_RESP_ERR_END_ALL,
} rd_kafka_resp_err_t;
struct rd_kafka_err_desc {
  rd_kafka_resp_err_t code;
  char *name;
  char *desc;
};
void rd_kafka_get_err_descs(const struct rd_kafka_err_desc **errdescs, size_t *cntp);
const char *rd_kafka_err2str(rd_kafka_resp_err_t err);
const char *rd_kafka_err2name(rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_last_error(void);
rd_kafka_resp_err_t rd_kafka_errno2err(int errnox);
int rd_kafka_errno(void);
rd_kafka_resp_err_t rd_kafka_fatal_error(rd_kafka_t *rk, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_test_fatal_error(rd_kafka_t *rk, rd_kafka_resp_err_t err, const char *reason);
rd_kafka_resp_err_t rd_kafka_error_code(const rd_kafka_error_t *error);
const char *rd_kafka_error_name(const rd_kafka_error_t *error);
const char *rd_kafka_error_string(const rd_kafka_error_t *error);
int rd_kafka_error_is_fatal(const rd_kafka_error_t *error);
int rd_kafka_error_is_retriable(const rd_kafka_error_t *error);
int rd_kafka_error_txn_requires_abort(const rd_kafka_error_t *error);
void rd_kafka_error_destroy(rd_kafka_error_t *error);
rd_kafka_error_t *rd_kafka_error_new(rd_kafka_resp_err_t code, const char *fmt, ...);
typedef struct rd_kafka_topic_partition_s {
  char *topic;
  int32_t partition;
  int64_t offset;
  void *metadata;
  size_t metadata_size;
  void *opaque;
  rd_kafka_resp_err_t err;
  void *_private;
} rd_kafka_topic_partition_t;
void rd_kafka_topic_partition_destroy(rd_kafka_topic_partition_t *rktpar);
typedef struct rd_kafka_topic_partition_list_s {
  int cnt;
  int size;
  rd_kafka_topic_partition_t *elems;
} rd_kafka_topic_partition_list_t;
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_new(int size);
void rd_kafka_topic_partition_list_destroy(rd_kafka_topic_partition_list_t *rkparlist);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_add(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_add_range(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t start, int32_t stop);
int rd_kafka_topic_partition_list_del(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
int rd_kafka_topic_partition_list_del_by_idx(rd_kafka_topic_partition_list_t *rktparlist, int idx);
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_copy(const rd_kafka_topic_partition_list_t *src);
rd_kafka_resp_err_t rd_kafka_topic_partition_list_set_offset(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition, int64_t offset);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_find(const rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_sort(rd_kafka_topic_partition_list_t *rktparlist, int (*cmp)(const void *a, const void *b, void *cmp_opaque), void *cmp_opaque);
typedef enum rd_kafka_vtype_t {
  RD_KAFKA_VTYPE_END,
  RD_KAFKA_VTYPE_TOPIC,
  RD_KAFKA_VTYPE_RKT,
  RD_KAFKA_VTYPE_PARTITION,
  RD_KAFKA_VTYPE_VALUE,
  RD_KAFKA_VTYPE_KEY,
  RD_KAFKA_VTYPE_OPAQUE,
  RD_KAFKA_VTYPE_MSGFLAGS,
  RD_KAFKA_VTYPE_TIMESTAMP,
  RD_KAFKA_VTYPE_HEADER,
  RD_KAFKA_VTYPE_HEADERS,
} rd_kafka_vtype_t;
typedef struct rd_kafka_vu_s {
  rd_kafka_vtype_t vtype;
  union {
    char *cstr;
    rd_kafka_topic_t *rkt;
    int i;
    int32_t i32;
    int64_t i64;
    struct {
      void *ptr;
      size_t size;
    } mem;
    struct {
      char *name;
      void *val;
      ssize_t size;
    } header;
    rd_kafka_headers_t *headers;
    void *ptr;
    char _pad[64];
  } u;
} rd_kafka_vu_t;
rd_kafka_headers_t *rd_kafka_headers_new(size_t initial_count);
void rd_kafka_headers_destroy(rd_kafka_headers_t *hdrs);
rd_kafka_headers_t *rd_kafka_headers_copy(const rd_kafka_headers_t *src);
rd_kafka_resp_err_t rd_kafka_header_add(rd_kafka_headers_t *hdrs, const char *name, ssize_t name_size, const void *value, ssize_t value_size);
rd_kafka_resp_err_t rd_kafka_header_remove(rd_kafka_headers_t *hdrs, const char *name);
rd_kafka_resp_err_t rd_kafka_header_get_last(const rd_kafka_headers_t *hdrs, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get(const rd_kafka_headers_t *hdrs, size_t idx, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get_all(const rd_kafka_headers_t *hdrs, size_t idx, const char **namep, const void **valuep, size_t *sizep);
typedef struct rd_kafka_message_s {
  rd_kafka_resp_err_t err;
  rd_kafka_topic_t *rkt;
  int32_t partition;
  void *payload;
  size_t len;
  void *key;
  size_t key_len;
  int64_t offset;
  void *_private;
} rd_kafka_message_t;
void rd_kafka_message_destroy(rd_kafka_message_t *rkmessage);
const char *rd_kafka_message_errstr(const rd_kafka_message_t *rkmessage);
int64_t rd_kafka_message_timestamp(const rd_kafka_message_t *rkmessage, rd_kafka_timestamp_type_t *tstype);
int64_t rd_kafka_message_latency(const rd_kafka_message_t *rkmessage);
int32_t rd_kafka_message_broker_id(const rd_kafka_message_t *rkmessage);
rd_kafka_resp_err_t rd_kafka_message_headers(const rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
rd_kafka_resp_err_t rd_kafka_message_detach_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
void rd_kafka_message_set_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t *hdrs);
size_t rd_kafka_header_cnt(const rd_kafka_headers_t *hdrs);
typedef enum {
  RD_KAFKA_MSG_STATUS_NOT_PERSISTED = 0,
  RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED = 1,
  RD_KAFKA_MSG_STATUS_PERSISTED = 2,
} rd_kafka_msg_status_t;
rd_kafka_msg_status_t rd_kafka_message_status(const rd_kafka_message_t *rkmessage);
typedef enum {
  RD_KAFKA_CONF_UNKNOWN = (- 2),
  RD_KAFKA_CONF_INVALID = (- 1),
  RD_KAFKA_CONF_OK = 0,
} rd_kafka_conf_res_t;
rd_kafka_conf_t *rd_kafka_conf_new(void);
void rd_kafka_conf_destroy(rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup(const rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup_filter(const rd_kafka_conf_t *conf, size_t filter_cnt, const char **filter);
const rd_kafka_conf_t *rd_kafka_conf(rd_kafka_t *rk);
rd_kafka_conf_res_t rd_kafka_conf_set(rd_kafka_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_events(rd_kafka_conf_t *conf, int events);
void rd_kafka_conf_set_background_event_cb(rd_kafka_conf_t *conf, void (*event_cb)(rd_kafka_t *rk, rd_kafka_event_t *rkev, void *opaque));
void rd_kafka_conf_set_dr_cb(rd_kafka_conf_t *conf, void (*dr_cb)(rd_kafka_t *rk, void *payload, size_t len, rd_kafka_resp_err_t err, void *opaque, void *msg_opaque));
void rd_kafka_conf_set_dr_msg_cb(rd_kafka_conf_t *conf, void (*dr_msg_cb)(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_consume_cb(rd_kafka_conf_t *conf, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_rebalance_cb(rd_kafka_conf_t *conf, void (*rebalance_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *partitions, void *opaque));
void rd_kafka_conf_set_offset_commit_cb(rd_kafka_conf_t *conf, void (*offset_commit_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *opaque));
void rd_kafka_conf_set_error_cb(rd_kafka_conf_t *conf, void (*error_cb)(rd_kafka_t *rk, int err, const char *reason, void *opaque));
void rd_kafka_conf_set_throttle_cb(rd_kafka_conf_t *conf, void (*throttle_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int throttle_time_ms, void *opaque));
void rd_kafka_conf_set_log_cb(rd_kafka_conf_t *conf, void (*log_cb)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_conf_set_stats_cb(rd_kafka_conf_t *conf, int (*stats_cb)(rd_kafka_t *rk, char *json, size_t json_len, void *opaque));
void rd_kafka_conf_set_oauthbearer_token_refresh_cb(rd_kafka_conf_t *conf, void (*oauthbearer_token_refresh_cb)(rd_kafka_t *rk, const char *oauthbearer_config, void *opaque));
void rd_kafka_conf_set_socket_cb(rd_kafka_conf_t *conf, int (*socket_cb)(int domain, int type, int protocol, void *opaque));
void rd_kafka_conf_set_connect_cb(rd_kafka_conf_t *conf, int (*connect_cb)(int sockfd, const struct sockaddr *addr, int addrlen, const char *id, void *opaque));
void rd_kafka_conf_set_closesocket_cb(rd_kafka_conf_t *conf, int (*closesocket_cb)(int sockfd, void *opaque));
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert_verify_cb(rd_kafka_conf_t *conf, int (*ssl_cert_verify_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int *x509_error, int depth, const char *buf, size_t size, char *errstr, size_t errstr_size, void *opaque));
typedef enum rd_kafka_cert_type_t {
  RD_KAFKA_CERT_PUBLIC_KEY,
  RD_KAFKA_CERT_PRIVATE_KEY,
  RD_KAFKA_CERT_CA,
  RD_KAFKA_CERT__CNT,
} rd_kafka_cert_type_t;
typedef enum rd_kafka_cert_enc_t {
  RD_KAFKA_CERT_ENC_PKCS12,
  RD_KAFKA_CERT_ENC_DER,
  RD_KAFKA_CERT_ENC_PEM,
  RD_KAFKA_CERT_ENC__CNT,
} rd_kafka_cert_enc_t;
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert(rd_kafka_conf_t *conf, rd_kafka_cert_type_t cert_type, rd_kafka_cert_enc_t cert_enc, const void *buffer, size_t size, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_engine_callback_data(rd_kafka_conf_t *conf, void *callback_data);
void rd_kafka_conf_set_opaque(rd_kafka_conf_t *conf, void *opaque);
void *rd_kafka_opaque(const rd_kafka_t *rk);
void rd_kafka_conf_set_default_topic_conf(rd_kafka_conf_t *conf, rd_kafka_topic_conf_t *tconf);
rd_kafka_topic_conf_t *rd_kafka_conf_get_default_topic_conf(rd_kafka_conf_t *conf);
rd_kafka_conf_res_t rd_kafka_conf_get(const rd_kafka_conf_t *conf, const char *name, char *dest, size_t *dest_size);
rd_kafka_conf_res_t rd_kafka_topic_conf_get(const rd_kafka_topic_conf_t *conf, const char *name, char *dest, size_t *dest_size);
const char **rd_kafka_conf_dump(rd_kafka_conf_t *conf, size_t *cntp);
const char **rd_kafka_topic_conf_dump(rd_kafka_topic_conf_t *conf, size_t *cntp);
void rd_kafka_conf_dump_free(const char **arr, size_t cnt);
void rd_kafka_conf_properties_show(FILE *fp);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_new(void);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_dup(const rd_kafka_topic_conf_t *conf);
rd_kafka_topic_conf_t *rd_kafka_default_topic_conf_dup(rd_kafka_t *rk);
void rd_kafka_topic_conf_destroy(rd_kafka_topic_conf_t *topic_conf);
rd_kafka_conf_res_t rd_kafka_topic_conf_set(rd_kafka_topic_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_topic_conf_set_opaque(rd_kafka_topic_conf_t *conf, void *rkt_opaque);
void rd_kafka_topic_conf_set_partitioner_cb(rd_kafka_topic_conf_t *topic_conf, int32_t (*partitioner)(const rd_kafka_topic_t *rkt, const void *keydata, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque));
void rd_kafka_topic_conf_set_msg_order_cmp(rd_kafka_topic_conf_t *topic_conf, int (*msg_order_cmp)(const rd_kafka_message_t *a, const rd_kafka_message_t *b));
int rd_kafka_topic_partition_available(const rd_kafka_topic_t *rkt, int32_t partition);
int32_t rd_kafka_msg_partitioner_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
rd_kafka_t *rd_kafka_new(rd_kafka_type_t type, rd_kafka_conf_t *conf, char *errstr, size_t errstr_size);
void rd_kafka_destroy(rd_kafka_t *rk);
void rd_kafka_destroy_flags(rd_kafka_t *rk, int flags);
const char *rd_kafka_name(const rd_kafka_t *rk);
rd_kafka_type_t rd_kafka_type(const rd_kafka_t *rk);
char *rd_kafka_memberid(const rd_kafka_t *rk);
char *rd_kafka_clusterid(rd_kafka_t *rk, int timeout_ms);
int32_t rd_kafka_controllerid(rd_kafka_t *rk, int timeout_ms);
rd_kafka_topic_t *rd_kafka_topic_new(rd_kafka_t *rk, const char *topic, rd_kafka_topic_conf_t *conf);
void rd_kafka_topic_destroy(rd_kafka_topic_t *rkt);
const char *rd_kafka_topic_name(const rd_kafka_topic_t *rkt);
void *rd_kafka_topic_opaque(const rd_kafka_topic_t *rkt);
int rd_kafka_poll(rd_kafka_t *rk, int timeout_ms);
void rd_kafka_yield(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_pause_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_resume_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_query_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_get_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high);
rd_kafka_resp_err_t rd_kafka_offsets_for_times(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets, int timeout_ms);
void *rd_kafka_mem_calloc(rd_kafka_t *rk, size_t num, size_t size);
void *rd_kafka_mem_malloc(rd_kafka_t *rk, size_t size);
void rd_kafka_mem_free(rd_kafka_t *rk, void *ptr);
rd_kafka_queue_t *rd_kafka_queue_new(rd_kafka_t *rk);
void rd_kafka_queue_destroy(rd_kafka_queue_t *rkqu);
rd_kafka_queue_t *rd_kafka_queue_get_main(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_consumer(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_partition(rd_kafka_t *rk, const char *topic, int32_t partition);
rd_kafka_queue_t *rd_kafka_queue_get_background(rd_kafka_t *rk);
void rd_kafka_queue_forward(rd_kafka_queue_t *src, rd_kafka_queue_t *dst);
rd_kafka_resp_err_t rd_kafka_set_log_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu);
size_t rd_kafka_queue_length(rd_kafka_queue_t *rkqu);
void rd_kafka_queue_io_event_enable(rd_kafka_queue_t *rkqu, int fd, const void *payload, size_t size);
void rd_kafka_queue_cb_event_enable(rd_kafka_queue_t *rkqu, void (*event_cb)(rd_kafka_t *rk, void *qev_opaque), void *qev_opaque);
void rd_kafka_queue_yield(rd_kafka_queue_t *rkqu);
int rd_kafka_consume_start(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
int rd_kafka_consume_start_queue(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, rd_kafka_queue_t *rkqu);
int rd_kafka_consume_stop(rd_kafka_topic_t *rkt, int32_t partition);
rd_kafka_resp_err_t rd_kafka_seek(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, int timeout_ms);
rd_kafka_error_t *rd_kafka_seek_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_message_t *rd_kafka_consume(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms);
ssize_t rd_kafka_consume_batch(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_message_t *rd_kafka_consume_queue(rd_kafka_queue_t *rkqu, int timeout_ms);
ssize_t rd_kafka_consume_batch_queue(rd_kafka_queue_t *rkqu, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback_queue(rd_kafka_queue_t *rkqu, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_offset_store(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
rd_kafka_resp_err_t rd_kafka_offsets_store(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets);
rd_kafka_resp_err_t rd_kafka_subscribe(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *topics);
rd_kafka_resp_err_t rd_kafka_unsubscribe(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_subscription(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **topics);
rd_kafka_message_t *rd_kafka_consumer_poll(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_consumer_close(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_incremental_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_error_t *rd_kafka_incremental_unassign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
const char *rd_kafka_rebalance_protocol(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_assignment(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **partitions);
int rd_kafka_assignment_lost(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_commit(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, int async);
rd_kafka_resp_err_t rd_kafka_commit_message(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, int async);
rd_kafka_resp_err_t rd_kafka_commit_queue(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_queue_t *rkqu, void (*cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_committed(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_position(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata(rd_kafka_t *rk);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new(const char *group_id);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new_with_genid(const char *group_id, int32_t generation_id, const char *member_id, const char *group_instance_id);
void rd_kafka_consumer_group_metadata_destroy(rd_kafka_consumer_group_metadata_t *);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_write(const rd_kafka_consumer_group_metadata_t *cgmd, void **bufferp, size_t *sizep);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_read(rd_kafka_consumer_group_metadata_t **cgmdp, const void *buffer, size_t size);
int rd_kafka_produce(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, void *payload, size_t len, const void *key, size_t keylen, void *msg_opaque);
rd_kafka_resp_err_t rd_kafka_producev(rd_kafka_t *rk, ...);
rd_kafka_error_t *rd_kafka_produceva(rd_kafka_t *rk, const rd_kafka_vu_t *vus, size_t cnt);
int rd_kafka_produce_batch(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, rd_kafka_message_t *rkmessages, int message_cnt);
rd_kafka_resp_err_t rd_kafka_flush(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_purge(rd_kafka_t *rk, int purge_flags);
typedef struct rd_kafka_metadata_broker {
  int32_t id;
  char *host;
  int port;
} rd_kafka_metadata_broker_t;
typedef struct rd_kafka_metadata_partition {
  int32_t id;
  rd_kafka_resp_err_t err;
  int32_t leader;
  int replica_cnt;
  int32_t *replicas;
  int isr_cnt;
  int32_t *isrs;
} rd_kafka_metadata_partition_t;
typedef struct rd_kafka_metadata_topic {
  char *topic;
  int partition_cnt;
  struct rd_kafka_metadata_partition *partitions;
  rd_kafka_resp_err_t err;
} rd_kafka_metadata_topic_t;
typedef struct rd_kafka_metadata {
  int broker_cnt;
  struct rd_kafka_metadata_broker *brokers;
  int topic_cnt;
  struct rd_kafka_metadata_topic *topics;
  int32_t orig_broker_id;
  char *orig_broker_name;
} rd_kafka_metadata_t;
rd_kafka_resp_err_t rd_kafka_metadata(rd_kafka_t *rk, int all_topics, rd_kafka_topic_t *only_rkt, const struct rd_kafka_metadata **metadatap, int timeout_ms);
void rd_kafka_metadata_destroy(const struct rd_kafka_metadata *metadata);
struct rd_kafka_group_member_info {
  char *member_id;
  char *client_id;
  char *client_host;
  void *member_metadata;
  int member_metadata_size;
  void *member_assignment;
  int member_assignment_size;
};
struct rd_kafka_group_info {
  struct rd_kafka_metadata_broker broker;
  char *group;
  rd_kafka_resp_err_t err;
  char *state;
  char *protocol_type;
  char *protocol;
  struct rd_kafka_group_member_info *members;
  int member_cnt;
};
struct rd_kafka_group_list {
  struct rd_kafka_group_info *groups;
  int group_cnt;
};
rd_kafka_resp_err_t rd_kafka_list_groups(rd_kafka_t *rk, const char *group, const struct rd_kafka_group_list **grplistp, int timeout_ms);
void rd_kafka_group_list_destroy(const struct rd_kafka_group_list *grplist);
int rd_kafka_brokers_add(rd_kafka_t *rk, const char *brokerlist);
void rd_kafka_set_logger(rd_kafka_t *rk, void (*func)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_set_log_level(rd_kafka_t *rk, int level);
void rd_kafka_log_print(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
void rd_kafka_log_syslog(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
int rd_kafka_outq_len(rd_kafka_t *rk);
void rd_kafka_dump(FILE *fp, rd_kafka_t *rk);
int rd_kafka_thread_cnt(void);
typedef enum rd_kafka_thread_type_t {
  RD_KAFKA_THREAD_MAIN,
  RD_KAFKA_THREAD_BACKGROUND,
  RD_KAFKA_THREAD_BROKER,
} rd_kafka_thread_type_t;
int rd_kafka_wait_destroyed(int timeout_ms);
int rd_kafka_unittest(void);
rd_kafka_resp_err_t rd_kafka_poll_set_consumer(rd_kafka_t *rk);
typedef int rd_kafka_event_type_t;
rd_kafka_event_type_t rd_kafka_event_type(const rd_kafka_event_t *rkev);
const char *rd_kafka_event_name(const rd_kafka_event_t *rkev);
void rd_kafka_event_destroy(rd_kafka_event_t *rkev);
const rd_kafka_message_t *rd_kafka_event_message_next(rd_kafka_event_t *rkev);
size_t rd_kafka_event_message_array(rd_kafka_event_t *rkev, const rd_kafka_message_t **rkmessages, size_t size);
size_t rd_kafka_event_message_count(rd_kafka_event_t *rkev);
const char *rd_kafka_event_config_string(rd_kafka_event_t *rkev);
rd_kafka_resp_err_t rd_kafka_event_error(rd_kafka_event_t *rkev);
const char *rd_kafka_event_error_string(rd_kafka_event_t *rkev);
int rd_kafka_event_error_is_fatal(rd_kafka_event_t *rkev);
void *rd_kafka_event_opaque(rd_kafka_event_t *rkev);
int rd_kafka_event_log(rd_kafka_event_t *rkev, const char **fac, const char **str, int *level);
int rd_kafka_event_debug_contexts(rd_kafka_event_t *rkev, char *dst, size_t dstsize);
const char *rd_kafka_event_stats(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_list_t *rd_kafka_event_topic_partition_list(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_t *rd_kafka_event_topic_partition(rd_kafka_event_t *rkev);
typedef rd_kafka_event_t rd_kafka_CreateTopics_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteTopics_result_t;
typedef rd_kafka_event_t rd_kafka_CreatePartitions_result_t;
typedef rd_kafka_event_t rd_kafka_AlterConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteRecords_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteGroups_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteConsumerGroupOffsets_result_t;
const rd_kafka_CreateTopics_result_t *rd_kafka_event_CreateTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteTopics_result_t *rd_kafka_event_DeleteTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_CreatePartitions_result_t *rd_kafka_event_CreatePartitions_result(rd_kafka_event_t *rkev);
const rd_kafka_AlterConfigs_result_t *rd_kafka_event_AlterConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeConfigs_result_t *rd_kafka_event_DescribeConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteRecords_result_t *rd_kafka_event_DeleteRecords_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteGroups_result_t *rd_kafka_event_DeleteGroups_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteConsumerGroupOffsets_result_t *rd_kafka_event_DeleteConsumerGroupOffsets_result(rd_kafka_event_t *rkev);
rd_kafka_event_t *rd_kafka_queue_poll(rd_kafka_queue_t *rkqu, int timeout_ms);
int rd_kafka_queue_poll_callback(rd_kafka_queue_t *rkqu, int timeout_ms);
typedef rd_kafka_resp_err_t (rd_kafka_plugin_f_conf_init_t)(rd_kafka_conf_t *conf, void **plug_opaquep, char *errstr, size_t errstr_size);
typedef rd_kafka_conf_res_t (rd_kafka_interceptor_f_on_conf_set_t)(rd_kafka_conf_t *conf, const char *name, const char *val, char *errstr, size_t errstr_size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_dup_t)(rd_kafka_conf_t *new_conf, const rd_kafka_conf_t *old_conf, size_t filter_cnt, const char **filter, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_destroy_t)(void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_new_t)(rd_kafka_t *rk, const rd_kafka_conf_t *conf, void *ic_opaque, char *errstr, size_t errstr_size);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_destroy_t)(rd_kafka_t *rk, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_send_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_acknowledgement_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_consume_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_commit_t)(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_request_sent_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_response_received_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, int64_t rtt, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_start_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_exit_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_set(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_set_t *on_conf_set, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_dup(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_dup_t *on_conf_dup, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_destroy(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_destroy_t *on_conf_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_new(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_new_t *on_new, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_destroy(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_destroy_t *on_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_send(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_send_t *on_send, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_acknowledgement(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_acknowledgement_t *on_acknowledgement, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_consume(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_consume_t *on_consume, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_commit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_commit_t *on_commit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_request_sent(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_request_sent_t *on_request_sent, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_response_received(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_response_received_t *on_response_received, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_start(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_start_t *on_thread_start, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_exit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_exit_t *on_thread_exit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_topic_result_error(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_error_string(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_name(const rd_kafka_topic_result_t *topicres);
const rd_kafka_error_t *rd_kafka_group_result_error(const rd_kafka_group_result_t *groupres);
const char *rd_kafka_group_result_name(const rd_kafka_group_result_t *groupres);
const rd_kafka_topic_partition_list_t *rd_kafka_group_result_partitions(const rd_kafka_group_result_t *groupres);
typedef enum rd_kafka_admin_op_t {
  RD_KAFKA_ADMIN_OP_ANY = 0,
  RD_KAFKA_ADMIN_OP_CREATETOPICS,
  RD_KAFKA_ADMIN_OP_DELETETOPICS,
  RD_KAFKA_ADMIN_OP_CREATEPARTITIONS,
  RD_KAFKA_ADMIN_OP_ALTERCONFIGS,
  RD_KAFKA_ADMIN_OP_DESCRIBECONFIGS,
  RD_KAFKA_ADMIN_OP_DELETERECORDS,
  RD_KAFKA_ADMIN_OP_DELETEGROUPS,
  RD_KAFKA_ADMIN_OP_DELETECONSUMERGROUPOFFSETS,
  RD_KAFKA_ADMIN_OP__CNT,
} rd_kafka_admin_op_t;
typedef struct rd_kafka_AdminOptions_s rd_kafka_AdminOptions_t;
rd_kafka_AdminOptions_t *rd_kafka_AdminOptions_new(rd_kafka_t *rk, rd_kafka_admin_op_t for_api);
void rd_kafka_AdminOptions_destroy(rd_kafka_AdminOptions_t *options);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_request_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_operation_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_validate_only(rd_kafka_AdminOptions_t *options, int true_or_false, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_broker(rd_kafka_AdminOptions_t *options, int32_t broker_id, char *errstr, size_t errstr_size);
void rd_kafka_AdminOptions_set_opaque(rd_kafka_AdminOptions_t *options, void *ev_opaque);
typedef struct rd_kafka_NewTopic_s rd_kafka_NewTopic_t;
rd_kafka_NewTopic_t *rd_kafka_NewTopic_new(const char *topic, int num_partitions, int replication_factor, char *errstr, size_t errstr_size);
void rd_kafka_NewTopic_destroy(rd_kafka_NewTopic_t *new_topic);
void rd_kafka_NewTopic_destroy_array(rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_replica_assignment(rd_kafka_NewTopic_t *new_topic, int32_t partition, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_config(rd_kafka_NewTopic_t *new_topic, const char *name, const char *value);
void rd_kafka_CreateTopics(rd_kafka_t *rk, rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreateTopics_result_topics(const rd_kafka_CreateTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteTopic_s rd_kafka_DeleteTopic_t;
rd_kafka_DeleteTopic_t *rd_kafka_DeleteTopic_new(const char *topic);
void rd_kafka_DeleteTopic_destroy(rd_kafka_DeleteTopic_t *del_topic);
void rd_kafka_DeleteTopic_destroy_array(rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt);
void rd_kafka_DeleteTopics(rd_kafka_t *rk, rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_DeleteTopics_result_topics(const rd_kafka_DeleteTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_NewPartitions_s rd_kafka_NewPartitions_t;
rd_kafka_NewPartitions_t *rd_kafka_NewPartitions_new(const char *topic, size_t new_total_cnt, char *errstr, size_t errstr_size);
void rd_kafka_NewPartitions_destroy(rd_kafka_NewPartitions_t *new_parts);
void rd_kafka_NewPartitions_destroy_array(rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt);
rd_kafka_resp_err_t rd_kafka_NewPartitions_set_replica_assignment(rd_kafka_NewPartitions_t *new_parts, int32_t new_partition_idx, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
void rd_kafka_CreatePartitions(rd_kafka_t *rk, rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreatePartitions_result_topics(const rd_kafka_CreatePartitions_result_t *result, size_t *cntp);
typedef enum rd_kafka_ConfigSource_t {
  RD_KAFKA_CONFIG_SOURCE_UNKNOWN_CONFIG = 0,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG = 1,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG = 2,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG = 3,
  RD_KAFKA_CONFIG_SOURCE_STATIC_BROKER_CONFIG = 4,
  RD_KAFKA_CONFIG_SOURCE_DEFAULT_CONFIG = 5,
  RD_KAFKA_CONFIG_SOURCE__CNT,
} rd_kafka_ConfigSource_t;
const char *rd_kafka_ConfigSource_name(rd_kafka_ConfigSource_t confsource);
typedef struct rd_kafka_ConfigEntry_s rd_kafka_ConfigEntry_t;
const char *rd_kafka_ConfigEntry_name(const rd_kafka_ConfigEntry_t *entry);
const char *rd_kafka_ConfigEntry_value(const rd_kafka_ConfigEntry_t *entry);
rd_kafka_ConfigSource_t rd_kafka_ConfigEntry_source(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_read_only(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_default(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_sensitive(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_synonym(const rd_kafka_ConfigEntry_t *entry);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigEntry_synonyms(const rd_kafka_ConfigEntry_t *entry, size_t *cntp);
typedef enum rd_kafka_ResourceType_t {
  RD_KAFKA_RESOURCE_UNKNOWN = 0,
  RD_KAFKA_RESOURCE_ANY = 1,
  RD_KAFKA_RESOURCE_TOPIC = 2,
  RD_KAFKA_RESOURCE_GROUP = 3,
  RD_KAFKA_RESOURCE_BROKER = 4,
  RD_KAFKA_RESOURCE__CNT,
} rd_kafka_ResourceType_t;
const char *rd_kafka_ResourceType_name(rd_kafka_ResourceType_t restype);
typedef struct rd_kafka_ConfigResource_s rd_kafka_ConfigResource_t;
rd_kafka_ConfigResource_t *rd_kafka_ConfigResource_new(rd_kafka_ResourceType_t restype, const char *resname);
void rd_kafka_ConfigResource_destroy(rd_kafka_ConfigResource_t *config);
void rd_kafka_ConfigResource_destroy_array(rd_kafka_ConfigResource_t **config, size_t config_cnt);
rd_kafka_resp_err_t rd_kafka_ConfigResource_set_config(rd_kafka_ConfigResource_t *config, const char *name, const char *value);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigResource_configs(const rd_kafka_ConfigResource_t *config, size_t *cntp);
rd_kafka_ResourceType_t rd_kafka_ConfigResource_type(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_name(const rd_kafka_ConfigResource_t *config);
rd_kafka_resp_err_t rd_kafka_ConfigResource_error(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_error_string(const rd_kafka_ConfigResource_t *config);
void rd_kafka_AlterConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_AlterConfigs_result_resources(const rd_kafka_AlterConfigs_result_t *result, size_t *cntp);
void rd_kafka_DescribeConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_DescribeConfigs_result_resources(const rd_kafka_DescribeConfigs_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteRecords_s rd_kafka_DeleteRecords_t;
rd_kafka_DeleteRecords_t *rd_kafka_DeleteRecords_new(const rd_kafka_topic_partition_list_t *before_offsets);
void rd_kafka_DeleteRecords_destroy(rd_kafka_DeleteRecords_t *del_records);
void rd_kafka_DeleteRecords_destroy_array(rd_kafka_DeleteRecords_t **del_records, size_t del_record_cnt);
void rd_kafka_DeleteRecords(rd_kafka_t *rk, rd_kafka_DeleteRecords_t **del_records, size_t del_record_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_partition_list_t *rd_kafka_DeleteRecords_result_offsets(const rd_kafka_DeleteRecords_result_t *result);
typedef struct rd_kafka_DeleteGroup_s rd_kafka_DeleteGroup_t;
rd_kafka_DeleteGroup_t *rd_kafka_DeleteGroup_new(const char *group);
void rd_kafka_DeleteGroup_destroy(rd_kafka_DeleteGroup_t *del_group);
void rd_kafka_DeleteGroup_destroy_array(rd_kafka_DeleteGroup_t **del_groups, size_t del_group_cnt);
void rd_kafka_DeleteGroups(rd_kafka_t *rk, rd_kafka_DeleteGroup_t **del_groups, size_t del_group_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_DeleteGroups_result_groups(const rd_kafka_DeleteGroups_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteConsumerGroupOffsets_s rd_kafka_DeleteConsumerGroupOffsets_t;
rd_kafka_DeleteConsumerGroupOffsets_t *rd_kafka_DeleteConsumerGroupOffsets_new(const char *group, const rd_kafka_topic_partition_list_t *partitions);
void rd_kafka_DeleteConsumerGroupOffsets_destroy(rd_kafka_DeleteConsumerGroupOffsets_t *del_grpoffsets);
void rd_kafka_DeleteConsumerGroupOffsets_destroy_array(rd_kafka_DeleteConsumerGroupOffsets_t **del_grpoffsets, size_t del_grpoffset_cnt);
void rd_kafka_DeleteConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_DeleteConsumerGroupOffsets_t **del_grpoffsets, size_t del_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_DeleteConsumerGroupOffsets_result_groups(const rd_kafka_DeleteConsumerGroupOffsets_result_t *result, size_t *cntp);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token(rd_kafka_t *rk, const char *token_value, int64_t md_lifetime_ms, const char *md_principal_name, const char **extensions, size_t extension_size, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token_failure(rd_kafka_t *rk, const char *errstr);
rd_kafka_error_t *rd_kafka_init_transactions(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_begin_transaction(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_send_offsets_to_transaction(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, const rd_kafka_consumer_group_metadata_t *cgmetadata, int timeout_ms);
rd_kafka_error_t *rd_kafka_commit_transaction(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_abort_transaction(rd_kafka_t *rk, int timeout_ms);
typedef struct rd_kafka_mock_cluster_s rd_kafka_mock_cluster_t;
rd_kafka_mock_cluster_t *rd_kafka_mock_cluster_new(rd_kafka_t *rk, int broker_cnt);
void rd_kafka_mock_cluster_destroy(rd_kafka_mock_cluster_t *mcluster);
rd_kafka_t *rd_kafka_mock_cluster_handle(const rd_kafka_mock_cluster_t *mcluster);
rd_kafka_mock_cluster_t *rd_kafka_handle_mock_cluster(const rd_kafka_t *rk);
const char *rd_kafka_mock_cluster_bootstraps(const rd_kafka_mock_cluster_t *mcluster);
void rd_kafka_mock_clear_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey);
void rd_kafka_mock_push_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, ...);
void rd_kafka_mock_push_request_errors_array(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, const rd_kafka_resp_err_t *errors);
rd_kafka_resp_err_t rd_kafka_mock_broker_push_request_error_rtts(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int16_t ApiKey, size_t cnt, ...);
void rd_kafka_mock_topic_set_error(rd_kafka_mock_cluster_t *mcluster, const char *topic, rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_mock_topic_create(rd_kafka_mock_cluster_t *mcluster, const char *topic, int partition_cnt, int replication_factor);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_leader(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower_wmarks(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int64_t lo, int64_t hi);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_down(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_up(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rtt(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int rtt_ms);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rack(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, const char *rack);
rd_kafka_resp_err_t rd_kafka_mock_coordinator_set(rd_kafka_mock_cluster_t *mcluster, const char *key_type, const char *key, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_set_apiversion(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, int16_t MinVersion, int16_t MaxVersion);
'
rdkafka.h, rdkafka_mock.h

RD_KAFKA_VERSION

public RD_KAFKA_VERSION = 17301759

librdkafka version

Interpreted as hex MM.mm.rr.xx:

  • MM = Major
  • mm = minor
  • rr = revision
  • xx = pre-release id (0xff is the final release)

E.g.: 0x000801ff = 0.8.1

Remarks
This value should only be used during compile time, for runtime checks of version use rd_kafka_version()

RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE

public RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76

Unsupported compression type

RD_KAFKA_RESP_ERR_END_ALL

public RD_KAFKA_RESP_ERR_END_ALL = 98
enum rd_kafka_resp_err_t

RD_KAFKA_ADMIN_OP__CNT

public RD_KAFKA_ADMIN_OP__CNT = 9

Number of ops defined

RD_KAFKA_CDEF

public RD_KAFKA_CDEF = 'typedef long int ssize_t;
typedef struct _IO_FILE FILE;
typedef long int mode_t;
typedef signed int int16_t;
typedef unsigned int uint16_t;
typedef signed int int32_t;
typedef signed long int int64_t;
int rd_kafka_version(void);
const char *rd_kafka_version_str(void);
typedef enum rd_kafka_type_t {
  RD_KAFKA_PRODUCER,
  RD_KAFKA_CONSUMER,
} rd_kafka_type_t;
typedef enum rd_kafka_timestamp_type_t {
  RD_KAFKA_TIMESTAMP_NOT_AVAILABLE,
  RD_KAFKA_TIMESTAMP_CREATE_TIME,
  RD_KAFKA_TIMESTAMP_LOG_APPEND_TIME,
} rd_kafka_timestamp_type_t;
const char *rd_kafka_get_debug_contexts(void);
typedef struct rd_kafka_s rd_kafka_t;
typedef struct rd_kafka_topic_s rd_kafka_topic_t;
typedef struct rd_kafka_conf_s rd_kafka_conf_t;
typedef struct rd_kafka_topic_conf_s rd_kafka_topic_conf_t;
typedef struct rd_kafka_queue_s rd_kafka_queue_t;
typedef struct rd_kafka_op_s rd_kafka_event_t;
typedef struct rd_kafka_topic_result_s rd_kafka_topic_result_t;
typedef struct rd_kafka_consumer_group_metadata_s rd_kafka_consumer_group_metadata_t;
typedef struct rd_kafka_error_s {
  unsigned int code;
  char *errstr;
  unsigned char fatal;
  unsigned char retriable;
  unsigned char txn_requires_abort;
} rd_kafka_error_t;
typedef struct rd_kafka_headers_s rd_kafka_headers_t;
typedef struct rd_kafka_group_result_s rd_kafka_group_result_t;
typedef enum {
  RD_KAFKA_RESP_ERR__BEGIN = (- 200),
  RD_KAFKA_RESP_ERR__BAD_MSG = (- 199),
  RD_KAFKA_RESP_ERR__BAD_COMPRESSION = (- 198),
  RD_KAFKA_RESP_ERR__DESTROY = (- 197),
  RD_KAFKA_RESP_ERR__FAIL = (- 196),
  RD_KAFKA_RESP_ERR__TRANSPORT = (- 195),
  RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE = (- 194),
  RD_KAFKA_RESP_ERR__RESOLVE = (- 193),
  RD_KAFKA_RESP_ERR__MSG_TIMED_OUT = (- 192),
  RD_KAFKA_RESP_ERR__PARTITION_EOF = (- 191),
  RD_KAFKA_RESP_ERR__UNKNOWN_PARTITION = (- 190),
  RD_KAFKA_RESP_ERR__FS = (- 189),
  RD_KAFKA_RESP_ERR__UNKNOWN_TOPIC = (- 188),
  RD_KAFKA_RESP_ERR__ALL_BROKERS_DOWN = (- 187),
  RD_KAFKA_RESP_ERR__INVALID_ARG = (- 186),
  RD_KAFKA_RESP_ERR__TIMED_OUT = (- 185),
  RD_KAFKA_RESP_ERR__QUEUE_FULL = (- 184),
  RD_KAFKA_RESP_ERR__ISR_INSUFF = (- 183),
  RD_KAFKA_RESP_ERR__NODE_UPDATE = (- 182),
  RD_KAFKA_RESP_ERR__SSL = (- 181),
  RD_KAFKA_RESP_ERR__WAIT_COORD = (- 180),
  RD_KAFKA_RESP_ERR__UNKNOWN_GROUP = (- 179),
  RD_KAFKA_RESP_ERR__IN_PROGRESS = (- 178),
  RD_KAFKA_RESP_ERR__PREV_IN_PROGRESS = (- 177),
  RD_KAFKA_RESP_ERR__EXISTING_SUBSCRIPTION = (- 176),
  RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS = (- 175),
  RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS = (- 174),
  RD_KAFKA_RESP_ERR__CONFLICT = (- 173),
  RD_KAFKA_RESP_ERR__STATE = (- 172),
  RD_KAFKA_RESP_ERR__UNKNOWN_PROTOCOL = (- 171),
  RD_KAFKA_RESP_ERR__NOT_IMPLEMENTED = (- 170),
  RD_KAFKA_RESP_ERR__AUTHENTICATION = (- 169),
  RD_KAFKA_RESP_ERR__NO_OFFSET = (- 168),
  RD_KAFKA_RESP_ERR__OUTDATED = (- 167),
  RD_KAFKA_RESP_ERR__TIMED_OUT_QUEUE = (- 166),
  RD_KAFKA_RESP_ERR__UNSUPPORTED_FEATURE = (- 165),
  RD_KAFKA_RESP_ERR__WAIT_CACHE = (- 164),
  RD_KAFKA_RESP_ERR__INTR = (- 163),
  RD_KAFKA_RESP_ERR__KEY_SERIALIZATION = (- 162),
  RD_KAFKA_RESP_ERR__VALUE_SERIALIZATION = (- 161),
  RD_KAFKA_RESP_ERR__KEY_DESERIALIZATION = (- 160),
  RD_KAFKA_RESP_ERR__VALUE_DESERIALIZATION = (- 159),
  RD_KAFKA_RESP_ERR__PARTIAL = (- 158),
  RD_KAFKA_RESP_ERR__READ_ONLY = (- 157),
  RD_KAFKA_RESP_ERR__NOENT = (- 156),
  RD_KAFKA_RESP_ERR__UNDERFLOW = (- 155),
  RD_KAFKA_RESP_ERR__INVALID_TYPE = (- 154),
  RD_KAFKA_RESP_ERR__RETRY = (- 153),
  RD_KAFKA_RESP_ERR__PURGE_QUEUE = (- 152),
  RD_KAFKA_RESP_ERR__PURGE_INFLIGHT = (- 151),
  RD_KAFKA_RESP_ERR__FATAL = (- 150),
  RD_KAFKA_RESP_ERR__INCONSISTENT = (- 149),
  RD_KAFKA_RESP_ERR__GAPLESS_GUARANTEE = (- 148),
  RD_KAFKA_RESP_ERR__MAX_POLL_EXCEEDED = (- 147),
  RD_KAFKA_RESP_ERR__UNKNOWN_BROKER = (- 146),
  RD_KAFKA_RESP_ERR__NOT_CONFIGURED = (- 145),
  RD_KAFKA_RESP_ERR__FENCED = (- 144),
  RD_KAFKA_RESP_ERR__APPLICATION = (- 143),
  RD_KAFKA_RESP_ERR__ASSIGNMENT_LOST = (- 142),
  RD_KAFKA_RESP_ERR__NOOP = (- 141),
  RD_KAFKA_RESP_ERR__AUTO_OFFSET_RESET = (- 140),
  RD_KAFKA_RESP_ERR__END = (- 100),
  RD_KAFKA_RESP_ERR_UNKNOWN = (- 1),
  RD_KAFKA_RESP_ERR_NO_ERROR = 0,
  RD_KAFKA_RESP_ERR_OFFSET_OUT_OF_RANGE = 1,
  RD_KAFKA_RESP_ERR_INVALID_MSG = 2,
  RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_OR_PART = 3,
  RD_KAFKA_RESP_ERR_INVALID_MSG_SIZE = 4,
  RD_KAFKA_RESP_ERR_LEADER_NOT_AVAILABLE = 5,
  RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION = 6,
  RD_KAFKA_RESP_ERR_REQUEST_TIMED_OUT = 7,
  RD_KAFKA_RESP_ERR_BROKER_NOT_AVAILABLE = 8,
  RD_KAFKA_RESP_ERR_REPLICA_NOT_AVAILABLE = 9,
  RD_KAFKA_RESP_ERR_MSG_SIZE_TOO_LARGE = 10,
  RD_KAFKA_RESP_ERR_STALE_CTRL_EPOCH = 11,
  RD_KAFKA_RESP_ERR_OFFSET_METADATA_TOO_LARGE = 12,
  RD_KAFKA_RESP_ERR_NETWORK_EXCEPTION = 13,
  RD_KAFKA_RESP_ERR_COORDINATOR_LOAD_IN_PROGRESS = 14,
  RD_KAFKA_RESP_ERR_COORDINATOR_NOT_AVAILABLE = 15,
  RD_KAFKA_RESP_ERR_NOT_COORDINATOR = 16,
  RD_KAFKA_RESP_ERR_TOPIC_EXCEPTION = 17,
  RD_KAFKA_RESP_ERR_RECORD_LIST_TOO_LARGE = 18,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS = 19,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS_AFTER_APPEND = 20,
  RD_KAFKA_RESP_ERR_INVALID_REQUIRED_ACKS = 21,
  RD_KAFKA_RESP_ERR_ILLEGAL_GENERATION = 22,
  RD_KAFKA_RESP_ERR_INCONSISTENT_GROUP_PROTOCOL = 23,
  RD_KAFKA_RESP_ERR_INVALID_GROUP_ID = 24,
  RD_KAFKA_RESP_ERR_UNKNOWN_MEMBER_ID = 25,
  RD_KAFKA_RESP_ERR_INVALID_SESSION_TIMEOUT = 26,
  RD_KAFKA_RESP_ERR_REBALANCE_IN_PROGRESS = 27,
  RD_KAFKA_RESP_ERR_INVALID_COMMIT_OFFSET_SIZE = 28,
  RD_KAFKA_RESP_ERR_TOPIC_AUTHORIZATION_FAILED = 29,
  RD_KAFKA_RESP_ERR_GROUP_AUTHORIZATION_FAILED = 30,
  RD_KAFKA_RESP_ERR_CLUSTER_AUTHORIZATION_FAILED = 31,
  RD_KAFKA_RESP_ERR_INVALID_TIMESTAMP = 32,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_SASL_MECHANISM = 33,
  RD_KAFKA_RESP_ERR_ILLEGAL_SASL_STATE = 34,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_VERSION = 35,
  RD_KAFKA_RESP_ERR_TOPIC_ALREADY_EXISTS = 36,
  RD_KAFKA_RESP_ERR_INVALID_PARTITIONS = 37,
  RD_KAFKA_RESP_ERR_INVALID_REPLICATION_FACTOR = 38,
  RD_KAFKA_RESP_ERR_INVALID_REPLICA_ASSIGNMENT = 39,
  RD_KAFKA_RESP_ERR_INVALID_CONFIG = 40,
  RD_KAFKA_RESP_ERR_NOT_CONTROLLER = 41,
  RD_KAFKA_RESP_ERR_INVALID_REQUEST = 42,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_FOR_MESSAGE_FORMAT = 43,
  RD_KAFKA_RESP_ERR_POLICY_VIOLATION = 44,
  RD_KAFKA_RESP_ERR_OUT_OF_ORDER_SEQUENCE_NUMBER = 45,
  RD_KAFKA_RESP_ERR_DUPLICATE_SEQUENCE_NUMBER = 46,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_EPOCH = 47,
  RD_KAFKA_RESP_ERR_INVALID_TXN_STATE = 48,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_ID_MAPPING = 49,
  RD_KAFKA_RESP_ERR_INVALID_TRANSACTION_TIMEOUT = 50,
  RD_KAFKA_RESP_ERR_CONCURRENT_TRANSACTIONS = 51,
  RD_KAFKA_RESP_ERR_TRANSACTION_COORDINATOR_FENCED = 52,
  RD_KAFKA_RESP_ERR_TRANSACTIONAL_ID_AUTHORIZATION_FAILED = 53,
  RD_KAFKA_RESP_ERR_SECURITY_DISABLED = 54,
  RD_KAFKA_RESP_ERR_OPERATION_NOT_ATTEMPTED = 55,
  RD_KAFKA_RESP_ERR_KAFKA_STORAGE_ERROR = 56,
  RD_KAFKA_RESP_ERR_LOG_DIR_NOT_FOUND = 57,
  RD_KAFKA_RESP_ERR_SASL_AUTHENTICATION_FAILED = 58,
  RD_KAFKA_RESP_ERR_UNKNOWN_PRODUCER_ID = 59,
  RD_KAFKA_RESP_ERR_REASSIGNMENT_IN_PROGRESS = 60,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTH_DISABLED = 61,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_NOT_FOUND = 62,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_OWNER_MISMATCH = 63,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_REQUEST_NOT_ALLOWED = 64,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTHORIZATION_FAILED = 65,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_EXPIRED = 66,
  RD_KAFKA_RESP_ERR_INVALID_PRINCIPAL_TYPE = 67,
  RD_KAFKA_RESP_ERR_NON_EMPTY_GROUP = 68,
  RD_KAFKA_RESP_ERR_GROUP_ID_NOT_FOUND = 69,
  RD_KAFKA_RESP_ERR_FETCH_SESSION_ID_NOT_FOUND = 70,
  RD_KAFKA_RESP_ERR_INVALID_FETCH_SESSION_EPOCH = 71,
  RD_KAFKA_RESP_ERR_LISTENER_NOT_FOUND = 72,
  RD_KAFKA_RESP_ERR_TOPIC_DELETION_DISABLED = 73,
  RD_KAFKA_RESP_ERR_FENCED_LEADER_EPOCH = 74,
  RD_KAFKA_RESP_ERR_UNKNOWN_LEADER_EPOCH = 75,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76,
  RD_KAFKA_RESP_ERR_STALE_BROKER_EPOCH = 77,
  RD_KAFKA_RESP_ERR_OFFSET_NOT_AVAILABLE = 78,
  RD_KAFKA_RESP_ERR_MEMBER_ID_REQUIRED = 79,
  RD_KAFKA_RESP_ERR_PREFERRED_LEADER_NOT_AVAILABLE = 80,
  RD_KAFKA_RESP_ERR_GROUP_MAX_SIZE_REACHED = 81,
  RD_KAFKA_RESP_ERR_FENCED_INSTANCE_ID = 82,
  RD_KAFKA_RESP_ERR_ELIGIBLE_LEADERS_NOT_AVAILABLE = 83,
  RD_KAFKA_RESP_ERR_ELECTION_NOT_NEEDED = 84,
  RD_KAFKA_RESP_ERR_NO_REASSIGNMENT_IN_PROGRESS = 85,
  RD_KAFKA_RESP_ERR_GROUP_SUBSCRIBED_TO_TOPIC = 86,
  RD_KAFKA_RESP_ERR_INVALID_RECORD = 87,
  RD_KAFKA_RESP_ERR_UNSTABLE_OFFSET_COMMIT = 88,
  RD_KAFKA_RESP_ERR_THROTTLING_QUOTA_EXCEEDED = 89,
  RD_KAFKA_RESP_ERR_PRODUCER_FENCED = 90,
  RD_KAFKA_RESP_ERR_RESOURCE_NOT_FOUND = 91,
  RD_KAFKA_RESP_ERR_DUPLICATE_RESOURCE = 92,
  RD_KAFKA_RESP_ERR_UNACCEPTABLE_CREDENTIAL = 93,
  RD_KAFKA_RESP_ERR_INCONSISTENT_VOTER_SET = 94,
  RD_KAFKA_RESP_ERR_INVALID_UPDATE_VERSION = 95,
  RD_KAFKA_RESP_ERR_FEATURE_UPDATE_FAILED = 96,
  RD_KAFKA_RESP_ERR_PRINCIPAL_DESERIALIZATION_FAILURE = 97,
  RD_KAFKA_RESP_ERR_END_ALL,
} rd_kafka_resp_err_t;
struct rd_kafka_err_desc {
  rd_kafka_resp_err_t code;
  char *name;
  char *desc;
};
void rd_kafka_get_err_descs(const struct rd_kafka_err_desc **errdescs, size_t *cntp);
const char *rd_kafka_err2str(rd_kafka_resp_err_t err);
const char *rd_kafka_err2name(rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_last_error(void);
rd_kafka_resp_err_t rd_kafka_errno2err(int errnox);
int rd_kafka_errno(void);
rd_kafka_resp_err_t rd_kafka_fatal_error(rd_kafka_t *rk, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_test_fatal_error(rd_kafka_t *rk, rd_kafka_resp_err_t err, const char *reason);
rd_kafka_resp_err_t rd_kafka_error_code(const rd_kafka_error_t *error);
const char *rd_kafka_error_name(const rd_kafka_error_t *error);
const char *rd_kafka_error_string(const rd_kafka_error_t *error);
int rd_kafka_error_is_fatal(const rd_kafka_error_t *error);
int rd_kafka_error_is_retriable(const rd_kafka_error_t *error);
int rd_kafka_error_txn_requires_abort(const rd_kafka_error_t *error);
void rd_kafka_error_destroy(rd_kafka_error_t *error);
rd_kafka_error_t *rd_kafka_error_new(rd_kafka_resp_err_t code, const char *fmt, ...);
typedef struct rd_kafka_topic_partition_s {
  char *topic;
  int32_t partition;
  int64_t offset;
  void *metadata;
  size_t metadata_size;
  void *opaque;
  rd_kafka_resp_err_t err;
  void *_private;
} rd_kafka_topic_partition_t;
void rd_kafka_topic_partition_destroy(rd_kafka_topic_partition_t *rktpar);
typedef struct rd_kafka_topic_partition_list_s {
  int cnt;
  int size;
  rd_kafka_topic_partition_t *elems;
} rd_kafka_topic_partition_list_t;
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_new(int size);
void rd_kafka_topic_partition_list_destroy(rd_kafka_topic_partition_list_t *rkparlist);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_add(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_add_range(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t start, int32_t stop);
int rd_kafka_topic_partition_list_del(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
int rd_kafka_topic_partition_list_del_by_idx(rd_kafka_topic_partition_list_t *rktparlist, int idx);
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_copy(const rd_kafka_topic_partition_list_t *src);
rd_kafka_resp_err_t rd_kafka_topic_partition_list_set_offset(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition, int64_t offset);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_find(const rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_sort(rd_kafka_topic_partition_list_t *rktparlist, int (*cmp)(const void *a, const void *b, void *cmp_opaque), void *cmp_opaque);
typedef enum rd_kafka_vtype_t {
  RD_KAFKA_VTYPE_END,
  RD_KAFKA_VTYPE_TOPIC,
  RD_KAFKA_VTYPE_RKT,
  RD_KAFKA_VTYPE_PARTITION,
  RD_KAFKA_VTYPE_VALUE,
  RD_KAFKA_VTYPE_KEY,
  RD_KAFKA_VTYPE_OPAQUE,
  RD_KAFKA_VTYPE_MSGFLAGS,
  RD_KAFKA_VTYPE_TIMESTAMP,
  RD_KAFKA_VTYPE_HEADER,
  RD_KAFKA_VTYPE_HEADERS,
} rd_kafka_vtype_t;
typedef struct rd_kafka_vu_s {
  rd_kafka_vtype_t vtype;
  union {
    char *cstr;
    rd_kafka_topic_t *rkt;
    int i;
    int32_t i32;
    int64_t i64;
    struct {
      void *ptr;
      size_t size;
    } mem;
    struct {
      char *name;
      void *val;
      ssize_t size;
    } header;
    rd_kafka_headers_t *headers;
    void *ptr;
    char _pad[64];
  } u;
} rd_kafka_vu_t;
rd_kafka_headers_t *rd_kafka_headers_new(size_t initial_count);
void rd_kafka_headers_destroy(rd_kafka_headers_t *hdrs);
rd_kafka_headers_t *rd_kafka_headers_copy(const rd_kafka_headers_t *src);
rd_kafka_resp_err_t rd_kafka_header_add(rd_kafka_headers_t *hdrs, const char *name, ssize_t name_size, const void *value, ssize_t value_size);
rd_kafka_resp_err_t rd_kafka_header_remove(rd_kafka_headers_t *hdrs, const char *name);
rd_kafka_resp_err_t rd_kafka_header_get_last(const rd_kafka_headers_t *hdrs, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get(const rd_kafka_headers_t *hdrs, size_t idx, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get_all(const rd_kafka_headers_t *hdrs, size_t idx, const char **namep, const void **valuep, size_t *sizep);
typedef struct rd_kafka_message_s {
  rd_kafka_resp_err_t err;
  rd_kafka_topic_t *rkt;
  int32_t partition;
  void *payload;
  size_t len;
  void *key;
  size_t key_len;
  int64_t offset;
  void *_private;
} rd_kafka_message_t;
void rd_kafka_message_destroy(rd_kafka_message_t *rkmessage);
const char *rd_kafka_message_errstr(const rd_kafka_message_t *rkmessage);
int64_t rd_kafka_message_timestamp(const rd_kafka_message_t *rkmessage, rd_kafka_timestamp_type_t *tstype);
int64_t rd_kafka_message_latency(const rd_kafka_message_t *rkmessage);
int32_t rd_kafka_message_broker_id(const rd_kafka_message_t *rkmessage);
rd_kafka_resp_err_t rd_kafka_message_headers(const rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
rd_kafka_resp_err_t rd_kafka_message_detach_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
void rd_kafka_message_set_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t *hdrs);
size_t rd_kafka_header_cnt(const rd_kafka_headers_t *hdrs);
typedef enum {
  RD_KAFKA_MSG_STATUS_NOT_PERSISTED = 0,
  RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED = 1,
  RD_KAFKA_MSG_STATUS_PERSISTED = 2,
} rd_kafka_msg_status_t;
rd_kafka_msg_status_t rd_kafka_message_status(const rd_kafka_message_t *rkmessage);
typedef enum {
  RD_KAFKA_CONF_UNKNOWN = (- 2),
  RD_KAFKA_CONF_INVALID = (- 1),
  RD_KAFKA_CONF_OK = 0,
} rd_kafka_conf_res_t;
rd_kafka_conf_t *rd_kafka_conf_new(void);
void rd_kafka_conf_destroy(rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup(const rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup_filter(const rd_kafka_conf_t *conf, size_t filter_cnt, const char **filter);
const rd_kafka_conf_t *rd_kafka_conf(rd_kafka_t *rk);
rd_kafka_conf_res_t rd_kafka_conf_set(rd_kafka_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_events(rd_kafka_conf_t *conf, int events);
void rd_kafka_conf_set_background_event_cb(rd_kafka_conf_t *conf, void (*event_cb)(rd_kafka_t *rk, rd_kafka_event_t *rkev, void *opaque));
void rd_kafka_conf_set_dr_cb(rd_kafka_conf_t *conf, void (*dr_cb)(rd_kafka_t *rk, void *payload, size_t len, rd_kafka_resp_err_t err, void *opaque, void *msg_opaque));
void rd_kafka_conf_set_dr_msg_cb(rd_kafka_conf_t *conf, void (*dr_msg_cb)(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_consume_cb(rd_kafka_conf_t *conf, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_rebalance_cb(rd_kafka_conf_t *conf, void (*rebalance_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *partitions, void *opaque));
void rd_kafka_conf_set_offset_commit_cb(rd_kafka_conf_t *conf, void (*offset_commit_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *opaque));
void rd_kafka_conf_set_error_cb(rd_kafka_conf_t *conf, void (*error_cb)(rd_kafka_t *rk, int err, const char *reason, void *opaque));
void rd_kafka_conf_set_throttle_cb(rd_kafka_conf_t *conf, void (*throttle_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int throttle_time_ms, void *opaque));
void rd_kafka_conf_set_log_cb(rd_kafka_conf_t *conf, void (*log_cb)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_conf_set_stats_cb(rd_kafka_conf_t *conf, int (*stats_cb)(rd_kafka_t *rk, char *json, size_t json_len, void *opaque));
void rd_kafka_conf_set_oauthbearer_token_refresh_cb(rd_kafka_conf_t *conf, void (*oauthbearer_token_refresh_cb)(rd_kafka_t *rk, const char *oauthbearer_config, void *opaque));
void rd_kafka_conf_set_socket_cb(rd_kafka_conf_t *conf, int (*socket_cb)(int domain, int type, int protocol, void *opaque));
void rd_kafka_conf_set_connect_cb(rd_kafka_conf_t *conf, int (*connect_cb)(int sockfd, const struct sockaddr *addr, int addrlen, const char *id, void *opaque));
void rd_kafka_conf_set_closesocket_cb(rd_kafka_conf_t *conf, int (*closesocket_cb)(int sockfd, void *opaque));
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert_verify_cb(rd_kafka_conf_t *conf, int (*ssl_cert_verify_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int *x509_error, int depth, const char *buf, size_t size, char *errstr, size_t errstr_size, void *opaque));
typedef enum rd_kafka_cert_type_t {
  RD_KAFKA_CERT_PUBLIC_KEY,
  RD_KAFKA_CERT_PRIVATE_KEY,
  RD_KAFKA_CERT_CA,
  RD_KAFKA_CERT__CNT,
} rd_kafka_cert_type_t;
typedef enum rd_kafka_cert_enc_t {
  RD_KAFKA_CERT_ENC_PKCS12,
  RD_KAFKA_CERT_ENC_DER,
  RD_KAFKA_CERT_ENC_PEM,
  RD_KAFKA_CERT_ENC__CNT,
} rd_kafka_cert_enc_t;
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert(rd_kafka_conf_t *conf, rd_kafka_cert_type_t cert_type, rd_kafka_cert_enc_t cert_enc, const void *buffer, size_t size, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_engine_callback_data(rd_kafka_conf_t *conf, void *callback_data);
void rd_kafka_conf_set_opaque(rd_kafka_conf_t *conf, void *opaque);
void *rd_kafka_opaque(const rd_kafka_t *rk);
void rd_kafka_conf_set_default_topic_conf(rd_kafka_conf_t *conf, rd_kafka_topic_conf_t *tconf);
rd_kafka_topic_conf_t *rd_kafka_conf_get_default_topic_conf(rd_kafka_conf_t *conf);
rd_kafka_conf_res_t rd_kafka_conf_get(const rd_kafka_conf_t *conf, const char *name, char *dest, size_t *dest_size);
rd_kafka_conf_res_t rd_kafka_topic_conf_get(const rd_kafka_topic_conf_t *conf, const char *name, char *dest, size_t *dest_size);
const char **rd_kafka_conf_dump(rd_kafka_conf_t *conf, size_t *cntp);
const char **rd_kafka_topic_conf_dump(rd_kafka_topic_conf_t *conf, size_t *cntp);
void rd_kafka_conf_dump_free(const char **arr, size_t cnt);
void rd_kafka_conf_properties_show(FILE *fp);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_new(void);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_dup(const rd_kafka_topic_conf_t *conf);
rd_kafka_topic_conf_t *rd_kafka_default_topic_conf_dup(rd_kafka_t *rk);
void rd_kafka_topic_conf_destroy(rd_kafka_topic_conf_t *topic_conf);
rd_kafka_conf_res_t rd_kafka_topic_conf_set(rd_kafka_topic_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_topic_conf_set_opaque(rd_kafka_topic_conf_t *conf, void *rkt_opaque);
void rd_kafka_topic_conf_set_partitioner_cb(rd_kafka_topic_conf_t *topic_conf, int32_t (*partitioner)(const rd_kafka_topic_t *rkt, const void *keydata, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque));
void rd_kafka_topic_conf_set_msg_order_cmp(rd_kafka_topic_conf_t *topic_conf, int (*msg_order_cmp)(const rd_kafka_message_t *a, const rd_kafka_message_t *b));
int rd_kafka_topic_partition_available(const rd_kafka_topic_t *rkt, int32_t partition);
int32_t rd_kafka_msg_partitioner_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
rd_kafka_t *rd_kafka_new(rd_kafka_type_t type, rd_kafka_conf_t *conf, char *errstr, size_t errstr_size);
void rd_kafka_destroy(rd_kafka_t *rk);
void rd_kafka_destroy_flags(rd_kafka_t *rk, int flags);
const char *rd_kafka_name(const rd_kafka_t *rk);
rd_kafka_type_t rd_kafka_type(const rd_kafka_t *rk);
char *rd_kafka_memberid(const rd_kafka_t *rk);
char *rd_kafka_clusterid(rd_kafka_t *rk, int timeout_ms);
int32_t rd_kafka_controllerid(rd_kafka_t *rk, int timeout_ms);
rd_kafka_topic_t *rd_kafka_topic_new(rd_kafka_t *rk, const char *topic, rd_kafka_topic_conf_t *conf);
void rd_kafka_topic_destroy(rd_kafka_topic_t *rkt);
const char *rd_kafka_topic_name(const rd_kafka_topic_t *rkt);
void *rd_kafka_topic_opaque(const rd_kafka_topic_t *rkt);
int rd_kafka_poll(rd_kafka_t *rk, int timeout_ms);
void rd_kafka_yield(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_pause_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_resume_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_query_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_get_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high);
rd_kafka_resp_err_t rd_kafka_offsets_for_times(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets, int timeout_ms);
void *rd_kafka_mem_calloc(rd_kafka_t *rk, size_t num, size_t size);
void *rd_kafka_mem_malloc(rd_kafka_t *rk, size_t size);
void rd_kafka_mem_free(rd_kafka_t *rk, void *ptr);
rd_kafka_queue_t *rd_kafka_queue_new(rd_kafka_t *rk);
void rd_kafka_queue_destroy(rd_kafka_queue_t *rkqu);
rd_kafka_queue_t *rd_kafka_queue_get_main(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_consumer(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_partition(rd_kafka_t *rk, const char *topic, int32_t partition);
rd_kafka_queue_t *rd_kafka_queue_get_background(rd_kafka_t *rk);
void rd_kafka_queue_forward(rd_kafka_queue_t *src, rd_kafka_queue_t *dst);
rd_kafka_resp_err_t rd_kafka_set_log_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu);
size_t rd_kafka_queue_length(rd_kafka_queue_t *rkqu);
void rd_kafka_queue_io_event_enable(rd_kafka_queue_t *rkqu, int fd, const void *payload, size_t size);
void rd_kafka_queue_cb_event_enable(rd_kafka_queue_t *rkqu, void (*event_cb)(rd_kafka_t *rk, void *qev_opaque), void *qev_opaque);
void rd_kafka_queue_yield(rd_kafka_queue_t *rkqu);
int rd_kafka_consume_start(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
int rd_kafka_consume_start_queue(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, rd_kafka_queue_t *rkqu);
int rd_kafka_consume_stop(rd_kafka_topic_t *rkt, int32_t partition);
rd_kafka_resp_err_t rd_kafka_seek(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, int timeout_ms);
rd_kafka_error_t *rd_kafka_seek_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_message_t *rd_kafka_consume(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms);
ssize_t rd_kafka_consume_batch(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_message_t *rd_kafka_consume_queue(rd_kafka_queue_t *rkqu, int timeout_ms);
ssize_t rd_kafka_consume_batch_queue(rd_kafka_queue_t *rkqu, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback_queue(rd_kafka_queue_t *rkqu, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_offset_store(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
rd_kafka_resp_err_t rd_kafka_offsets_store(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets);
rd_kafka_resp_err_t rd_kafka_subscribe(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *topics);
rd_kafka_resp_err_t rd_kafka_unsubscribe(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_subscription(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **topics);
rd_kafka_message_t *rd_kafka_consumer_poll(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_consumer_close(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_incremental_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_error_t *rd_kafka_incremental_unassign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
const char *rd_kafka_rebalance_protocol(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_assignment(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **partitions);
int rd_kafka_assignment_lost(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_commit(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, int async);
rd_kafka_resp_err_t rd_kafka_commit_message(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, int async);
rd_kafka_resp_err_t rd_kafka_commit_queue(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_queue_t *rkqu, void (*cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_committed(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_position(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata(rd_kafka_t *rk);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new(const char *group_id);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new_with_genid(const char *group_id, int32_t generation_id, const char *member_id, const char *group_instance_id);
void rd_kafka_consumer_group_metadata_destroy(rd_kafka_consumer_group_metadata_t *);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_write(const rd_kafka_consumer_group_metadata_t *cgmd, void **bufferp, size_t *sizep);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_read(rd_kafka_consumer_group_metadata_t **cgmdp, const void *buffer, size_t size);
int rd_kafka_produce(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, void *payload, size_t len, const void *key, size_t keylen, void *msg_opaque);
rd_kafka_resp_err_t rd_kafka_producev(rd_kafka_t *rk, ...);
rd_kafka_error_t *rd_kafka_produceva(rd_kafka_t *rk, const rd_kafka_vu_t *vus, size_t cnt);
int rd_kafka_produce_batch(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, rd_kafka_message_t *rkmessages, int message_cnt);
rd_kafka_resp_err_t rd_kafka_flush(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_purge(rd_kafka_t *rk, int purge_flags);
typedef struct rd_kafka_metadata_broker {
  int32_t id;
  char *host;
  int port;
} rd_kafka_metadata_broker_t;
typedef struct rd_kafka_metadata_partition {
  int32_t id;
  rd_kafka_resp_err_t err;
  int32_t leader;
  int replica_cnt;
  int32_t *replicas;
  int isr_cnt;
  int32_t *isrs;
} rd_kafka_metadata_partition_t;
typedef struct rd_kafka_metadata_topic {
  char *topic;
  int partition_cnt;
  struct rd_kafka_metadata_partition *partitions;
  rd_kafka_resp_err_t err;
} rd_kafka_metadata_topic_t;
typedef struct rd_kafka_metadata {
  int broker_cnt;
  struct rd_kafka_metadata_broker *brokers;
  int topic_cnt;
  struct rd_kafka_metadata_topic *topics;
  int32_t orig_broker_id;
  char *orig_broker_name;
} rd_kafka_metadata_t;
rd_kafka_resp_err_t rd_kafka_metadata(rd_kafka_t *rk, int all_topics, rd_kafka_topic_t *only_rkt, const struct rd_kafka_metadata **metadatap, int timeout_ms);
void rd_kafka_metadata_destroy(const struct rd_kafka_metadata *metadata);
struct rd_kafka_group_member_info {
  char *member_id;
  char *client_id;
  char *client_host;
  void *member_metadata;
  int member_metadata_size;
  void *member_assignment;
  int member_assignment_size;
};
struct rd_kafka_group_info {
  struct rd_kafka_metadata_broker broker;
  char *group;
  rd_kafka_resp_err_t err;
  char *state;
  char *protocol_type;
  char *protocol;
  struct rd_kafka_group_member_info *members;
  int member_cnt;
};
struct rd_kafka_group_list {
  struct rd_kafka_group_info *groups;
  int group_cnt;
};
rd_kafka_resp_err_t rd_kafka_list_groups(rd_kafka_t *rk, const char *group, const struct rd_kafka_group_list **grplistp, int timeout_ms);
void rd_kafka_group_list_destroy(const struct rd_kafka_group_list *grplist);
int rd_kafka_brokers_add(rd_kafka_t *rk, const char *brokerlist);
void rd_kafka_set_logger(rd_kafka_t *rk, void (*func)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_set_log_level(rd_kafka_t *rk, int level);
void rd_kafka_log_print(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
void rd_kafka_log_syslog(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
int rd_kafka_outq_len(rd_kafka_t *rk);
void rd_kafka_dump(FILE *fp, rd_kafka_t *rk);
int rd_kafka_thread_cnt(void);
typedef enum rd_kafka_thread_type_t {
  RD_KAFKA_THREAD_MAIN,
  RD_KAFKA_THREAD_BACKGROUND,
  RD_KAFKA_THREAD_BROKER,
} rd_kafka_thread_type_t;
int rd_kafka_wait_destroyed(int timeout_ms);
int rd_kafka_unittest(void);
rd_kafka_resp_err_t rd_kafka_poll_set_consumer(rd_kafka_t *rk);
typedef int rd_kafka_event_type_t;
rd_kafka_event_type_t rd_kafka_event_type(const rd_kafka_event_t *rkev);
const char *rd_kafka_event_name(const rd_kafka_event_t *rkev);
void rd_kafka_event_destroy(rd_kafka_event_t *rkev);
const rd_kafka_message_t *rd_kafka_event_message_next(rd_kafka_event_t *rkev);
size_t rd_kafka_event_message_array(rd_kafka_event_t *rkev, const rd_kafka_message_t **rkmessages, size_t size);
size_t rd_kafka_event_message_count(rd_kafka_event_t *rkev);
const char *rd_kafka_event_config_string(rd_kafka_event_t *rkev);
rd_kafka_resp_err_t rd_kafka_event_error(rd_kafka_event_t *rkev);
const char *rd_kafka_event_error_string(rd_kafka_event_t *rkev);
int rd_kafka_event_error_is_fatal(rd_kafka_event_t *rkev);
void *rd_kafka_event_opaque(rd_kafka_event_t *rkev);
int rd_kafka_event_log(rd_kafka_event_t *rkev, const char **fac, const char **str, int *level);
int rd_kafka_event_debug_contexts(rd_kafka_event_t *rkev, char *dst, size_t dstsize);
const char *rd_kafka_event_stats(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_list_t *rd_kafka_event_topic_partition_list(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_t *rd_kafka_event_topic_partition(rd_kafka_event_t *rkev);
typedef rd_kafka_event_t rd_kafka_CreateTopics_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteTopics_result_t;
typedef rd_kafka_event_t rd_kafka_CreatePartitions_result_t;
typedef rd_kafka_event_t rd_kafka_AlterConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteRecords_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteGroups_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteConsumerGroupOffsets_result_t;
const rd_kafka_CreateTopics_result_t *rd_kafka_event_CreateTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteTopics_result_t *rd_kafka_event_DeleteTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_CreatePartitions_result_t *rd_kafka_event_CreatePartitions_result(rd_kafka_event_t *rkev);
const rd_kafka_AlterConfigs_result_t *rd_kafka_event_AlterConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeConfigs_result_t *rd_kafka_event_DescribeConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteRecords_result_t *rd_kafka_event_DeleteRecords_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteGroups_result_t *rd_kafka_event_DeleteGroups_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteConsumerGroupOffsets_result_t *rd_kafka_event_DeleteConsumerGroupOffsets_result(rd_kafka_event_t *rkev);
rd_kafka_event_t *rd_kafka_queue_poll(rd_kafka_queue_t *rkqu, int timeout_ms);
int rd_kafka_queue_poll_callback(rd_kafka_queue_t *rkqu, int timeout_ms);
typedef rd_kafka_resp_err_t (rd_kafka_plugin_f_conf_init_t)(rd_kafka_conf_t *conf, void **plug_opaquep, char *errstr, size_t errstr_size);
typedef rd_kafka_conf_res_t (rd_kafka_interceptor_f_on_conf_set_t)(rd_kafka_conf_t *conf, const char *name, const char *val, char *errstr, size_t errstr_size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_dup_t)(rd_kafka_conf_t *new_conf, const rd_kafka_conf_t *old_conf, size_t filter_cnt, const char **filter, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_destroy_t)(void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_new_t)(rd_kafka_t *rk, const rd_kafka_conf_t *conf, void *ic_opaque, char *errstr, size_t errstr_size);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_destroy_t)(rd_kafka_t *rk, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_send_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_acknowledgement_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_consume_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_commit_t)(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_request_sent_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_response_received_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, int64_t rtt, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_start_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_exit_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_set(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_set_t *on_conf_set, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_dup(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_dup_t *on_conf_dup, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_destroy(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_destroy_t *on_conf_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_new(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_new_t *on_new, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_destroy(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_destroy_t *on_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_send(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_send_t *on_send, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_acknowledgement(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_acknowledgement_t *on_acknowledgement, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_consume(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_consume_t *on_consume, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_commit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_commit_t *on_commit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_request_sent(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_request_sent_t *on_request_sent, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_response_received(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_response_received_t *on_response_received, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_start(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_start_t *on_thread_start, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_exit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_exit_t *on_thread_exit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_topic_result_error(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_error_string(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_name(const rd_kafka_topic_result_t *topicres);
const rd_kafka_error_t *rd_kafka_group_result_error(const rd_kafka_group_result_t *groupres);
const char *rd_kafka_group_result_name(const rd_kafka_group_result_t *groupres);
const rd_kafka_topic_partition_list_t *rd_kafka_group_result_partitions(const rd_kafka_group_result_t *groupres);
typedef enum rd_kafka_admin_op_t {
  RD_KAFKA_ADMIN_OP_ANY = 0,
  RD_KAFKA_ADMIN_OP_CREATETOPICS,
  RD_KAFKA_ADMIN_OP_DELETETOPICS,
  RD_KAFKA_ADMIN_OP_CREATEPARTITIONS,
  RD_KAFKA_ADMIN_OP_ALTERCONFIGS,
  RD_KAFKA_ADMIN_OP_DESCRIBECONFIGS,
  RD_KAFKA_ADMIN_OP_DELETERECORDS,
  RD_KAFKA_ADMIN_OP_DELETEGROUPS,
  RD_KAFKA_ADMIN_OP_DELETECONSUMERGROUPOFFSETS,
  RD_KAFKA_ADMIN_OP__CNT,
} rd_kafka_admin_op_t;
typedef struct rd_kafka_AdminOptions_s rd_kafka_AdminOptions_t;
rd_kafka_AdminOptions_t *rd_kafka_AdminOptions_new(rd_kafka_t *rk, rd_kafka_admin_op_t for_api);
void rd_kafka_AdminOptions_destroy(rd_kafka_AdminOptions_t *options);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_request_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_operation_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_validate_only(rd_kafka_AdminOptions_t *options, int true_or_false, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_broker(rd_kafka_AdminOptions_t *options, int32_t broker_id, char *errstr, size_t errstr_size);
void rd_kafka_AdminOptions_set_opaque(rd_kafka_AdminOptions_t *options, void *ev_opaque);
typedef struct rd_kafka_NewTopic_s rd_kafka_NewTopic_t;
rd_kafka_NewTopic_t *rd_kafka_NewTopic_new(const char *topic, int num_partitions, int replication_factor, char *errstr, size_t errstr_size);
void rd_kafka_NewTopic_destroy(rd_kafka_NewTopic_t *new_topic);
void rd_kafka_NewTopic_destroy_array(rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_replica_assignment(rd_kafka_NewTopic_t *new_topic, int32_t partition, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_config(rd_kafka_NewTopic_t *new_topic, const char *name, const char *value);
void rd_kafka_CreateTopics(rd_kafka_t *rk, rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreateTopics_result_topics(const rd_kafka_CreateTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteTopic_s rd_kafka_DeleteTopic_t;
rd_kafka_DeleteTopic_t *rd_kafka_DeleteTopic_new(const char *topic);
void rd_kafka_DeleteTopic_destroy(rd_kafka_DeleteTopic_t *del_topic);
void rd_kafka_DeleteTopic_destroy_array(rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt);
void rd_kafka_DeleteTopics(rd_kafka_t *rk, rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_DeleteTopics_result_topics(const rd_kafka_DeleteTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_NewPartitions_s rd_kafka_NewPartitions_t;
rd_kafka_NewPartitions_t *rd_kafka_NewPartitions_new(const char *topic, size_t new_total_cnt, char *errstr, size_t errstr_size);
void rd_kafka_NewPartitions_destroy(rd_kafka_NewPartitions_t *new_parts);
void rd_kafka_NewPartitions_destroy_array(rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt);
rd_kafka_resp_err_t rd_kafka_NewPartitions_set_replica_assignment(rd_kafka_NewPartitions_t *new_parts, int32_t new_partition_idx, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
void rd_kafka_CreatePartitions(rd_kafka_t *rk, rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreatePartitions_result_topics(const rd_kafka_CreatePartitions_result_t *result, size_t *cntp);
typedef enum rd_kafka_ConfigSource_t {
  RD_KAFKA_CONFIG_SOURCE_UNKNOWN_CONFIG = 0,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG = 1,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG = 2,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG = 3,
  RD_KAFKA_CONFIG_SOURCE_STATIC_BROKER_CONFIG = 4,
  RD_KAFKA_CONFIG_SOURCE_DEFAULT_CONFIG = 5,
  RD_KAFKA_CONFIG_SOURCE__CNT,
} rd_kafka_ConfigSource_t;
const char *rd_kafka_ConfigSource_name(rd_kafka_ConfigSource_t confsource);
typedef struct rd_kafka_ConfigEntry_s rd_kafka_ConfigEntry_t;
const char *rd_kafka_ConfigEntry_name(const rd_kafka_ConfigEntry_t *entry);
const char *rd_kafka_ConfigEntry_value(const rd_kafka_ConfigEntry_t *entry);
rd_kafka_ConfigSource_t rd_kafka_ConfigEntry_source(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_read_only(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_default(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_sensitive(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_synonym(const rd_kafka_ConfigEntry_t *entry);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigEntry_synonyms(const rd_kafka_ConfigEntry_t *entry, size_t *cntp);
typedef enum rd_kafka_ResourceType_t {
  RD_KAFKA_RESOURCE_UNKNOWN = 0,
  RD_KAFKA_RESOURCE_ANY = 1,
  RD_KAFKA_RESOURCE_TOPIC = 2,
  RD_KAFKA_RESOURCE_GROUP = 3,
  RD_KAFKA_RESOURCE_BROKER = 4,
  RD_KAFKA_RESOURCE__CNT,
} rd_kafka_ResourceType_t;
const char *rd_kafka_ResourceType_name(rd_kafka_ResourceType_t restype);
typedef struct rd_kafka_ConfigResource_s rd_kafka_ConfigResource_t;
rd_kafka_ConfigResource_t *rd_kafka_ConfigResource_new(rd_kafka_ResourceType_t restype, const char *resname);
void rd_kafka_ConfigResource_destroy(rd_kafka_ConfigResource_t *config);
void rd_kafka_ConfigResource_destroy_array(rd_kafka_ConfigResource_t **config, size_t config_cnt);
rd_kafka_resp_err_t rd_kafka_ConfigResource_set_config(rd_kafka_ConfigResource_t *config, const char *name, const char *value);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigResource_configs(const rd_kafka_ConfigResource_t *config, size_t *cntp);
rd_kafka_ResourceType_t rd_kafka_ConfigResource_type(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_name(const rd_kafka_ConfigResource_t *config);
rd_kafka_resp_err_t rd_kafka_ConfigResource_error(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_error_string(const rd_kafka_ConfigResource_t *config);
void rd_kafka_AlterConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_AlterConfigs_result_resources(const rd_kafka_AlterConfigs_result_t *result, size_t *cntp);
void rd_kafka_DescribeConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_DescribeConfigs_result_resources(const rd_kafka_DescribeConfigs_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteRecords_s rd_kafka_DeleteRecords_t;
rd_kafka_DeleteRecords_t *rd_kafka_DeleteRecords_new(const rd_kafka_topic_partition_list_t *before_offsets);
void rd_kafka_DeleteRecords_destroy(rd_kafka_DeleteRecords_t *del_records);
void rd_kafka_DeleteRecords_destroy_array(rd_kafka_DeleteRecords_t **del_records, size_t del_record_cnt);
void rd_kafka_DeleteRecords(rd_kafka_t *rk, rd_kafka_DeleteRecords_t **del_records, size_t del_record_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_partition_list_t *rd_kafka_DeleteRecords_result_offsets(const rd_kafka_DeleteRecords_result_t *result);
typedef struct rd_kafka_DeleteGroup_s rd_kafka_DeleteGroup_t;
rd_kafka_DeleteGroup_t *rd_kafka_DeleteGroup_new(const char *group);
void rd_kafka_DeleteGroup_destroy(rd_kafka_DeleteGroup_t *del_group);
void rd_kafka_DeleteGroup_destroy_array(rd_kafka_DeleteGroup_t **del_groups, size_t del_group_cnt);
void rd_kafka_DeleteGroups(rd_kafka_t *rk, rd_kafka_DeleteGroup_t **del_groups, size_t del_group_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_DeleteGroups_result_groups(const rd_kafka_DeleteGroups_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteConsumerGroupOffsets_s rd_kafka_DeleteConsumerGroupOffsets_t;
rd_kafka_DeleteConsumerGroupOffsets_t *rd_kafka_DeleteConsumerGroupOffsets_new(const char *group, const rd_kafka_topic_partition_list_t *partitions);
void rd_kafka_DeleteConsumerGroupOffsets_destroy(rd_kafka_DeleteConsumerGroupOffsets_t *del_grpoffsets);
void rd_kafka_DeleteConsumerGroupOffsets_destroy_array(rd_kafka_DeleteConsumerGroupOffsets_t **del_grpoffsets, size_t del_grpoffset_cnt);
void rd_kafka_DeleteConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_DeleteConsumerGroupOffsets_t **del_grpoffsets, size_t del_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_DeleteConsumerGroupOffsets_result_groups(const rd_kafka_DeleteConsumerGroupOffsets_result_t *result, size_t *cntp);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token(rd_kafka_t *rk, const char *token_value, int64_t md_lifetime_ms, const char *md_principal_name, const char **extensions, size_t extension_size, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token_failure(rd_kafka_t *rk, const char *errstr);
rd_kafka_error_t *rd_kafka_init_transactions(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_begin_transaction(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_send_offsets_to_transaction(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, const rd_kafka_consumer_group_metadata_t *cgmetadata, int timeout_ms);
rd_kafka_error_t *rd_kafka_commit_transaction(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_abort_transaction(rd_kafka_t *rk, int timeout_ms);
typedef struct rd_kafka_mock_cluster_s rd_kafka_mock_cluster_t;
rd_kafka_mock_cluster_t *rd_kafka_mock_cluster_new(rd_kafka_t *rk, int broker_cnt);
void rd_kafka_mock_cluster_destroy(rd_kafka_mock_cluster_t *mcluster);
rd_kafka_t *rd_kafka_mock_cluster_handle(const rd_kafka_mock_cluster_t *mcluster);
rd_kafka_mock_cluster_t *rd_kafka_handle_mock_cluster(const rd_kafka_t *rk);
const char *rd_kafka_mock_cluster_bootstraps(const rd_kafka_mock_cluster_t *mcluster);
void rd_kafka_mock_clear_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey);
void rd_kafka_mock_push_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, ...);
void rd_kafka_mock_push_request_errors_array(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, const rd_kafka_resp_err_t *errors);
rd_kafka_resp_err_t rd_kafka_mock_broker_push_request_error_rtts(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int16_t ApiKey, size_t cnt, ...);
void rd_kafka_mock_topic_set_error(rd_kafka_mock_cluster_t *mcluster, const char *topic, rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_mock_topic_create(rd_kafka_mock_cluster_t *mcluster, const char *topic, int partition_cnt, int replication_factor);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_leader(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower_wmarks(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int64_t lo, int64_t hi);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_down(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_up(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rtt(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int rtt_ms);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rack(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, const char *rack);
rd_kafka_resp_err_t rd_kafka_mock_coordinator_set(rd_kafka_mock_cluster_t *mcluster, const char *key_type, const char *key, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_set_apiversion(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, int16_t MinVersion, int16_t MaxVersion);
'
rdkafka.h, rdkafka_mock.h

RD_KAFKA_VERSION

public RD_KAFKA_VERSION = 17302271

librdkafka version

Interpreted as hex MM.mm.rr.xx:

  • MM = Major
  • mm = minor
  • rr = revision
  • xx = pre-release id (0xff is the final release)

E.g.: 0x000801ff = 0.8.1

Remarks
This value should only be used during compile time, for runtime checks of version use rd_kafka_version()

RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE

public RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76

Unsupported compression type

RD_KAFKA_RESP_ERR_END_ALL

public RD_KAFKA_RESP_ERR_END_ALL = 98
enum rd_kafka_resp_err_t

RD_KAFKA_ADMIN_OP__CNT

public RD_KAFKA_ADMIN_OP__CNT = 9

Number of ops defined

RD_KAFKA_CDEF

public RD_KAFKA_CDEF = 'typedef long int ssize_t;
typedef struct _IO_FILE FILE;
typedef long int mode_t;
typedef signed int int16_t;
typedef unsigned int uint16_t;
typedef signed int int32_t;
typedef signed long int int64_t;
int rd_kafka_version(void);
const char *rd_kafka_version_str(void);
typedef enum rd_kafka_type_t {
  RD_KAFKA_PRODUCER,
  RD_KAFKA_CONSUMER,
} rd_kafka_type_t;
typedef enum rd_kafka_timestamp_type_t {
  RD_KAFKA_TIMESTAMP_NOT_AVAILABLE,
  RD_KAFKA_TIMESTAMP_CREATE_TIME,
  RD_KAFKA_TIMESTAMP_LOG_APPEND_TIME,
} rd_kafka_timestamp_type_t;
const char *rd_kafka_get_debug_contexts(void);
typedef struct rd_kafka_s rd_kafka_t;
typedef struct rd_kafka_topic_s rd_kafka_topic_t;
typedef struct rd_kafka_conf_s rd_kafka_conf_t;
typedef struct rd_kafka_topic_conf_s rd_kafka_topic_conf_t;
typedef struct rd_kafka_queue_s rd_kafka_queue_t;
typedef struct rd_kafka_op_s rd_kafka_event_t;
typedef struct rd_kafka_topic_result_s rd_kafka_topic_result_t;
typedef struct rd_kafka_consumer_group_metadata_s rd_kafka_consumer_group_metadata_t;
typedef struct rd_kafka_error_s {
  unsigned int code;
  char *errstr;
  unsigned char fatal;
  unsigned char retriable;
  unsigned char txn_requires_abort;
} rd_kafka_error_t;
typedef struct rd_kafka_headers_s rd_kafka_headers_t;
typedef struct rd_kafka_group_result_s rd_kafka_group_result_t;
typedef enum {
  RD_KAFKA_RESP_ERR__BEGIN = (- 200),
  RD_KAFKA_RESP_ERR__BAD_MSG = (- 199),
  RD_KAFKA_RESP_ERR__BAD_COMPRESSION = (- 198),
  RD_KAFKA_RESP_ERR__DESTROY = (- 197),
  RD_KAFKA_RESP_ERR__FAIL = (- 196),
  RD_KAFKA_RESP_ERR__TRANSPORT = (- 195),
  RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE = (- 194),
  RD_KAFKA_RESP_ERR__RESOLVE = (- 193),
  RD_KAFKA_RESP_ERR__MSG_TIMED_OUT = (- 192),
  RD_KAFKA_RESP_ERR__PARTITION_EOF = (- 191),
  RD_KAFKA_RESP_ERR__UNKNOWN_PARTITION = (- 190),
  RD_KAFKA_RESP_ERR__FS = (- 189),
  RD_KAFKA_RESP_ERR__UNKNOWN_TOPIC = (- 188),
  RD_KAFKA_RESP_ERR__ALL_BROKERS_DOWN = (- 187),
  RD_KAFKA_RESP_ERR__INVALID_ARG = (- 186),
  RD_KAFKA_RESP_ERR__TIMED_OUT = (- 185),
  RD_KAFKA_RESP_ERR__QUEUE_FULL = (- 184),
  RD_KAFKA_RESP_ERR__ISR_INSUFF = (- 183),
  RD_KAFKA_RESP_ERR__NODE_UPDATE = (- 182),
  RD_KAFKA_RESP_ERR__SSL = (- 181),
  RD_KAFKA_RESP_ERR__WAIT_COORD = (- 180),
  RD_KAFKA_RESP_ERR__UNKNOWN_GROUP = (- 179),
  RD_KAFKA_RESP_ERR__IN_PROGRESS = (- 178),
  RD_KAFKA_RESP_ERR__PREV_IN_PROGRESS = (- 177),
  RD_KAFKA_RESP_ERR__EXISTING_SUBSCRIPTION = (- 176),
  RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS = (- 175),
  RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS = (- 174),
  RD_KAFKA_RESP_ERR__CONFLICT = (- 173),
  RD_KAFKA_RESP_ERR__STATE = (- 172),
  RD_KAFKA_RESP_ERR__UNKNOWN_PROTOCOL = (- 171),
  RD_KAFKA_RESP_ERR__NOT_IMPLEMENTED = (- 170),
  RD_KAFKA_RESP_ERR__AUTHENTICATION = (- 169),
  RD_KAFKA_RESP_ERR__NO_OFFSET = (- 168),
  RD_KAFKA_RESP_ERR__OUTDATED = (- 167),
  RD_KAFKA_RESP_ERR__TIMED_OUT_QUEUE = (- 166),
  RD_KAFKA_RESP_ERR__UNSUPPORTED_FEATURE = (- 165),
  RD_KAFKA_RESP_ERR__WAIT_CACHE = (- 164),
  RD_KAFKA_RESP_ERR__INTR = (- 163),
  RD_KAFKA_RESP_ERR__KEY_SERIALIZATION = (- 162),
  RD_KAFKA_RESP_ERR__VALUE_SERIALIZATION = (- 161),
  RD_KAFKA_RESP_ERR__KEY_DESERIALIZATION = (- 160),
  RD_KAFKA_RESP_ERR__VALUE_DESERIALIZATION = (- 159),
  RD_KAFKA_RESP_ERR__PARTIAL = (- 158),
  RD_KAFKA_RESP_ERR__READ_ONLY = (- 157),
  RD_KAFKA_RESP_ERR__NOENT = (- 156),
  RD_KAFKA_RESP_ERR__UNDERFLOW = (- 155),
  RD_KAFKA_RESP_ERR__INVALID_TYPE = (- 154),
  RD_KAFKA_RESP_ERR__RETRY = (- 153),
  RD_KAFKA_RESP_ERR__PURGE_QUEUE = (- 152),
  RD_KAFKA_RESP_ERR__PURGE_INFLIGHT = (- 151),
  RD_KAFKA_RESP_ERR__FATAL = (- 150),
  RD_KAFKA_RESP_ERR__INCONSISTENT = (- 149),
  RD_KAFKA_RESP_ERR__GAPLESS_GUARANTEE = (- 148),
  RD_KAFKA_RESP_ERR__MAX_POLL_EXCEEDED = (- 147),
  RD_KAFKA_RESP_ERR__UNKNOWN_BROKER = (- 146),
  RD_KAFKA_RESP_ERR__NOT_CONFIGURED = (- 145),
  RD_KAFKA_RESP_ERR__FENCED = (- 144),
  RD_KAFKA_RESP_ERR__APPLICATION = (- 143),
  RD_KAFKA_RESP_ERR__ASSIGNMENT_LOST = (- 142),
  RD_KAFKA_RESP_ERR__NOOP = (- 141),
  RD_KAFKA_RESP_ERR__AUTO_OFFSET_RESET = (- 140),
  RD_KAFKA_RESP_ERR__END = (- 100),
  RD_KAFKA_RESP_ERR_UNKNOWN = (- 1),
  RD_KAFKA_RESP_ERR_NO_ERROR = 0,
  RD_KAFKA_RESP_ERR_OFFSET_OUT_OF_RANGE = 1,
  RD_KAFKA_RESP_ERR_INVALID_MSG = 2,
  RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_OR_PART = 3,
  RD_KAFKA_RESP_ERR_INVALID_MSG_SIZE = 4,
  RD_KAFKA_RESP_ERR_LEADER_NOT_AVAILABLE = 5,
  RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION = 6,
  RD_KAFKA_RESP_ERR_REQUEST_TIMED_OUT = 7,
  RD_KAFKA_RESP_ERR_BROKER_NOT_AVAILABLE = 8,
  RD_KAFKA_RESP_ERR_REPLICA_NOT_AVAILABLE = 9,
  RD_KAFKA_RESP_ERR_MSG_SIZE_TOO_LARGE = 10,
  RD_KAFKA_RESP_ERR_STALE_CTRL_EPOCH = 11,
  RD_KAFKA_RESP_ERR_OFFSET_METADATA_TOO_LARGE = 12,
  RD_KAFKA_RESP_ERR_NETWORK_EXCEPTION = 13,
  RD_KAFKA_RESP_ERR_COORDINATOR_LOAD_IN_PROGRESS = 14,
  RD_KAFKA_RESP_ERR_COORDINATOR_NOT_AVAILABLE = 15,
  RD_KAFKA_RESP_ERR_NOT_COORDINATOR = 16,
  RD_KAFKA_RESP_ERR_TOPIC_EXCEPTION = 17,
  RD_KAFKA_RESP_ERR_RECORD_LIST_TOO_LARGE = 18,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS = 19,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS_AFTER_APPEND = 20,
  RD_KAFKA_RESP_ERR_INVALID_REQUIRED_ACKS = 21,
  RD_KAFKA_RESP_ERR_ILLEGAL_GENERATION = 22,
  RD_KAFKA_RESP_ERR_INCONSISTENT_GROUP_PROTOCOL = 23,
  RD_KAFKA_RESP_ERR_INVALID_GROUP_ID = 24,
  RD_KAFKA_RESP_ERR_UNKNOWN_MEMBER_ID = 25,
  RD_KAFKA_RESP_ERR_INVALID_SESSION_TIMEOUT = 26,
  RD_KAFKA_RESP_ERR_REBALANCE_IN_PROGRESS = 27,
  RD_KAFKA_RESP_ERR_INVALID_COMMIT_OFFSET_SIZE = 28,
  RD_KAFKA_RESP_ERR_TOPIC_AUTHORIZATION_FAILED = 29,
  RD_KAFKA_RESP_ERR_GROUP_AUTHORIZATION_FAILED = 30,
  RD_KAFKA_RESP_ERR_CLUSTER_AUTHORIZATION_FAILED = 31,
  RD_KAFKA_RESP_ERR_INVALID_TIMESTAMP = 32,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_SASL_MECHANISM = 33,
  RD_KAFKA_RESP_ERR_ILLEGAL_SASL_STATE = 34,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_VERSION = 35,
  RD_KAFKA_RESP_ERR_TOPIC_ALREADY_EXISTS = 36,
  RD_KAFKA_RESP_ERR_INVALID_PARTITIONS = 37,
  RD_KAFKA_RESP_ERR_INVALID_REPLICATION_FACTOR = 38,
  RD_KAFKA_RESP_ERR_INVALID_REPLICA_ASSIGNMENT = 39,
  RD_KAFKA_RESP_ERR_INVALID_CONFIG = 40,
  RD_KAFKA_RESP_ERR_NOT_CONTROLLER = 41,
  RD_KAFKA_RESP_ERR_INVALID_REQUEST = 42,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_FOR_MESSAGE_FORMAT = 43,
  RD_KAFKA_RESP_ERR_POLICY_VIOLATION = 44,
  RD_KAFKA_RESP_ERR_OUT_OF_ORDER_SEQUENCE_NUMBER = 45,
  RD_KAFKA_RESP_ERR_DUPLICATE_SEQUENCE_NUMBER = 46,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_EPOCH = 47,
  RD_KAFKA_RESP_ERR_INVALID_TXN_STATE = 48,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_ID_MAPPING = 49,
  RD_KAFKA_RESP_ERR_INVALID_TRANSACTION_TIMEOUT = 50,
  RD_KAFKA_RESP_ERR_CONCURRENT_TRANSACTIONS = 51,
  RD_KAFKA_RESP_ERR_TRANSACTION_COORDINATOR_FENCED = 52,
  RD_KAFKA_RESP_ERR_TRANSACTIONAL_ID_AUTHORIZATION_FAILED = 53,
  RD_KAFKA_RESP_ERR_SECURITY_DISABLED = 54,
  RD_KAFKA_RESP_ERR_OPERATION_NOT_ATTEMPTED = 55,
  RD_KAFKA_RESP_ERR_KAFKA_STORAGE_ERROR = 56,
  RD_KAFKA_RESP_ERR_LOG_DIR_NOT_FOUND = 57,
  RD_KAFKA_RESP_ERR_SASL_AUTHENTICATION_FAILED = 58,
  RD_KAFKA_RESP_ERR_UNKNOWN_PRODUCER_ID = 59,
  RD_KAFKA_RESP_ERR_REASSIGNMENT_IN_PROGRESS = 60,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTH_DISABLED = 61,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_NOT_FOUND = 62,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_OWNER_MISMATCH = 63,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_REQUEST_NOT_ALLOWED = 64,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTHORIZATION_FAILED = 65,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_EXPIRED = 66,
  RD_KAFKA_RESP_ERR_INVALID_PRINCIPAL_TYPE = 67,
  RD_KAFKA_RESP_ERR_NON_EMPTY_GROUP = 68,
  RD_KAFKA_RESP_ERR_GROUP_ID_NOT_FOUND = 69,
  RD_KAFKA_RESP_ERR_FETCH_SESSION_ID_NOT_FOUND = 70,
  RD_KAFKA_RESP_ERR_INVALID_FETCH_SESSION_EPOCH = 71,
  RD_KAFKA_RESP_ERR_LISTENER_NOT_FOUND = 72,
  RD_KAFKA_RESP_ERR_TOPIC_DELETION_DISABLED = 73,
  RD_KAFKA_RESP_ERR_FENCED_LEADER_EPOCH = 74,
  RD_KAFKA_RESP_ERR_UNKNOWN_LEADER_EPOCH = 75,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76,
  RD_KAFKA_RESP_ERR_STALE_BROKER_EPOCH = 77,
  RD_KAFKA_RESP_ERR_OFFSET_NOT_AVAILABLE = 78,
  RD_KAFKA_RESP_ERR_MEMBER_ID_REQUIRED = 79,
  RD_KAFKA_RESP_ERR_PREFERRED_LEADER_NOT_AVAILABLE = 80,
  RD_KAFKA_RESP_ERR_GROUP_MAX_SIZE_REACHED = 81,
  RD_KAFKA_RESP_ERR_FENCED_INSTANCE_ID = 82,
  RD_KAFKA_RESP_ERR_ELIGIBLE_LEADERS_NOT_AVAILABLE = 83,
  RD_KAFKA_RESP_ERR_ELECTION_NOT_NEEDED = 84,
  RD_KAFKA_RESP_ERR_NO_REASSIGNMENT_IN_PROGRESS = 85,
  RD_KAFKA_RESP_ERR_GROUP_SUBSCRIBED_TO_TOPIC = 86,
  RD_KAFKA_RESP_ERR_INVALID_RECORD = 87,
  RD_KAFKA_RESP_ERR_UNSTABLE_OFFSET_COMMIT = 88,
  RD_KAFKA_RESP_ERR_THROTTLING_QUOTA_EXCEEDED = 89,
  RD_KAFKA_RESP_ERR_PRODUCER_FENCED = 90,
  RD_KAFKA_RESP_ERR_RESOURCE_NOT_FOUND = 91,
  RD_KAFKA_RESP_ERR_DUPLICATE_RESOURCE = 92,
  RD_KAFKA_RESP_ERR_UNACCEPTABLE_CREDENTIAL = 93,
  RD_KAFKA_RESP_ERR_INCONSISTENT_VOTER_SET = 94,
  RD_KAFKA_RESP_ERR_INVALID_UPDATE_VERSION = 95,
  RD_KAFKA_RESP_ERR_FEATURE_UPDATE_FAILED = 96,
  RD_KAFKA_RESP_ERR_PRINCIPAL_DESERIALIZATION_FAILURE = 97,
  RD_KAFKA_RESP_ERR_END_ALL,
} rd_kafka_resp_err_t;
struct rd_kafka_err_desc {
  rd_kafka_resp_err_t code;
  char *name;
  char *desc;
};
void rd_kafka_get_err_descs(const struct rd_kafka_err_desc **errdescs, size_t *cntp);
const char *rd_kafka_err2str(rd_kafka_resp_err_t err);
const char *rd_kafka_err2name(rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_last_error(void);
rd_kafka_resp_err_t rd_kafka_errno2err(int errnox);
int rd_kafka_errno(void);
rd_kafka_resp_err_t rd_kafka_fatal_error(rd_kafka_t *rk, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_test_fatal_error(rd_kafka_t *rk, rd_kafka_resp_err_t err, const char *reason);
rd_kafka_resp_err_t rd_kafka_error_code(const rd_kafka_error_t *error);
const char *rd_kafka_error_name(const rd_kafka_error_t *error);
const char *rd_kafka_error_string(const rd_kafka_error_t *error);
int rd_kafka_error_is_fatal(const rd_kafka_error_t *error);
int rd_kafka_error_is_retriable(const rd_kafka_error_t *error);
int rd_kafka_error_txn_requires_abort(const rd_kafka_error_t *error);
void rd_kafka_error_destroy(rd_kafka_error_t *error);
rd_kafka_error_t *rd_kafka_error_new(rd_kafka_resp_err_t code, const char *fmt, ...);
typedef struct rd_kafka_topic_partition_s {
  char *topic;
  int32_t partition;
  int64_t offset;
  void *metadata;
  size_t metadata_size;
  void *opaque;
  rd_kafka_resp_err_t err;
  void *_private;
} rd_kafka_topic_partition_t;
void rd_kafka_topic_partition_destroy(rd_kafka_topic_partition_t *rktpar);
typedef struct rd_kafka_topic_partition_list_s {
  int cnt;
  int size;
  rd_kafka_topic_partition_t *elems;
} rd_kafka_topic_partition_list_t;
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_new(int size);
void rd_kafka_topic_partition_list_destroy(rd_kafka_topic_partition_list_t *rkparlist);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_add(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_add_range(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t start, int32_t stop);
int rd_kafka_topic_partition_list_del(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
int rd_kafka_topic_partition_list_del_by_idx(rd_kafka_topic_partition_list_t *rktparlist, int idx);
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_copy(const rd_kafka_topic_partition_list_t *src);
rd_kafka_resp_err_t rd_kafka_topic_partition_list_set_offset(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition, int64_t offset);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_find(const rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_sort(rd_kafka_topic_partition_list_t *rktparlist, int (*cmp)(const void *a, const void *b, void *cmp_opaque), void *cmp_opaque);
typedef enum rd_kafka_vtype_t {
  RD_KAFKA_VTYPE_END,
  RD_KAFKA_VTYPE_TOPIC,
  RD_KAFKA_VTYPE_RKT,
  RD_KAFKA_VTYPE_PARTITION,
  RD_KAFKA_VTYPE_VALUE,
  RD_KAFKA_VTYPE_KEY,
  RD_KAFKA_VTYPE_OPAQUE,
  RD_KAFKA_VTYPE_MSGFLAGS,
  RD_KAFKA_VTYPE_TIMESTAMP,
  RD_KAFKA_VTYPE_HEADER,
  RD_KAFKA_VTYPE_HEADERS,
} rd_kafka_vtype_t;
typedef struct rd_kafka_vu_s {
  rd_kafka_vtype_t vtype;
  union {
    char *cstr;
    rd_kafka_topic_t *rkt;
    int i;
    int32_t i32;
    int64_t i64;
    struct {
      void *ptr;
      size_t size;
    } mem;
    struct {
      char *name;
      void *val;
      ssize_t size;
    } header;
    rd_kafka_headers_t *headers;
    void *ptr;
    char _pad[64];
  } u;
} rd_kafka_vu_t;
rd_kafka_headers_t *rd_kafka_headers_new(size_t initial_count);
void rd_kafka_headers_destroy(rd_kafka_headers_t *hdrs);
rd_kafka_headers_t *rd_kafka_headers_copy(const rd_kafka_headers_t *src);
rd_kafka_resp_err_t rd_kafka_header_add(rd_kafka_headers_t *hdrs, const char *name, ssize_t name_size, const void *value, ssize_t value_size);
rd_kafka_resp_err_t rd_kafka_header_remove(rd_kafka_headers_t *hdrs, const char *name);
rd_kafka_resp_err_t rd_kafka_header_get_last(const rd_kafka_headers_t *hdrs, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get(const rd_kafka_headers_t *hdrs, size_t idx, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get_all(const rd_kafka_headers_t *hdrs, size_t idx, const char **namep, const void **valuep, size_t *sizep);
typedef struct rd_kafka_message_s {
  rd_kafka_resp_err_t err;
  rd_kafka_topic_t *rkt;
  int32_t partition;
  void *payload;
  size_t len;
  void *key;
  size_t key_len;
  int64_t offset;
  void *_private;
} rd_kafka_message_t;
void rd_kafka_message_destroy(rd_kafka_message_t *rkmessage);
const char *rd_kafka_message_errstr(const rd_kafka_message_t *rkmessage);
int64_t rd_kafka_message_timestamp(const rd_kafka_message_t *rkmessage, rd_kafka_timestamp_type_t *tstype);
int64_t rd_kafka_message_latency(const rd_kafka_message_t *rkmessage);
int32_t rd_kafka_message_broker_id(const rd_kafka_message_t *rkmessage);
rd_kafka_resp_err_t rd_kafka_message_headers(const rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
rd_kafka_resp_err_t rd_kafka_message_detach_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
void rd_kafka_message_set_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t *hdrs);
size_t rd_kafka_header_cnt(const rd_kafka_headers_t *hdrs);
typedef enum {
  RD_KAFKA_MSG_STATUS_NOT_PERSISTED = 0,
  RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED = 1,
  RD_KAFKA_MSG_STATUS_PERSISTED = 2,
} rd_kafka_msg_status_t;
rd_kafka_msg_status_t rd_kafka_message_status(const rd_kafka_message_t *rkmessage);
typedef enum {
  RD_KAFKA_CONF_UNKNOWN = (- 2),
  RD_KAFKA_CONF_INVALID = (- 1),
  RD_KAFKA_CONF_OK = 0,
} rd_kafka_conf_res_t;
rd_kafka_conf_t *rd_kafka_conf_new(void);
void rd_kafka_conf_destroy(rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup(const rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup_filter(const rd_kafka_conf_t *conf, size_t filter_cnt, const char **filter);
const rd_kafka_conf_t *rd_kafka_conf(rd_kafka_t *rk);
rd_kafka_conf_res_t rd_kafka_conf_set(rd_kafka_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_events(rd_kafka_conf_t *conf, int events);
void rd_kafka_conf_set_background_event_cb(rd_kafka_conf_t *conf, void (*event_cb)(rd_kafka_t *rk, rd_kafka_event_t *rkev, void *opaque));
void rd_kafka_conf_set_dr_cb(rd_kafka_conf_t *conf, void (*dr_cb)(rd_kafka_t *rk, void *payload, size_t len, rd_kafka_resp_err_t err, void *opaque, void *msg_opaque));
void rd_kafka_conf_set_dr_msg_cb(rd_kafka_conf_t *conf, void (*dr_msg_cb)(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_consume_cb(rd_kafka_conf_t *conf, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_rebalance_cb(rd_kafka_conf_t *conf, void (*rebalance_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *partitions, void *opaque));
void rd_kafka_conf_set_offset_commit_cb(rd_kafka_conf_t *conf, void (*offset_commit_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *opaque));
void rd_kafka_conf_set_error_cb(rd_kafka_conf_t *conf, void (*error_cb)(rd_kafka_t *rk, int err, const char *reason, void *opaque));
void rd_kafka_conf_set_throttle_cb(rd_kafka_conf_t *conf, void (*throttle_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int throttle_time_ms, void *opaque));
void rd_kafka_conf_set_log_cb(rd_kafka_conf_t *conf, void (*log_cb)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_conf_set_stats_cb(rd_kafka_conf_t *conf, int (*stats_cb)(rd_kafka_t *rk, char *json, size_t json_len, void *opaque));
void rd_kafka_conf_set_oauthbearer_token_refresh_cb(rd_kafka_conf_t *conf, void (*oauthbearer_token_refresh_cb)(rd_kafka_t *rk, const char *oauthbearer_config, void *opaque));
void rd_kafka_conf_set_socket_cb(rd_kafka_conf_t *conf, int (*socket_cb)(int domain, int type, int protocol, void *opaque));
void rd_kafka_conf_set_connect_cb(rd_kafka_conf_t *conf, int (*connect_cb)(int sockfd, const struct sockaddr *addr, int addrlen, const char *id, void *opaque));
void rd_kafka_conf_set_closesocket_cb(rd_kafka_conf_t *conf, int (*closesocket_cb)(int sockfd, void *opaque));
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert_verify_cb(rd_kafka_conf_t *conf, int (*ssl_cert_verify_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int *x509_error, int depth, const char *buf, size_t size, char *errstr, size_t errstr_size, void *opaque));
typedef enum rd_kafka_cert_type_t {
  RD_KAFKA_CERT_PUBLIC_KEY,
  RD_KAFKA_CERT_PRIVATE_KEY,
  RD_KAFKA_CERT_CA,
  RD_KAFKA_CERT__CNT,
} rd_kafka_cert_type_t;
typedef enum rd_kafka_cert_enc_t {
  RD_KAFKA_CERT_ENC_PKCS12,
  RD_KAFKA_CERT_ENC_DER,
  RD_KAFKA_CERT_ENC_PEM,
  RD_KAFKA_CERT_ENC__CNT,
} rd_kafka_cert_enc_t;
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert(rd_kafka_conf_t *conf, rd_kafka_cert_type_t cert_type, rd_kafka_cert_enc_t cert_enc, const void *buffer, size_t size, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_engine_callback_data(rd_kafka_conf_t *conf, void *callback_data);
void rd_kafka_conf_set_opaque(rd_kafka_conf_t *conf, void *opaque);
void *rd_kafka_opaque(const rd_kafka_t *rk);
void rd_kafka_conf_set_default_topic_conf(rd_kafka_conf_t *conf, rd_kafka_topic_conf_t *tconf);
rd_kafka_topic_conf_t *rd_kafka_conf_get_default_topic_conf(rd_kafka_conf_t *conf);
rd_kafka_conf_res_t rd_kafka_conf_get(const rd_kafka_conf_t *conf, const char *name, char *dest, size_t *dest_size);
rd_kafka_conf_res_t rd_kafka_topic_conf_get(const rd_kafka_topic_conf_t *conf, const char *name, char *dest, size_t *dest_size);
const char **rd_kafka_conf_dump(rd_kafka_conf_t *conf, size_t *cntp);
const char **rd_kafka_topic_conf_dump(rd_kafka_topic_conf_t *conf, size_t *cntp);
void rd_kafka_conf_dump_free(const char **arr, size_t cnt);
void rd_kafka_conf_properties_show(FILE *fp);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_new(void);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_dup(const rd_kafka_topic_conf_t *conf);
rd_kafka_topic_conf_t *rd_kafka_default_topic_conf_dup(rd_kafka_t *rk);
void rd_kafka_topic_conf_destroy(rd_kafka_topic_conf_t *topic_conf);
rd_kafka_conf_res_t rd_kafka_topic_conf_set(rd_kafka_topic_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_topic_conf_set_opaque(rd_kafka_topic_conf_t *conf, void *rkt_opaque);
void rd_kafka_topic_conf_set_partitioner_cb(rd_kafka_topic_conf_t *topic_conf, int32_t (*partitioner)(const rd_kafka_topic_t *rkt, const void *keydata, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque));
void rd_kafka_topic_conf_set_msg_order_cmp(rd_kafka_topic_conf_t *topic_conf, int (*msg_order_cmp)(const rd_kafka_message_t *a, const rd_kafka_message_t *b));
int rd_kafka_topic_partition_available(const rd_kafka_topic_t *rkt, int32_t partition);
int32_t rd_kafka_msg_partitioner_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
rd_kafka_t *rd_kafka_new(rd_kafka_type_t type, rd_kafka_conf_t *conf, char *errstr, size_t errstr_size);
void rd_kafka_destroy(rd_kafka_t *rk);
void rd_kafka_destroy_flags(rd_kafka_t *rk, int flags);
const char *rd_kafka_name(const rd_kafka_t *rk);
rd_kafka_type_t rd_kafka_type(const rd_kafka_t *rk);
char *rd_kafka_memberid(const rd_kafka_t *rk);
char *rd_kafka_clusterid(rd_kafka_t *rk, int timeout_ms);
int32_t rd_kafka_controllerid(rd_kafka_t *rk, int timeout_ms);
rd_kafka_topic_t *rd_kafka_topic_new(rd_kafka_t *rk, const char *topic, rd_kafka_topic_conf_t *conf);
void rd_kafka_topic_destroy(rd_kafka_topic_t *rkt);
const char *rd_kafka_topic_name(const rd_kafka_topic_t *rkt);
void *rd_kafka_topic_opaque(const rd_kafka_topic_t *rkt);
int rd_kafka_poll(rd_kafka_t *rk, int timeout_ms);
void rd_kafka_yield(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_pause_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_resume_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_query_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_get_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high);
rd_kafka_resp_err_t rd_kafka_offsets_for_times(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets, int timeout_ms);
void *rd_kafka_mem_calloc(rd_kafka_t *rk, size_t num, size_t size);
void *rd_kafka_mem_malloc(rd_kafka_t *rk, size_t size);
void rd_kafka_mem_free(rd_kafka_t *rk, void *ptr);
rd_kafka_queue_t *rd_kafka_queue_new(rd_kafka_t *rk);
void rd_kafka_queue_destroy(rd_kafka_queue_t *rkqu);
rd_kafka_queue_t *rd_kafka_queue_get_main(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_consumer(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_partition(rd_kafka_t *rk, const char *topic, int32_t partition);
rd_kafka_queue_t *rd_kafka_queue_get_background(rd_kafka_t *rk);
void rd_kafka_queue_forward(rd_kafka_queue_t *src, rd_kafka_queue_t *dst);
rd_kafka_resp_err_t rd_kafka_set_log_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu);
size_t rd_kafka_queue_length(rd_kafka_queue_t *rkqu);
void rd_kafka_queue_io_event_enable(rd_kafka_queue_t *rkqu, int fd, const void *payload, size_t size);
void rd_kafka_queue_cb_event_enable(rd_kafka_queue_t *rkqu, void (*event_cb)(rd_kafka_t *rk, void *qev_opaque), void *qev_opaque);
void rd_kafka_queue_yield(rd_kafka_queue_t *rkqu);
int rd_kafka_consume_start(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
int rd_kafka_consume_start_queue(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, rd_kafka_queue_t *rkqu);
int rd_kafka_consume_stop(rd_kafka_topic_t *rkt, int32_t partition);
rd_kafka_resp_err_t rd_kafka_seek(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, int timeout_ms);
rd_kafka_error_t *rd_kafka_seek_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_message_t *rd_kafka_consume(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms);
ssize_t rd_kafka_consume_batch(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_message_t *rd_kafka_consume_queue(rd_kafka_queue_t *rkqu, int timeout_ms);
ssize_t rd_kafka_consume_batch_queue(rd_kafka_queue_t *rkqu, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback_queue(rd_kafka_queue_t *rkqu, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_offset_store(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
rd_kafka_resp_err_t rd_kafka_offsets_store(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets);
rd_kafka_resp_err_t rd_kafka_subscribe(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *topics);
rd_kafka_resp_err_t rd_kafka_unsubscribe(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_subscription(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **topics);
rd_kafka_message_t *rd_kafka_consumer_poll(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_consumer_close(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_incremental_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_error_t *rd_kafka_incremental_unassign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
const char *rd_kafka_rebalance_protocol(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_assignment(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **partitions);
int rd_kafka_assignment_lost(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_commit(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, int async);
rd_kafka_resp_err_t rd_kafka_commit_message(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, int async);
rd_kafka_resp_err_t rd_kafka_commit_queue(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_queue_t *rkqu, void (*cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_committed(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_position(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata(rd_kafka_t *rk);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new(const char *group_id);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new_with_genid(const char *group_id, int32_t generation_id, const char *member_id, const char *group_instance_id);
void rd_kafka_consumer_group_metadata_destroy(rd_kafka_consumer_group_metadata_t *);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_write(const rd_kafka_consumer_group_metadata_t *cgmd, void **bufferp, size_t *sizep);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_read(rd_kafka_consumer_group_metadata_t **cgmdp, const void *buffer, size_t size);
int rd_kafka_produce(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, void *payload, size_t len, const void *key, size_t keylen, void *msg_opaque);
rd_kafka_resp_err_t rd_kafka_producev(rd_kafka_t *rk, ...);
rd_kafka_error_t *rd_kafka_produceva(rd_kafka_t *rk, const rd_kafka_vu_t *vus, size_t cnt);
int rd_kafka_produce_batch(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, rd_kafka_message_t *rkmessages, int message_cnt);
rd_kafka_resp_err_t rd_kafka_flush(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_purge(rd_kafka_t *rk, int purge_flags);
typedef struct rd_kafka_metadata_broker {
  int32_t id;
  char *host;
  int port;
} rd_kafka_metadata_broker_t;
typedef struct rd_kafka_metadata_partition {
  int32_t id;
  rd_kafka_resp_err_t err;
  int32_t leader;
  int replica_cnt;
  int32_t *replicas;
  int isr_cnt;
  int32_t *isrs;
} rd_kafka_metadata_partition_t;
typedef struct rd_kafka_metadata_topic {
  char *topic;
  int partition_cnt;
  struct rd_kafka_metadata_partition *partitions;
  rd_kafka_resp_err_t err;
} rd_kafka_metadata_topic_t;
typedef struct rd_kafka_metadata {
  int broker_cnt;
  struct rd_kafka_metadata_broker *brokers;
  int topic_cnt;
  struct rd_kafka_metadata_topic *topics;
  int32_t orig_broker_id;
  char *orig_broker_name;
} rd_kafka_metadata_t;
rd_kafka_resp_err_t rd_kafka_metadata(rd_kafka_t *rk, int all_topics, rd_kafka_topic_t *only_rkt, const struct rd_kafka_metadata **metadatap, int timeout_ms);
void rd_kafka_metadata_destroy(const struct rd_kafka_metadata *metadata);
struct rd_kafka_group_member_info {
  char *member_id;
  char *client_id;
  char *client_host;
  void *member_metadata;
  int member_metadata_size;
  void *member_assignment;
  int member_assignment_size;
};
struct rd_kafka_group_info {
  struct rd_kafka_metadata_broker broker;
  char *group;
  rd_kafka_resp_err_t err;
  char *state;
  char *protocol_type;
  char *protocol;
  struct rd_kafka_group_member_info *members;
  int member_cnt;
};
struct rd_kafka_group_list {
  struct rd_kafka_group_info *groups;
  int group_cnt;
};
rd_kafka_resp_err_t rd_kafka_list_groups(rd_kafka_t *rk, const char *group, const struct rd_kafka_group_list **grplistp, int timeout_ms);
void rd_kafka_group_list_destroy(const struct rd_kafka_group_list *grplist);
int rd_kafka_brokers_add(rd_kafka_t *rk, const char *brokerlist);
void rd_kafka_set_logger(rd_kafka_t *rk, void (*func)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_set_log_level(rd_kafka_t *rk, int level);
void rd_kafka_log_print(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
void rd_kafka_log_syslog(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
int rd_kafka_outq_len(rd_kafka_t *rk);
void rd_kafka_dump(FILE *fp, rd_kafka_t *rk);
int rd_kafka_thread_cnt(void);
typedef enum rd_kafka_thread_type_t {
  RD_KAFKA_THREAD_MAIN,
  RD_KAFKA_THREAD_BACKGROUND,
  RD_KAFKA_THREAD_BROKER,
} rd_kafka_thread_type_t;
int rd_kafka_wait_destroyed(int timeout_ms);
int rd_kafka_unittest(void);
rd_kafka_resp_err_t rd_kafka_poll_set_consumer(rd_kafka_t *rk);
typedef int rd_kafka_event_type_t;
rd_kafka_event_type_t rd_kafka_event_type(const rd_kafka_event_t *rkev);
const char *rd_kafka_event_name(const rd_kafka_event_t *rkev);
void rd_kafka_event_destroy(rd_kafka_event_t *rkev);
const rd_kafka_message_t *rd_kafka_event_message_next(rd_kafka_event_t *rkev);
size_t rd_kafka_event_message_array(rd_kafka_event_t *rkev, const rd_kafka_message_t **rkmessages, size_t size);
size_t rd_kafka_event_message_count(rd_kafka_event_t *rkev);
const char *rd_kafka_event_config_string(rd_kafka_event_t *rkev);
rd_kafka_resp_err_t rd_kafka_event_error(rd_kafka_event_t *rkev);
const char *rd_kafka_event_error_string(rd_kafka_event_t *rkev);
int rd_kafka_event_error_is_fatal(rd_kafka_event_t *rkev);
void *rd_kafka_event_opaque(rd_kafka_event_t *rkev);
int rd_kafka_event_log(rd_kafka_event_t *rkev, const char **fac, const char **str, int *level);
int rd_kafka_event_debug_contexts(rd_kafka_event_t *rkev, char *dst, size_t dstsize);
const char *rd_kafka_event_stats(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_list_t *rd_kafka_event_topic_partition_list(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_t *rd_kafka_event_topic_partition(rd_kafka_event_t *rkev);
typedef rd_kafka_event_t rd_kafka_CreateTopics_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteTopics_result_t;
typedef rd_kafka_event_t rd_kafka_CreatePartitions_result_t;
typedef rd_kafka_event_t rd_kafka_AlterConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteRecords_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteGroups_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteConsumerGroupOffsets_result_t;
const rd_kafka_CreateTopics_result_t *rd_kafka_event_CreateTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteTopics_result_t *rd_kafka_event_DeleteTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_CreatePartitions_result_t *rd_kafka_event_CreatePartitions_result(rd_kafka_event_t *rkev);
const rd_kafka_AlterConfigs_result_t *rd_kafka_event_AlterConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeConfigs_result_t *rd_kafka_event_DescribeConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteRecords_result_t *rd_kafka_event_DeleteRecords_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteGroups_result_t *rd_kafka_event_DeleteGroups_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteConsumerGroupOffsets_result_t *rd_kafka_event_DeleteConsumerGroupOffsets_result(rd_kafka_event_t *rkev);
rd_kafka_event_t *rd_kafka_queue_poll(rd_kafka_queue_t *rkqu, int timeout_ms);
int rd_kafka_queue_poll_callback(rd_kafka_queue_t *rkqu, int timeout_ms);
typedef rd_kafka_resp_err_t (rd_kafka_plugin_f_conf_init_t)(rd_kafka_conf_t *conf, void **plug_opaquep, char *errstr, size_t errstr_size);
typedef rd_kafka_conf_res_t (rd_kafka_interceptor_f_on_conf_set_t)(rd_kafka_conf_t *conf, const char *name, const char *val, char *errstr, size_t errstr_size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_dup_t)(rd_kafka_conf_t *new_conf, const rd_kafka_conf_t *old_conf, size_t filter_cnt, const char **filter, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_destroy_t)(void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_new_t)(rd_kafka_t *rk, const rd_kafka_conf_t *conf, void *ic_opaque, char *errstr, size_t errstr_size);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_destroy_t)(rd_kafka_t *rk, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_send_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_acknowledgement_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_consume_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_commit_t)(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_request_sent_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_response_received_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, int64_t rtt, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_start_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_exit_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_set(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_set_t *on_conf_set, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_dup(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_dup_t *on_conf_dup, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_destroy(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_destroy_t *on_conf_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_new(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_new_t *on_new, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_destroy(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_destroy_t *on_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_send(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_send_t *on_send, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_acknowledgement(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_acknowledgement_t *on_acknowledgement, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_consume(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_consume_t *on_consume, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_commit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_commit_t *on_commit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_request_sent(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_request_sent_t *on_request_sent, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_response_received(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_response_received_t *on_response_received, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_start(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_start_t *on_thread_start, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_exit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_exit_t *on_thread_exit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_topic_result_error(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_error_string(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_name(const rd_kafka_topic_result_t *topicres);
const rd_kafka_error_t *rd_kafka_group_result_error(const rd_kafka_group_result_t *groupres);
const char *rd_kafka_group_result_name(const rd_kafka_group_result_t *groupres);
const rd_kafka_topic_partition_list_t *rd_kafka_group_result_partitions(const rd_kafka_group_result_t *groupres);
typedef enum rd_kafka_admin_op_t {
  RD_KAFKA_ADMIN_OP_ANY = 0,
  RD_KAFKA_ADMIN_OP_CREATETOPICS,
  RD_KAFKA_ADMIN_OP_DELETETOPICS,
  RD_KAFKA_ADMIN_OP_CREATEPARTITIONS,
  RD_KAFKA_ADMIN_OP_ALTERCONFIGS,
  RD_KAFKA_ADMIN_OP_DESCRIBECONFIGS,
  RD_KAFKA_ADMIN_OP_DELETERECORDS,
  RD_KAFKA_ADMIN_OP_DELETEGROUPS,
  RD_KAFKA_ADMIN_OP_DELETECONSUMERGROUPOFFSETS,
  RD_KAFKA_ADMIN_OP__CNT,
} rd_kafka_admin_op_t;
typedef struct rd_kafka_AdminOptions_s rd_kafka_AdminOptions_t;
rd_kafka_AdminOptions_t *rd_kafka_AdminOptions_new(rd_kafka_t *rk, rd_kafka_admin_op_t for_api);
void rd_kafka_AdminOptions_destroy(rd_kafka_AdminOptions_t *options);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_request_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_operation_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_validate_only(rd_kafka_AdminOptions_t *options, int true_or_false, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_broker(rd_kafka_AdminOptions_t *options, int32_t broker_id, char *errstr, size_t errstr_size);
void rd_kafka_AdminOptions_set_opaque(rd_kafka_AdminOptions_t *options, void *ev_opaque);
typedef struct rd_kafka_NewTopic_s rd_kafka_NewTopic_t;
rd_kafka_NewTopic_t *rd_kafka_NewTopic_new(const char *topic, int num_partitions, int replication_factor, char *errstr, size_t errstr_size);
void rd_kafka_NewTopic_destroy(rd_kafka_NewTopic_t *new_topic);
void rd_kafka_NewTopic_destroy_array(rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_replica_assignment(rd_kafka_NewTopic_t *new_topic, int32_t partition, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_config(rd_kafka_NewTopic_t *new_topic, const char *name, const char *value);
void rd_kafka_CreateTopics(rd_kafka_t *rk, rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreateTopics_result_topics(const rd_kafka_CreateTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteTopic_s rd_kafka_DeleteTopic_t;
rd_kafka_DeleteTopic_t *rd_kafka_DeleteTopic_new(const char *topic);
void rd_kafka_DeleteTopic_destroy(rd_kafka_DeleteTopic_t *del_topic);
void rd_kafka_DeleteTopic_destroy_array(rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt);
void rd_kafka_DeleteTopics(rd_kafka_t *rk, rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_DeleteTopics_result_topics(const rd_kafka_DeleteTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_NewPartitions_s rd_kafka_NewPartitions_t;
rd_kafka_NewPartitions_t *rd_kafka_NewPartitions_new(const char *topic, size_t new_total_cnt, char *errstr, size_t errstr_size);
void rd_kafka_NewPartitions_destroy(rd_kafka_NewPartitions_t *new_parts);
void rd_kafka_NewPartitions_destroy_array(rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt);
rd_kafka_resp_err_t rd_kafka_NewPartitions_set_replica_assignment(rd_kafka_NewPartitions_t *new_parts, int32_t new_partition_idx, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
void rd_kafka_CreatePartitions(rd_kafka_t *rk, rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreatePartitions_result_topics(const rd_kafka_CreatePartitions_result_t *result, size_t *cntp);
typedef enum rd_kafka_ConfigSource_t {
  RD_KAFKA_CONFIG_SOURCE_UNKNOWN_CONFIG = 0,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG = 1,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG = 2,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG = 3,
  RD_KAFKA_CONFIG_SOURCE_STATIC_BROKER_CONFIG = 4,
  RD_KAFKA_CONFIG_SOURCE_DEFAULT_CONFIG = 5,
  RD_KAFKA_CONFIG_SOURCE__CNT,
} rd_kafka_ConfigSource_t;
const char *rd_kafka_ConfigSource_name(rd_kafka_ConfigSource_t confsource);
typedef struct rd_kafka_ConfigEntry_s rd_kafka_ConfigEntry_t;
const char *rd_kafka_ConfigEntry_name(const rd_kafka_ConfigEntry_t *entry);
const char *rd_kafka_ConfigEntry_value(const rd_kafka_ConfigEntry_t *entry);
rd_kafka_ConfigSource_t rd_kafka_ConfigEntry_source(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_read_only(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_default(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_sensitive(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_synonym(const rd_kafka_ConfigEntry_t *entry);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigEntry_synonyms(const rd_kafka_ConfigEntry_t *entry, size_t *cntp);
typedef enum rd_kafka_ResourceType_t {
  RD_KAFKA_RESOURCE_UNKNOWN = 0,
  RD_KAFKA_RESOURCE_ANY = 1,
  RD_KAFKA_RESOURCE_TOPIC = 2,
  RD_KAFKA_RESOURCE_GROUP = 3,
  RD_KAFKA_RESOURCE_BROKER = 4,
  RD_KAFKA_RESOURCE__CNT,
} rd_kafka_ResourceType_t;
const char *rd_kafka_ResourceType_name(rd_kafka_ResourceType_t restype);
typedef struct rd_kafka_ConfigResource_s rd_kafka_ConfigResource_t;
rd_kafka_ConfigResource_t *rd_kafka_ConfigResource_new(rd_kafka_ResourceType_t restype, const char *resname);
void rd_kafka_ConfigResource_destroy(rd_kafka_ConfigResource_t *config);
void rd_kafka_ConfigResource_destroy_array(rd_kafka_ConfigResource_t **config, size_t config_cnt);
rd_kafka_resp_err_t rd_kafka_ConfigResource_set_config(rd_kafka_ConfigResource_t *config, const char *name, const char *value);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigResource_configs(const rd_kafka_ConfigResource_t *config, size_t *cntp);
rd_kafka_ResourceType_t rd_kafka_ConfigResource_type(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_name(const rd_kafka_ConfigResource_t *config);
rd_kafka_resp_err_t rd_kafka_ConfigResource_error(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_error_string(const rd_kafka_ConfigResource_t *config);
void rd_kafka_AlterConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_AlterConfigs_result_resources(const rd_kafka_AlterConfigs_result_t *result, size_t *cntp);
void rd_kafka_DescribeConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_DescribeConfigs_result_resources(const rd_kafka_DescribeConfigs_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteRecords_s rd_kafka_DeleteRecords_t;
rd_kafka_DeleteRecords_t *rd_kafka_DeleteRecords_new(const rd_kafka_topic_partition_list_t *before_offsets);
void rd_kafka_DeleteRecords_destroy(rd_kafka_DeleteRecords_t *del_records);
void rd_kafka_DeleteRecords_destroy_array(rd_kafka_DeleteRecords_t **del_records, size_t del_record_cnt);
void rd_kafka_DeleteRecords(rd_kafka_t *rk, rd_kafka_DeleteRecords_t **del_records, size_t del_record_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_partition_list_t *rd_kafka_DeleteRecords_result_offsets(const rd_kafka_DeleteRecords_result_t *result);
typedef struct rd_kafka_DeleteGroup_s rd_kafka_DeleteGroup_t;
rd_kafka_DeleteGroup_t *rd_kafka_DeleteGroup_new(const char *group);
void rd_kafka_DeleteGroup_destroy(rd_kafka_DeleteGroup_t *del_group);
void rd_kafka_DeleteGroup_destroy_array(rd_kafka_DeleteGroup_t **del_groups, size_t del_group_cnt);
void rd_kafka_DeleteGroups(rd_kafka_t *rk, rd_kafka_DeleteGroup_t **del_groups, size_t del_group_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_DeleteGroups_result_groups(const rd_kafka_DeleteGroups_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteConsumerGroupOffsets_s rd_kafka_DeleteConsumerGroupOffsets_t;
rd_kafka_DeleteConsumerGroupOffsets_t *rd_kafka_DeleteConsumerGroupOffsets_new(const char *group, const rd_kafka_topic_partition_list_t *partitions);
void rd_kafka_DeleteConsumerGroupOffsets_destroy(rd_kafka_DeleteConsumerGroupOffsets_t *del_grpoffsets);
void rd_kafka_DeleteConsumerGroupOffsets_destroy_array(rd_kafka_DeleteConsumerGroupOffsets_t **del_grpoffsets, size_t del_grpoffset_cnt);
void rd_kafka_DeleteConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_DeleteConsumerGroupOffsets_t **del_grpoffsets, size_t del_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_DeleteConsumerGroupOffsets_result_groups(const rd_kafka_DeleteConsumerGroupOffsets_result_t *result, size_t *cntp);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token(rd_kafka_t *rk, const char *token_value, int64_t md_lifetime_ms, const char *md_principal_name, const char **extensions, size_t extension_size, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token_failure(rd_kafka_t *rk, const char *errstr);
rd_kafka_error_t *rd_kafka_init_transactions(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_begin_transaction(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_send_offsets_to_transaction(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, const rd_kafka_consumer_group_metadata_t *cgmetadata, int timeout_ms);
rd_kafka_error_t *rd_kafka_commit_transaction(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_abort_transaction(rd_kafka_t *rk, int timeout_ms);
typedef struct rd_kafka_mock_cluster_s rd_kafka_mock_cluster_t;
rd_kafka_mock_cluster_t *rd_kafka_mock_cluster_new(rd_kafka_t *rk, int broker_cnt);
void rd_kafka_mock_cluster_destroy(rd_kafka_mock_cluster_t *mcluster);
rd_kafka_t *rd_kafka_mock_cluster_handle(const rd_kafka_mock_cluster_t *mcluster);
rd_kafka_mock_cluster_t *rd_kafka_handle_mock_cluster(const rd_kafka_t *rk);
const char *rd_kafka_mock_cluster_bootstraps(const rd_kafka_mock_cluster_t *mcluster);
void rd_kafka_mock_clear_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey);
void rd_kafka_mock_push_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, ...);
void rd_kafka_mock_push_request_errors_array(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, const rd_kafka_resp_err_t *errors);
rd_kafka_resp_err_t rd_kafka_mock_broker_push_request_error_rtts(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int16_t ApiKey, size_t cnt, ...);
void rd_kafka_mock_topic_set_error(rd_kafka_mock_cluster_t *mcluster, const char *topic, rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_mock_topic_create(rd_kafka_mock_cluster_t *mcluster, const char *topic, int partition_cnt, int replication_factor);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_leader(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower_wmarks(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int64_t lo, int64_t hi);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_down(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_up(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rtt(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int rtt_ms);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rack(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, const char *rack);
rd_kafka_resp_err_t rd_kafka_mock_coordinator_set(rd_kafka_mock_cluster_t *mcluster, const char *key_type, const char *key, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_set_apiversion(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, int16_t MinVersion, int16_t MaxVersion);
'
rdkafka.h, rdkafka_mock.h

RD_KAFKA_VERSION

public RD_KAFKA_VERSION = 17367295

librdkafka version

Interpreted as hex MM.mm.rr.xx:

  • MM = Major
  • mm = minor
  • rr = revision
  • xx = pre-release id (0xff is the final release)

E.g.: 0x000801ff = 0.8.1

Remarks
This value should only be used during compile time, for runtime checks of version use rd_kafka_version()

RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE

public RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76

Unsupported compression type

RD_KAFKA_RESP_ERR_END_ALL

public RD_KAFKA_RESP_ERR_END_ALL = 98
enum rd_kafka_resp_err_t

RD_KAFKA_ADMIN_OP__CNT

public RD_KAFKA_ADMIN_OP__CNT = 12

Number of ops defined

RD_KAFKA_CDEF

public RD_KAFKA_CDEF = 'typedef long int ssize_t;
typedef struct _IO_FILE FILE;
typedef long int mode_t;
typedef signed int int16_t;
typedef unsigned int uint16_t;
typedef signed int int32_t;
typedef signed long int int64_t;
int rd_kafka_version(void);
const char *rd_kafka_version_str(void);
typedef enum rd_kafka_type_t {
  RD_KAFKA_PRODUCER,
  RD_KAFKA_CONSUMER,
} rd_kafka_type_t;
typedef enum rd_kafka_timestamp_type_t {
  RD_KAFKA_TIMESTAMP_NOT_AVAILABLE,
  RD_KAFKA_TIMESTAMP_CREATE_TIME,
  RD_KAFKA_TIMESTAMP_LOG_APPEND_TIME,
} rd_kafka_timestamp_type_t;
const char *rd_kafka_get_debug_contexts(void);
typedef struct rd_kafka_s rd_kafka_t;
typedef struct rd_kafka_topic_s rd_kafka_topic_t;
typedef struct rd_kafka_conf_s rd_kafka_conf_t;
typedef struct rd_kafka_topic_conf_s rd_kafka_topic_conf_t;
typedef struct rd_kafka_queue_s rd_kafka_queue_t;
typedef struct rd_kafka_op_s rd_kafka_event_t;
typedef struct rd_kafka_topic_result_s rd_kafka_topic_result_t;
typedef struct rd_kafka_consumer_group_metadata_s rd_kafka_consumer_group_metadata_t;
typedef struct rd_kafka_error_s {
  unsigned int code;
  char *errstr;
  unsigned char fatal;
  unsigned char retriable;
  unsigned char txn_requires_abort;
} rd_kafka_error_t;
typedef struct rd_kafka_headers_s rd_kafka_headers_t;
typedef struct rd_kafka_group_result_s rd_kafka_group_result_t;
typedef struct rd_kafka_acl_result_s rd_kafka_acl_result_t;
typedef enum {
  RD_KAFKA_RESP_ERR__BEGIN = (- 200),
  RD_KAFKA_RESP_ERR__BAD_MSG = (- 199),
  RD_KAFKA_RESP_ERR__BAD_COMPRESSION = (- 198),
  RD_KAFKA_RESP_ERR__DESTROY = (- 197),
  RD_KAFKA_RESP_ERR__FAIL = (- 196),
  RD_KAFKA_RESP_ERR__TRANSPORT = (- 195),
  RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE = (- 194),
  RD_KAFKA_RESP_ERR__RESOLVE = (- 193),
  RD_KAFKA_RESP_ERR__MSG_TIMED_OUT = (- 192),
  RD_KAFKA_RESP_ERR__PARTITION_EOF = (- 191),
  RD_KAFKA_RESP_ERR__UNKNOWN_PARTITION = (- 190),
  RD_KAFKA_RESP_ERR__FS = (- 189),
  RD_KAFKA_RESP_ERR__UNKNOWN_TOPIC = (- 188),
  RD_KAFKA_RESP_ERR__ALL_BROKERS_DOWN = (- 187),
  RD_KAFKA_RESP_ERR__INVALID_ARG = (- 186),
  RD_KAFKA_RESP_ERR__TIMED_OUT = (- 185),
  RD_KAFKA_RESP_ERR__QUEUE_FULL = (- 184),
  RD_KAFKA_RESP_ERR__ISR_INSUFF = (- 183),
  RD_KAFKA_RESP_ERR__NODE_UPDATE = (- 182),
  RD_KAFKA_RESP_ERR__SSL = (- 181),
  RD_KAFKA_RESP_ERR__WAIT_COORD = (- 180),
  RD_KAFKA_RESP_ERR__UNKNOWN_GROUP = (- 179),
  RD_KAFKA_RESP_ERR__IN_PROGRESS = (- 178),
  RD_KAFKA_RESP_ERR__PREV_IN_PROGRESS = (- 177),
  RD_KAFKA_RESP_ERR__EXISTING_SUBSCRIPTION = (- 176),
  RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS = (- 175),
  RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS = (- 174),
  RD_KAFKA_RESP_ERR__CONFLICT = (- 173),
  RD_KAFKA_RESP_ERR__STATE = (- 172),
  RD_KAFKA_RESP_ERR__UNKNOWN_PROTOCOL = (- 171),
  RD_KAFKA_RESP_ERR__NOT_IMPLEMENTED = (- 170),
  RD_KAFKA_RESP_ERR__AUTHENTICATION = (- 169),
  RD_KAFKA_RESP_ERR__NO_OFFSET = (- 168),
  RD_KAFKA_RESP_ERR__OUTDATED = (- 167),
  RD_KAFKA_RESP_ERR__TIMED_OUT_QUEUE = (- 166),
  RD_KAFKA_RESP_ERR__UNSUPPORTED_FEATURE = (- 165),
  RD_KAFKA_RESP_ERR__WAIT_CACHE = (- 164),
  RD_KAFKA_RESP_ERR__INTR = (- 163),
  RD_KAFKA_RESP_ERR__KEY_SERIALIZATION = (- 162),
  RD_KAFKA_RESP_ERR__VALUE_SERIALIZATION = (- 161),
  RD_KAFKA_RESP_ERR__KEY_DESERIALIZATION = (- 160),
  RD_KAFKA_RESP_ERR__VALUE_DESERIALIZATION = (- 159),
  RD_KAFKA_RESP_ERR__PARTIAL = (- 158),
  RD_KAFKA_RESP_ERR__READ_ONLY = (- 157),
  RD_KAFKA_RESP_ERR__NOENT = (- 156),
  RD_KAFKA_RESP_ERR__UNDERFLOW = (- 155),
  RD_KAFKA_RESP_ERR__INVALID_TYPE = (- 154),
  RD_KAFKA_RESP_ERR__RETRY = (- 153),
  RD_KAFKA_RESP_ERR__PURGE_QUEUE = (- 152),
  RD_KAFKA_RESP_ERR__PURGE_INFLIGHT = (- 151),
  RD_KAFKA_RESP_ERR__FATAL = (- 150),
  RD_KAFKA_RESP_ERR__INCONSISTENT = (- 149),
  RD_KAFKA_RESP_ERR__GAPLESS_GUARANTEE = (- 148),
  RD_KAFKA_RESP_ERR__MAX_POLL_EXCEEDED = (- 147),
  RD_KAFKA_RESP_ERR__UNKNOWN_BROKER = (- 146),
  RD_KAFKA_RESP_ERR__NOT_CONFIGURED = (- 145),
  RD_KAFKA_RESP_ERR__FENCED = (- 144),
  RD_KAFKA_RESP_ERR__APPLICATION = (- 143),
  RD_KAFKA_RESP_ERR__ASSIGNMENT_LOST = (- 142),
  RD_KAFKA_RESP_ERR__NOOP = (- 141),
  RD_KAFKA_RESP_ERR__AUTO_OFFSET_RESET = (- 140),
  RD_KAFKA_RESP_ERR__END = (- 100),
  RD_KAFKA_RESP_ERR_UNKNOWN = (- 1),
  RD_KAFKA_RESP_ERR_NO_ERROR = 0,
  RD_KAFKA_RESP_ERR_OFFSET_OUT_OF_RANGE = 1,
  RD_KAFKA_RESP_ERR_INVALID_MSG = 2,
  RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_OR_PART = 3,
  RD_KAFKA_RESP_ERR_INVALID_MSG_SIZE = 4,
  RD_KAFKA_RESP_ERR_LEADER_NOT_AVAILABLE = 5,
  RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION = 6,
  RD_KAFKA_RESP_ERR_REQUEST_TIMED_OUT = 7,
  RD_KAFKA_RESP_ERR_BROKER_NOT_AVAILABLE = 8,
  RD_KAFKA_RESP_ERR_REPLICA_NOT_AVAILABLE = 9,
  RD_KAFKA_RESP_ERR_MSG_SIZE_TOO_LARGE = 10,
  RD_KAFKA_RESP_ERR_STALE_CTRL_EPOCH = 11,
  RD_KAFKA_RESP_ERR_OFFSET_METADATA_TOO_LARGE = 12,
  RD_KAFKA_RESP_ERR_NETWORK_EXCEPTION = 13,
  RD_KAFKA_RESP_ERR_COORDINATOR_LOAD_IN_PROGRESS = 14,
  RD_KAFKA_RESP_ERR_COORDINATOR_NOT_AVAILABLE = 15,
  RD_KAFKA_RESP_ERR_NOT_COORDINATOR = 16,
  RD_KAFKA_RESP_ERR_TOPIC_EXCEPTION = 17,
  RD_KAFKA_RESP_ERR_RECORD_LIST_TOO_LARGE = 18,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS = 19,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS_AFTER_APPEND = 20,
  RD_KAFKA_RESP_ERR_INVALID_REQUIRED_ACKS = 21,
  RD_KAFKA_RESP_ERR_ILLEGAL_GENERATION = 22,
  RD_KAFKA_RESP_ERR_INCONSISTENT_GROUP_PROTOCOL = 23,
  RD_KAFKA_RESP_ERR_INVALID_GROUP_ID = 24,
  RD_KAFKA_RESP_ERR_UNKNOWN_MEMBER_ID = 25,
  RD_KAFKA_RESP_ERR_INVALID_SESSION_TIMEOUT = 26,
  RD_KAFKA_RESP_ERR_REBALANCE_IN_PROGRESS = 27,
  RD_KAFKA_RESP_ERR_INVALID_COMMIT_OFFSET_SIZE = 28,
  RD_KAFKA_RESP_ERR_TOPIC_AUTHORIZATION_FAILED = 29,
  RD_KAFKA_RESP_ERR_GROUP_AUTHORIZATION_FAILED = 30,
  RD_KAFKA_RESP_ERR_CLUSTER_AUTHORIZATION_FAILED = 31,
  RD_KAFKA_RESP_ERR_INVALID_TIMESTAMP = 32,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_SASL_MECHANISM = 33,
  RD_KAFKA_RESP_ERR_ILLEGAL_SASL_STATE = 34,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_VERSION = 35,
  RD_KAFKA_RESP_ERR_TOPIC_ALREADY_EXISTS = 36,
  RD_KAFKA_RESP_ERR_INVALID_PARTITIONS = 37,
  RD_KAFKA_RESP_ERR_INVALID_REPLICATION_FACTOR = 38,
  RD_KAFKA_RESP_ERR_INVALID_REPLICA_ASSIGNMENT = 39,
  RD_KAFKA_RESP_ERR_INVALID_CONFIG = 40,
  RD_KAFKA_RESP_ERR_NOT_CONTROLLER = 41,
  RD_KAFKA_RESP_ERR_INVALID_REQUEST = 42,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_FOR_MESSAGE_FORMAT = 43,
  RD_KAFKA_RESP_ERR_POLICY_VIOLATION = 44,
  RD_KAFKA_RESP_ERR_OUT_OF_ORDER_SEQUENCE_NUMBER = 45,
  RD_KAFKA_RESP_ERR_DUPLICATE_SEQUENCE_NUMBER = 46,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_EPOCH = 47,
  RD_KAFKA_RESP_ERR_INVALID_TXN_STATE = 48,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_ID_MAPPING = 49,
  RD_KAFKA_RESP_ERR_INVALID_TRANSACTION_TIMEOUT = 50,
  RD_KAFKA_RESP_ERR_CONCURRENT_TRANSACTIONS = 51,
  RD_KAFKA_RESP_ERR_TRANSACTION_COORDINATOR_FENCED = 52,
  RD_KAFKA_RESP_ERR_TRANSACTIONAL_ID_AUTHORIZATION_FAILED = 53,
  RD_KAFKA_RESP_ERR_SECURITY_DISABLED = 54,
  RD_KAFKA_RESP_ERR_OPERATION_NOT_ATTEMPTED = 55,
  RD_KAFKA_RESP_ERR_KAFKA_STORAGE_ERROR = 56,
  RD_KAFKA_RESP_ERR_LOG_DIR_NOT_FOUND = 57,
  RD_KAFKA_RESP_ERR_SASL_AUTHENTICATION_FAILED = 58,
  RD_KAFKA_RESP_ERR_UNKNOWN_PRODUCER_ID = 59,
  RD_KAFKA_RESP_ERR_REASSIGNMENT_IN_PROGRESS = 60,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTH_DISABLED = 61,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_NOT_FOUND = 62,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_OWNER_MISMATCH = 63,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_REQUEST_NOT_ALLOWED = 64,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTHORIZATION_FAILED = 65,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_EXPIRED = 66,
  RD_KAFKA_RESP_ERR_INVALID_PRINCIPAL_TYPE = 67,
  RD_KAFKA_RESP_ERR_NON_EMPTY_GROUP = 68,
  RD_KAFKA_RESP_ERR_GROUP_ID_NOT_FOUND = 69,
  RD_KAFKA_RESP_ERR_FETCH_SESSION_ID_NOT_FOUND = 70,
  RD_KAFKA_RESP_ERR_INVALID_FETCH_SESSION_EPOCH = 71,
  RD_KAFKA_RESP_ERR_LISTENER_NOT_FOUND = 72,
  RD_KAFKA_RESP_ERR_TOPIC_DELETION_DISABLED = 73,
  RD_KAFKA_RESP_ERR_FENCED_LEADER_EPOCH = 74,
  RD_KAFKA_RESP_ERR_UNKNOWN_LEADER_EPOCH = 75,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76,
  RD_KAFKA_RESP_ERR_STALE_BROKER_EPOCH = 77,
  RD_KAFKA_RESP_ERR_OFFSET_NOT_AVAILABLE = 78,
  RD_KAFKA_RESP_ERR_MEMBER_ID_REQUIRED = 79,
  RD_KAFKA_RESP_ERR_PREFERRED_LEADER_NOT_AVAILABLE = 80,
  RD_KAFKA_RESP_ERR_GROUP_MAX_SIZE_REACHED = 81,
  RD_KAFKA_RESP_ERR_FENCED_INSTANCE_ID = 82,
  RD_KAFKA_RESP_ERR_ELIGIBLE_LEADERS_NOT_AVAILABLE = 83,
  RD_KAFKA_RESP_ERR_ELECTION_NOT_NEEDED = 84,
  RD_KAFKA_RESP_ERR_NO_REASSIGNMENT_IN_PROGRESS = 85,
  RD_KAFKA_RESP_ERR_GROUP_SUBSCRIBED_TO_TOPIC = 86,
  RD_KAFKA_RESP_ERR_INVALID_RECORD = 87,
  RD_KAFKA_RESP_ERR_UNSTABLE_OFFSET_COMMIT = 88,
  RD_KAFKA_RESP_ERR_THROTTLING_QUOTA_EXCEEDED = 89,
  RD_KAFKA_RESP_ERR_PRODUCER_FENCED = 90,
  RD_KAFKA_RESP_ERR_RESOURCE_NOT_FOUND = 91,
  RD_KAFKA_RESP_ERR_DUPLICATE_RESOURCE = 92,
  RD_KAFKA_RESP_ERR_UNACCEPTABLE_CREDENTIAL = 93,
  RD_KAFKA_RESP_ERR_INCONSISTENT_VOTER_SET = 94,
  RD_KAFKA_RESP_ERR_INVALID_UPDATE_VERSION = 95,
  RD_KAFKA_RESP_ERR_FEATURE_UPDATE_FAILED = 96,
  RD_KAFKA_RESP_ERR_PRINCIPAL_DESERIALIZATION_FAILURE = 97,
  RD_KAFKA_RESP_ERR_END_ALL,
} rd_kafka_resp_err_t;
struct rd_kafka_err_desc {
  rd_kafka_resp_err_t code;
  char *name;
  char *desc;
};
void rd_kafka_get_err_descs(const struct rd_kafka_err_desc **errdescs, size_t *cntp);
const char *rd_kafka_err2str(rd_kafka_resp_err_t err);
const char *rd_kafka_err2name(rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_last_error(void);
rd_kafka_resp_err_t rd_kafka_errno2err(int errnox);
int rd_kafka_errno(void);
rd_kafka_resp_err_t rd_kafka_fatal_error(rd_kafka_t *rk, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_test_fatal_error(rd_kafka_t *rk, rd_kafka_resp_err_t err, const char *reason);
rd_kafka_resp_err_t rd_kafka_error_code(const rd_kafka_error_t *error);
const char *rd_kafka_error_name(const rd_kafka_error_t *error);
const char *rd_kafka_error_string(const rd_kafka_error_t *error);
int rd_kafka_error_is_fatal(const rd_kafka_error_t *error);
int rd_kafka_error_is_retriable(const rd_kafka_error_t *error);
int rd_kafka_error_txn_requires_abort(const rd_kafka_error_t *error);
void rd_kafka_error_destroy(rd_kafka_error_t *error);
rd_kafka_error_t *rd_kafka_error_new(rd_kafka_resp_err_t code, const char *fmt, ...);
typedef struct rd_kafka_topic_partition_s {
  char *topic;
  int32_t partition;
  int64_t offset;
  void *metadata;
  size_t metadata_size;
  void *opaque;
  rd_kafka_resp_err_t err;
  void *_private;
} rd_kafka_topic_partition_t;
void rd_kafka_topic_partition_destroy(rd_kafka_topic_partition_t *rktpar);
typedef struct rd_kafka_topic_partition_list_s {
  int cnt;
  int size;
  rd_kafka_topic_partition_t *elems;
} rd_kafka_topic_partition_list_t;
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_new(int size);
void rd_kafka_topic_partition_list_destroy(rd_kafka_topic_partition_list_t *rkparlist);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_add(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_add_range(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t start, int32_t stop);
int rd_kafka_topic_partition_list_del(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
int rd_kafka_topic_partition_list_del_by_idx(rd_kafka_topic_partition_list_t *rktparlist, int idx);
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_copy(const rd_kafka_topic_partition_list_t *src);
rd_kafka_resp_err_t rd_kafka_topic_partition_list_set_offset(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition, int64_t offset);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_find(const rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_sort(rd_kafka_topic_partition_list_t *rktparlist, int (*cmp)(const void *a, const void *b, void *cmp_opaque), void *cmp_opaque);
typedef enum rd_kafka_vtype_t {
  RD_KAFKA_VTYPE_END,
  RD_KAFKA_VTYPE_TOPIC,
  RD_KAFKA_VTYPE_RKT,
  RD_KAFKA_VTYPE_PARTITION,
  RD_KAFKA_VTYPE_VALUE,
  RD_KAFKA_VTYPE_KEY,
  RD_KAFKA_VTYPE_OPAQUE,
  RD_KAFKA_VTYPE_MSGFLAGS,
  RD_KAFKA_VTYPE_TIMESTAMP,
  RD_KAFKA_VTYPE_HEADER,
  RD_KAFKA_VTYPE_HEADERS,
} rd_kafka_vtype_t;
typedef struct rd_kafka_vu_s {
  rd_kafka_vtype_t vtype;
  union {
    char *cstr;
    rd_kafka_topic_t *rkt;
    int i;
    int32_t i32;
    int64_t i64;
    struct {
      void *ptr;
      size_t size;
    } mem;
    struct {
      char *name;
      void *val;
      ssize_t size;
    } header;
    rd_kafka_headers_t *headers;
    void *ptr;
    char _pad[64];
  } u;
} rd_kafka_vu_t;
rd_kafka_headers_t *rd_kafka_headers_new(size_t initial_count);
void rd_kafka_headers_destroy(rd_kafka_headers_t *hdrs);
rd_kafka_headers_t *rd_kafka_headers_copy(const rd_kafka_headers_t *src);
rd_kafka_resp_err_t rd_kafka_header_add(rd_kafka_headers_t *hdrs, const char *name, ssize_t name_size, const void *value, ssize_t value_size);
rd_kafka_resp_err_t rd_kafka_header_remove(rd_kafka_headers_t *hdrs, const char *name);
rd_kafka_resp_err_t rd_kafka_header_get_last(const rd_kafka_headers_t *hdrs, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get(const rd_kafka_headers_t *hdrs, size_t idx, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get_all(const rd_kafka_headers_t *hdrs, size_t idx, const char **namep, const void **valuep, size_t *sizep);
typedef struct rd_kafka_message_s {
  rd_kafka_resp_err_t err;
  rd_kafka_topic_t *rkt;
  int32_t partition;
  void *payload;
  size_t len;
  void *key;
  size_t key_len;
  int64_t offset;
  void *_private;
} rd_kafka_message_t;
void rd_kafka_message_destroy(rd_kafka_message_t *rkmessage);
const char *rd_kafka_message_errstr(const rd_kafka_message_t *rkmessage);
int64_t rd_kafka_message_timestamp(const rd_kafka_message_t *rkmessage, rd_kafka_timestamp_type_t *tstype);
int64_t rd_kafka_message_latency(const rd_kafka_message_t *rkmessage);
int32_t rd_kafka_message_broker_id(const rd_kafka_message_t *rkmessage);
rd_kafka_resp_err_t rd_kafka_message_headers(const rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
rd_kafka_resp_err_t rd_kafka_message_detach_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
void rd_kafka_message_set_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t *hdrs);
size_t rd_kafka_header_cnt(const rd_kafka_headers_t *hdrs);
typedef enum {
  RD_KAFKA_MSG_STATUS_NOT_PERSISTED = 0,
  RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED = 1,
  RD_KAFKA_MSG_STATUS_PERSISTED = 2,
} rd_kafka_msg_status_t;
rd_kafka_msg_status_t rd_kafka_message_status(const rd_kafka_message_t *rkmessage);
typedef enum {
  RD_KAFKA_CONF_UNKNOWN = (- 2),
  RD_KAFKA_CONF_INVALID = (- 1),
  RD_KAFKA_CONF_OK = 0,
} rd_kafka_conf_res_t;
rd_kafka_conf_t *rd_kafka_conf_new(void);
void rd_kafka_conf_destroy(rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup(const rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup_filter(const rd_kafka_conf_t *conf, size_t filter_cnt, const char **filter);
const rd_kafka_conf_t *rd_kafka_conf(rd_kafka_t *rk);
rd_kafka_conf_res_t rd_kafka_conf_set(rd_kafka_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_events(rd_kafka_conf_t *conf, int events);
void rd_kafka_conf_set_background_event_cb(rd_kafka_conf_t *conf, void (*event_cb)(rd_kafka_t *rk, rd_kafka_event_t *rkev, void *opaque));
void rd_kafka_conf_set_dr_cb(rd_kafka_conf_t *conf, void (*dr_cb)(rd_kafka_t *rk, void *payload, size_t len, rd_kafka_resp_err_t err, void *opaque, void *msg_opaque));
void rd_kafka_conf_set_dr_msg_cb(rd_kafka_conf_t *conf, void (*dr_msg_cb)(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_consume_cb(rd_kafka_conf_t *conf, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_rebalance_cb(rd_kafka_conf_t *conf, void (*rebalance_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *partitions, void *opaque));
void rd_kafka_conf_set_offset_commit_cb(rd_kafka_conf_t *conf, void (*offset_commit_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *opaque));
void rd_kafka_conf_set_error_cb(rd_kafka_conf_t *conf, void (*error_cb)(rd_kafka_t *rk, int err, const char *reason, void *opaque));
void rd_kafka_conf_set_throttle_cb(rd_kafka_conf_t *conf, void (*throttle_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int throttle_time_ms, void *opaque));
void rd_kafka_conf_set_log_cb(rd_kafka_conf_t *conf, void (*log_cb)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_conf_set_stats_cb(rd_kafka_conf_t *conf, int (*stats_cb)(rd_kafka_t *rk, char *json, size_t json_len, void *opaque));
void rd_kafka_conf_set_oauthbearer_token_refresh_cb(rd_kafka_conf_t *conf, void (*oauthbearer_token_refresh_cb)(rd_kafka_t *rk, const char *oauthbearer_config, void *opaque));
void rd_kafka_conf_enable_sasl_queue(rd_kafka_conf_t *conf, int enable);
void rd_kafka_conf_set_socket_cb(rd_kafka_conf_t *conf, int (*socket_cb)(int domain, int type, int protocol, void *opaque));
void rd_kafka_conf_set_connect_cb(rd_kafka_conf_t *conf, int (*connect_cb)(int sockfd, const struct sockaddr *addr, int addrlen, const char *id, void *opaque));
void rd_kafka_conf_set_closesocket_cb(rd_kafka_conf_t *conf, int (*closesocket_cb)(int sockfd, void *opaque));
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert_verify_cb(rd_kafka_conf_t *conf, int (*ssl_cert_verify_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int *x509_error, int depth, const char *buf, size_t size, char *errstr, size_t errstr_size, void *opaque));
typedef enum rd_kafka_cert_type_t {
  RD_KAFKA_CERT_PUBLIC_KEY,
  RD_KAFKA_CERT_PRIVATE_KEY,
  RD_KAFKA_CERT_CA,
  RD_KAFKA_CERT__CNT,
} rd_kafka_cert_type_t;
typedef enum rd_kafka_cert_enc_t {
  RD_KAFKA_CERT_ENC_PKCS12,
  RD_KAFKA_CERT_ENC_DER,
  RD_KAFKA_CERT_ENC_PEM,
  RD_KAFKA_CERT_ENC__CNT,
} rd_kafka_cert_enc_t;
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert(rd_kafka_conf_t *conf, rd_kafka_cert_type_t cert_type, rd_kafka_cert_enc_t cert_enc, const void *buffer, size_t size, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_engine_callback_data(rd_kafka_conf_t *conf, void *callback_data);
void rd_kafka_conf_set_opaque(rd_kafka_conf_t *conf, void *opaque);
void *rd_kafka_opaque(const rd_kafka_t *rk);
void rd_kafka_conf_set_default_topic_conf(rd_kafka_conf_t *conf, rd_kafka_topic_conf_t *tconf);
rd_kafka_topic_conf_t *rd_kafka_conf_get_default_topic_conf(rd_kafka_conf_t *conf);
rd_kafka_conf_res_t rd_kafka_conf_get(const rd_kafka_conf_t *conf, const char *name, char *dest, size_t *dest_size);
rd_kafka_conf_res_t rd_kafka_topic_conf_get(const rd_kafka_topic_conf_t *conf, const char *name, char *dest, size_t *dest_size);
const char **rd_kafka_conf_dump(rd_kafka_conf_t *conf, size_t *cntp);
const char **rd_kafka_topic_conf_dump(rd_kafka_topic_conf_t *conf, size_t *cntp);
void rd_kafka_conf_dump_free(const char **arr, size_t cnt);
void rd_kafka_conf_properties_show(FILE *fp);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_new(void);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_dup(const rd_kafka_topic_conf_t *conf);
rd_kafka_topic_conf_t *rd_kafka_default_topic_conf_dup(rd_kafka_t *rk);
void rd_kafka_topic_conf_destroy(rd_kafka_topic_conf_t *topic_conf);
rd_kafka_conf_res_t rd_kafka_topic_conf_set(rd_kafka_topic_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_topic_conf_set_opaque(rd_kafka_topic_conf_t *conf, void *rkt_opaque);
void rd_kafka_topic_conf_set_partitioner_cb(rd_kafka_topic_conf_t *topic_conf, int32_t (*partitioner)(const rd_kafka_topic_t *rkt, const void *keydata, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque));
void rd_kafka_topic_conf_set_msg_order_cmp(rd_kafka_topic_conf_t *topic_conf, int (*msg_order_cmp)(const rd_kafka_message_t *a, const rd_kafka_message_t *b));
int rd_kafka_topic_partition_available(const rd_kafka_topic_t *rkt, int32_t partition);
int32_t rd_kafka_msg_partitioner_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
rd_kafka_t *rd_kafka_new(rd_kafka_type_t type, rd_kafka_conf_t *conf, char *errstr, size_t errstr_size);
void rd_kafka_destroy(rd_kafka_t *rk);
void rd_kafka_destroy_flags(rd_kafka_t *rk, int flags);
const char *rd_kafka_name(const rd_kafka_t *rk);
rd_kafka_type_t rd_kafka_type(const rd_kafka_t *rk);
char *rd_kafka_memberid(const rd_kafka_t *rk);
char *rd_kafka_clusterid(rd_kafka_t *rk, int timeout_ms);
int32_t rd_kafka_controllerid(rd_kafka_t *rk, int timeout_ms);
rd_kafka_topic_t *rd_kafka_topic_new(rd_kafka_t *rk, const char *topic, rd_kafka_topic_conf_t *conf);
void rd_kafka_topic_destroy(rd_kafka_topic_t *rkt);
const char *rd_kafka_topic_name(const rd_kafka_topic_t *rkt);
void *rd_kafka_topic_opaque(const rd_kafka_topic_t *rkt);
int rd_kafka_poll(rd_kafka_t *rk, int timeout_ms);
void rd_kafka_yield(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_pause_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_resume_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_query_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_get_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high);
rd_kafka_resp_err_t rd_kafka_offsets_for_times(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets, int timeout_ms);
void *rd_kafka_mem_calloc(rd_kafka_t *rk, size_t num, size_t size);
void *rd_kafka_mem_malloc(rd_kafka_t *rk, size_t size);
void rd_kafka_mem_free(rd_kafka_t *rk, void *ptr);
rd_kafka_queue_t *rd_kafka_queue_new(rd_kafka_t *rk);
void rd_kafka_queue_destroy(rd_kafka_queue_t *rkqu);
rd_kafka_queue_t *rd_kafka_queue_get_main(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_sasl(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_sasl_background_callbacks_enable(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_consumer(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_partition(rd_kafka_t *rk, const char *topic, int32_t partition);
rd_kafka_queue_t *rd_kafka_queue_get_background(rd_kafka_t *rk);
void rd_kafka_queue_forward(rd_kafka_queue_t *src, rd_kafka_queue_t *dst);
rd_kafka_resp_err_t rd_kafka_set_log_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu);
size_t rd_kafka_queue_length(rd_kafka_queue_t *rkqu);
void rd_kafka_queue_io_event_enable(rd_kafka_queue_t *rkqu, int fd, const void *payload, size_t size);
void rd_kafka_queue_cb_event_enable(rd_kafka_queue_t *rkqu, void (*event_cb)(rd_kafka_t *rk, void *qev_opaque), void *qev_opaque);
void rd_kafka_queue_yield(rd_kafka_queue_t *rkqu);
int rd_kafka_consume_start(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
int rd_kafka_consume_start_queue(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, rd_kafka_queue_t *rkqu);
int rd_kafka_consume_stop(rd_kafka_topic_t *rkt, int32_t partition);
rd_kafka_resp_err_t rd_kafka_seek(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, int timeout_ms);
rd_kafka_error_t *rd_kafka_seek_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_message_t *rd_kafka_consume(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms);
ssize_t rd_kafka_consume_batch(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_message_t *rd_kafka_consume_queue(rd_kafka_queue_t *rkqu, int timeout_ms);
ssize_t rd_kafka_consume_batch_queue(rd_kafka_queue_t *rkqu, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback_queue(rd_kafka_queue_t *rkqu, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_offset_store(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
rd_kafka_resp_err_t rd_kafka_offsets_store(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets);
rd_kafka_resp_err_t rd_kafka_subscribe(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *topics);
rd_kafka_resp_err_t rd_kafka_unsubscribe(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_subscription(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **topics);
rd_kafka_message_t *rd_kafka_consumer_poll(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_consumer_close(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_consumer_close_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu);
int rd_kafka_consumer_closed(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_incremental_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_error_t *rd_kafka_incremental_unassign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
const char *rd_kafka_rebalance_protocol(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_assignment(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **partitions);
int rd_kafka_assignment_lost(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_commit(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, int async);
rd_kafka_resp_err_t rd_kafka_commit_message(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, int async);
rd_kafka_resp_err_t rd_kafka_commit_queue(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_queue_t *rkqu, void (*cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_committed(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_position(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata(rd_kafka_t *rk);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new(const char *group_id);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new_with_genid(const char *group_id, int32_t generation_id, const char *member_id, const char *group_instance_id);
void rd_kafka_consumer_group_metadata_destroy(rd_kafka_consumer_group_metadata_t *);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_write(const rd_kafka_consumer_group_metadata_t *cgmd, void **bufferp, size_t *sizep);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_read(rd_kafka_consumer_group_metadata_t **cgmdp, const void *buffer, size_t size);
int rd_kafka_produce(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, void *payload, size_t len, const void *key, size_t keylen, void *msg_opaque);
rd_kafka_resp_err_t rd_kafka_producev(rd_kafka_t *rk, ...);
rd_kafka_error_t *rd_kafka_produceva(rd_kafka_t *rk, const rd_kafka_vu_t *vus, size_t cnt);
int rd_kafka_produce_batch(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, rd_kafka_message_t *rkmessages, int message_cnt);
rd_kafka_resp_err_t rd_kafka_flush(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_purge(rd_kafka_t *rk, int purge_flags);
typedef struct rd_kafka_metadata_broker {
  int32_t id;
  char *host;
  int port;
} rd_kafka_metadata_broker_t;
typedef struct rd_kafka_metadata_partition {
  int32_t id;
  rd_kafka_resp_err_t err;
  int32_t leader;
  int replica_cnt;
  int32_t *replicas;
  int isr_cnt;
  int32_t *isrs;
} rd_kafka_metadata_partition_t;
typedef struct rd_kafka_metadata_topic {
  char *topic;
  int partition_cnt;
  struct rd_kafka_metadata_partition *partitions;
  rd_kafka_resp_err_t err;
} rd_kafka_metadata_topic_t;
typedef struct rd_kafka_metadata {
  int broker_cnt;
  struct rd_kafka_metadata_broker *brokers;
  int topic_cnt;
  struct rd_kafka_metadata_topic *topics;
  int32_t orig_broker_id;
  char *orig_broker_name;
} rd_kafka_metadata_t;
rd_kafka_resp_err_t rd_kafka_metadata(rd_kafka_t *rk, int all_topics, rd_kafka_topic_t *only_rkt, const struct rd_kafka_metadata **metadatap, int timeout_ms);
void rd_kafka_metadata_destroy(const struct rd_kafka_metadata *metadata);
struct rd_kafka_group_member_info {
  char *member_id;
  char *client_id;
  char *client_host;
  void *member_metadata;
  int member_metadata_size;
  void *member_assignment;
  int member_assignment_size;
};
struct rd_kafka_group_info {
  struct rd_kafka_metadata_broker broker;
  char *group;
  rd_kafka_resp_err_t err;
  char *state;
  char *protocol_type;
  char *protocol;
  struct rd_kafka_group_member_info *members;
  int member_cnt;
};
struct rd_kafka_group_list {
  struct rd_kafka_group_info *groups;
  int group_cnt;
};
rd_kafka_resp_err_t rd_kafka_list_groups(rd_kafka_t *rk, const char *group, const struct rd_kafka_group_list **grplistp, int timeout_ms);
void rd_kafka_group_list_destroy(const struct rd_kafka_group_list *grplist);
int rd_kafka_brokers_add(rd_kafka_t *rk, const char *brokerlist);
void rd_kafka_set_logger(rd_kafka_t *rk, void (*func)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_set_log_level(rd_kafka_t *rk, int level);
void rd_kafka_log_print(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
void rd_kafka_log_syslog(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
int rd_kafka_outq_len(rd_kafka_t *rk);
void rd_kafka_dump(FILE *fp, rd_kafka_t *rk);
int rd_kafka_thread_cnt(void);
typedef enum rd_kafka_thread_type_t {
  RD_KAFKA_THREAD_MAIN,
  RD_KAFKA_THREAD_BACKGROUND,
  RD_KAFKA_THREAD_BROKER,
} rd_kafka_thread_type_t;
int rd_kafka_wait_destroyed(int timeout_ms);
int rd_kafka_unittest(void);
rd_kafka_resp_err_t rd_kafka_poll_set_consumer(rd_kafka_t *rk);
typedef int rd_kafka_event_type_t;
rd_kafka_event_type_t rd_kafka_event_type(const rd_kafka_event_t *rkev);
const char *rd_kafka_event_name(const rd_kafka_event_t *rkev);
void rd_kafka_event_destroy(rd_kafka_event_t *rkev);
const rd_kafka_message_t *rd_kafka_event_message_next(rd_kafka_event_t *rkev);
size_t rd_kafka_event_message_array(rd_kafka_event_t *rkev, const rd_kafka_message_t **rkmessages, size_t size);
size_t rd_kafka_event_message_count(rd_kafka_event_t *rkev);
const char *rd_kafka_event_config_string(rd_kafka_event_t *rkev);
rd_kafka_resp_err_t rd_kafka_event_error(rd_kafka_event_t *rkev);
const char *rd_kafka_event_error_string(rd_kafka_event_t *rkev);
int rd_kafka_event_error_is_fatal(rd_kafka_event_t *rkev);
void *rd_kafka_event_opaque(rd_kafka_event_t *rkev);
int rd_kafka_event_log(rd_kafka_event_t *rkev, const char **fac, const char **str, int *level);
int rd_kafka_event_debug_contexts(rd_kafka_event_t *rkev, char *dst, size_t dstsize);
const char *rd_kafka_event_stats(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_list_t *rd_kafka_event_topic_partition_list(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_t *rd_kafka_event_topic_partition(rd_kafka_event_t *rkev);
typedef rd_kafka_event_t rd_kafka_CreateTopics_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteTopics_result_t;
typedef rd_kafka_event_t rd_kafka_CreateAcls_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeAcls_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteAcls_result_t;
typedef rd_kafka_event_t rd_kafka_CreatePartitions_result_t;
typedef rd_kafka_event_t rd_kafka_AlterConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteRecords_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteGroups_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteConsumerGroupOffsets_result_t;
const rd_kafka_CreateTopics_result_t *rd_kafka_event_CreateTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteTopics_result_t *rd_kafka_event_DeleteTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_CreatePartitions_result_t *rd_kafka_event_CreatePartitions_result(rd_kafka_event_t *rkev);
const rd_kafka_AlterConfigs_result_t *rd_kafka_event_AlterConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeConfigs_result_t *rd_kafka_event_DescribeConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteRecords_result_t *rd_kafka_event_DeleteRecords_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteGroups_result_t *rd_kafka_event_DeleteGroups_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteConsumerGroupOffsets_result_t *rd_kafka_event_DeleteConsumerGroupOffsets_result(rd_kafka_event_t *rkev);
const rd_kafka_CreateAcls_result_t *rd_kafka_event_CreateAcls_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeAcls_result_t *rd_kafka_event_DescribeAcls_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteAcls_result_t *rd_kafka_event_DeleteAcls_result(rd_kafka_event_t *rkev);
rd_kafka_event_t *rd_kafka_queue_poll(rd_kafka_queue_t *rkqu, int timeout_ms);
int rd_kafka_queue_poll_callback(rd_kafka_queue_t *rkqu, int timeout_ms);
typedef rd_kafka_resp_err_t (rd_kafka_plugin_f_conf_init_t)(rd_kafka_conf_t *conf, void **plug_opaquep, char *errstr, size_t errstr_size);
typedef rd_kafka_conf_res_t (rd_kafka_interceptor_f_on_conf_set_t)(rd_kafka_conf_t *conf, const char *name, const char *val, char *errstr, size_t errstr_size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_dup_t)(rd_kafka_conf_t *new_conf, const rd_kafka_conf_t *old_conf, size_t filter_cnt, const char **filter, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_destroy_t)(void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_new_t)(rd_kafka_t *rk, const rd_kafka_conf_t *conf, void *ic_opaque, char *errstr, size_t errstr_size);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_destroy_t)(rd_kafka_t *rk, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_send_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_acknowledgement_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_consume_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_commit_t)(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_request_sent_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_response_received_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, int64_t rtt, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_start_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_exit_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_set(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_set_t *on_conf_set, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_dup(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_dup_t *on_conf_dup, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_destroy(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_destroy_t *on_conf_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_new(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_new_t *on_new, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_destroy(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_destroy_t *on_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_send(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_send_t *on_send, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_acknowledgement(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_acknowledgement_t *on_acknowledgement, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_consume(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_consume_t *on_consume, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_commit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_commit_t *on_commit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_request_sent(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_request_sent_t *on_request_sent, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_response_received(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_response_received_t *on_response_received, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_start(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_start_t *on_thread_start, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_exit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_exit_t *on_thread_exit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_topic_result_error(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_error_string(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_name(const rd_kafka_topic_result_t *topicres);
const rd_kafka_error_t *rd_kafka_group_result_error(const rd_kafka_group_result_t *groupres);
const char *rd_kafka_group_result_name(const rd_kafka_group_result_t *groupres);
const rd_kafka_topic_partition_list_t *rd_kafka_group_result_partitions(const rd_kafka_group_result_t *groupres);
typedef enum rd_kafka_admin_op_t {
  RD_KAFKA_ADMIN_OP_ANY = 0,
  RD_KAFKA_ADMIN_OP_CREATETOPICS,
  RD_KAFKA_ADMIN_OP_DELETETOPICS,
  RD_KAFKA_ADMIN_OP_CREATEPARTITIONS,
  RD_KAFKA_ADMIN_OP_ALTERCONFIGS,
  RD_KAFKA_ADMIN_OP_DESCRIBECONFIGS,
  RD_KAFKA_ADMIN_OP_DELETERECORDS,
  RD_KAFKA_ADMIN_OP_DELETEGROUPS,
  RD_KAFKA_ADMIN_OP_DELETECONSUMERGROUPOFFSETS,
  RD_KAFKA_ADMIN_OP_CREATEACLS,
  RD_KAFKA_ADMIN_OP_DESCRIBEACLS,
  RD_KAFKA_ADMIN_OP_DELETEACLS,
  RD_KAFKA_ADMIN_OP__CNT,
} rd_kafka_admin_op_t;
typedef struct rd_kafka_AdminOptions_s rd_kafka_AdminOptions_t;
rd_kafka_AdminOptions_t *rd_kafka_AdminOptions_new(rd_kafka_t *rk, rd_kafka_admin_op_t for_api);
void rd_kafka_AdminOptions_destroy(rd_kafka_AdminOptions_t *options);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_request_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_operation_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_validate_only(rd_kafka_AdminOptions_t *options, int true_or_false, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_broker(rd_kafka_AdminOptions_t *options, int32_t broker_id, char *errstr, size_t errstr_size);
void rd_kafka_AdminOptions_set_opaque(rd_kafka_AdminOptions_t *options, void *ev_opaque);
typedef struct rd_kafka_NewTopic_s rd_kafka_NewTopic_t;
rd_kafka_NewTopic_t *rd_kafka_NewTopic_new(const char *topic, int num_partitions, int replication_factor, char *errstr, size_t errstr_size);
void rd_kafka_NewTopic_destroy(rd_kafka_NewTopic_t *new_topic);
void rd_kafka_NewTopic_destroy_array(rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_replica_assignment(rd_kafka_NewTopic_t *new_topic, int32_t partition, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_config(rd_kafka_NewTopic_t *new_topic, const char *name, const char *value);
void rd_kafka_CreateTopics(rd_kafka_t *rk, rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreateTopics_result_topics(const rd_kafka_CreateTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteTopic_s rd_kafka_DeleteTopic_t;
rd_kafka_DeleteTopic_t *rd_kafka_DeleteTopic_new(const char *topic);
void rd_kafka_DeleteTopic_destroy(rd_kafka_DeleteTopic_t *del_topic);
void rd_kafka_DeleteTopic_destroy_array(rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt);
void rd_kafka_DeleteTopics(rd_kafka_t *rk, rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_DeleteTopics_result_topics(const rd_kafka_DeleteTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_NewPartitions_s rd_kafka_NewPartitions_t;
rd_kafka_NewPartitions_t *rd_kafka_NewPartitions_new(const char *topic, size_t new_total_cnt, char *errstr, size_t errstr_size);
void rd_kafka_NewPartitions_destroy(rd_kafka_NewPartitions_t *new_parts);
void rd_kafka_NewPartitions_destroy_array(rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt);
rd_kafka_resp_err_t rd_kafka_NewPartitions_set_replica_assignment(rd_kafka_NewPartitions_t *new_parts, int32_t new_partition_idx, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
void rd_kafka_CreatePartitions(rd_kafka_t *rk, rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreatePartitions_result_topics(const rd_kafka_CreatePartitions_result_t *result, size_t *cntp);
typedef enum rd_kafka_ConfigSource_t {
  RD_KAFKA_CONFIG_SOURCE_UNKNOWN_CONFIG = 0,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG = 1,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG = 2,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG = 3,
  RD_KAFKA_CONFIG_SOURCE_STATIC_BROKER_CONFIG = 4,
  RD_KAFKA_CONFIG_SOURCE_DEFAULT_CONFIG = 5,
  RD_KAFKA_CONFIG_SOURCE__CNT,
} rd_kafka_ConfigSource_t;
const char *rd_kafka_ConfigSource_name(rd_kafka_ConfigSource_t confsource);
typedef struct rd_kafka_ConfigEntry_s rd_kafka_ConfigEntry_t;
const char *rd_kafka_ConfigEntry_name(const rd_kafka_ConfigEntry_t *entry);
const char *rd_kafka_ConfigEntry_value(const rd_kafka_ConfigEntry_t *entry);
rd_kafka_ConfigSource_t rd_kafka_ConfigEntry_source(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_read_only(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_default(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_sensitive(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_synonym(const rd_kafka_ConfigEntry_t *entry);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigEntry_synonyms(const rd_kafka_ConfigEntry_t *entry, size_t *cntp);
typedef enum rd_kafka_ResourceType_t {
  RD_KAFKA_RESOURCE_UNKNOWN = 0,
  RD_KAFKA_RESOURCE_ANY = 1,
  RD_KAFKA_RESOURCE_TOPIC = 2,
  RD_KAFKA_RESOURCE_GROUP = 3,
  RD_KAFKA_RESOURCE_BROKER = 4,
  RD_KAFKA_RESOURCE__CNT,
} rd_kafka_ResourceType_t;
typedef enum rd_kafka_ResourcePatternType_t {
  RD_KAFKA_RESOURCE_PATTERN_UNKNOWN = 0,
  RD_KAFKA_RESOURCE_PATTERN_ANY = 1,
  RD_KAFKA_RESOURCE_PATTERN_MATCH = 2,
  RD_KAFKA_RESOURCE_PATTERN_LITERAL = 3,
  RD_KAFKA_RESOURCE_PATTERN_PREFIXED = 4,
  RD_KAFKA_RESOURCE_PATTERN_TYPE__CNT,
} rd_kafka_ResourcePatternType_t;
const char *rd_kafka_ResourcePatternType_name(rd_kafka_ResourcePatternType_t resource_pattern_type);
const char *rd_kafka_ResourceType_name(rd_kafka_ResourceType_t restype);
typedef struct rd_kafka_ConfigResource_s rd_kafka_ConfigResource_t;
rd_kafka_ConfigResource_t *rd_kafka_ConfigResource_new(rd_kafka_ResourceType_t restype, const char *resname);
void rd_kafka_ConfigResource_destroy(rd_kafka_ConfigResource_t *config);
void rd_kafka_ConfigResource_destroy_array(rd_kafka_ConfigResource_t **config, size_t config_cnt);
rd_kafka_resp_err_t rd_kafka_ConfigResource_set_config(rd_kafka_ConfigResource_t *config, const char *name, const char *value);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigResource_configs(const rd_kafka_ConfigResource_t *config, size_t *cntp);
rd_kafka_ResourceType_t rd_kafka_ConfigResource_type(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_name(const rd_kafka_ConfigResource_t *config);
rd_kafka_resp_err_t rd_kafka_ConfigResource_error(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_error_string(const rd_kafka_ConfigResource_t *config);
void rd_kafka_AlterConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_AlterConfigs_result_resources(const rd_kafka_AlterConfigs_result_t *result, size_t *cntp);
void rd_kafka_DescribeConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_DescribeConfigs_result_resources(const rd_kafka_DescribeConfigs_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteRecords_s rd_kafka_DeleteRecords_t;
rd_kafka_DeleteRecords_t *rd_kafka_DeleteRecords_new(const rd_kafka_topic_partition_list_t *before_offsets);
void rd_kafka_DeleteRecords_destroy(rd_kafka_DeleteRecords_t *del_records);
void rd_kafka_DeleteRecords_destroy_array(rd_kafka_DeleteRecords_t **del_records, size_t del_record_cnt);
void rd_kafka_DeleteRecords(rd_kafka_t *rk, rd_kafka_DeleteRecords_t **del_records, size_t del_record_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_partition_list_t *rd_kafka_DeleteRecords_result_offsets(const rd_kafka_DeleteRecords_result_t *result);
typedef struct rd_kafka_DeleteGroup_s rd_kafka_DeleteGroup_t;
rd_kafka_DeleteGroup_t *rd_kafka_DeleteGroup_new(const char *group);
void rd_kafka_DeleteGroup_destroy(rd_kafka_DeleteGroup_t *del_group);
void rd_kafka_DeleteGroup_destroy_array(rd_kafka_DeleteGroup_t **del_groups, size_t del_group_cnt);
void rd_kafka_DeleteGroups(rd_kafka_t *rk, rd_kafka_DeleteGroup_t **del_groups, size_t del_group_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_DeleteGroups_result_groups(const rd_kafka_DeleteGroups_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteConsumerGroupOffsets_s rd_kafka_DeleteConsumerGroupOffsets_t;
rd_kafka_DeleteConsumerGroupOffsets_t *rd_kafka_DeleteConsumerGroupOffsets_new(const char *group, const rd_kafka_topic_partition_list_t *partitions);
void rd_kafka_DeleteConsumerGroupOffsets_destroy(rd_kafka_DeleteConsumerGroupOffsets_t *del_grpoffsets);
void rd_kafka_DeleteConsumerGroupOffsets_destroy_array(rd_kafka_DeleteConsumerGroupOffsets_t **del_grpoffsets, size_t del_grpoffset_cnt);
void rd_kafka_DeleteConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_DeleteConsumerGroupOffsets_t **del_grpoffsets, size_t del_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_DeleteConsumerGroupOffsets_result_groups(const rd_kafka_DeleteConsumerGroupOffsets_result_t *result, size_t *cntp);
typedef struct rd_kafka_AclBinding_s rd_kafka_AclBinding_t;
typedef rd_kafka_AclBinding_t rd_kafka_AclBindingFilter_t;
const rd_kafka_error_t *rd_kafka_acl_result_error(const rd_kafka_acl_result_t *aclres);
typedef enum rd_kafka_AclOperation_t {
  RD_KAFKA_ACL_OPERATION_UNKNOWN = 0,
  RD_KAFKA_ACL_OPERATION_ANY = 1,
  RD_KAFKA_ACL_OPERATION_ALL = 2,
  RD_KAFKA_ACL_OPERATION_READ = 3,
  RD_KAFKA_ACL_OPERATION_WRITE = 4,
  RD_KAFKA_ACL_OPERATION_CREATE = 5,
  RD_KAFKA_ACL_OPERATION_DELETE = 6,
  RD_KAFKA_ACL_OPERATION_ALTER = 7,
  RD_KAFKA_ACL_OPERATION_DESCRIBE = 8,
  RD_KAFKA_ACL_OPERATION_CLUSTER_ACTION = 9,
  RD_KAFKA_ACL_OPERATION_DESCRIBE_CONFIGS = 10,
  RD_KAFKA_ACL_OPERATION_ALTER_CONFIGS = 11,
  RD_KAFKA_ACL_OPERATION_IDEMPOTENT_WRITE = 12,
  RD_KAFKA_ACL_OPERATION__CNT,
} rd_kafka_AclOperation_t;
const char *rd_kafka_AclOperation_name(rd_kafka_AclOperation_t acl_operation);
typedef enum rd_kafka_AclPermissionType_t {
  RD_KAFKA_ACL_PERMISSION_TYPE_UNKNOWN = 0,
  RD_KAFKA_ACL_PERMISSION_TYPE_ANY = 1,
  RD_KAFKA_ACL_PERMISSION_TYPE_DENY = 2,
  RD_KAFKA_ACL_PERMISSION_TYPE_ALLOW = 3,
  RD_KAFKA_ACL_PERMISSION_TYPE__CNT,
} rd_kafka_AclPermissionType_t;
const char *rd_kafka_AclPermissionType_name(rd_kafka_AclPermissionType_t acl_permission_type);
rd_kafka_AclBinding_t *rd_kafka_AclBinding_new(rd_kafka_ResourceType_t restype, const char *name, rd_kafka_ResourcePatternType_t resource_pattern_type, const char *principal, const char *host, rd_kafka_AclOperation_t operation, rd_kafka_AclPermissionType_t permission_type, char *errstr, size_t errstr_size);
rd_kafka_AclBindingFilter_t *rd_kafka_AclBindingFilter_new(rd_kafka_ResourceType_t restype, const char *name, rd_kafka_ResourcePatternType_t resource_pattern_type, const char *principal, const char *host, rd_kafka_AclOperation_t operation, rd_kafka_AclPermissionType_t permission_type, char *errstr, size_t errstr_size);
rd_kafka_ResourceType_t rd_kafka_AclBinding_restype(const rd_kafka_AclBinding_t *acl);
const char *rd_kafka_AclBinding_name(const rd_kafka_AclBinding_t *acl);
const char *rd_kafka_AclBinding_principal(const rd_kafka_AclBinding_t *acl);
const char *rd_kafka_AclBinding_host(const rd_kafka_AclBinding_t *acl);
rd_kafka_AclOperation_t rd_kafka_AclBinding_operation(const rd_kafka_AclBinding_t *acl);
rd_kafka_AclPermissionType_t rd_kafka_AclBinding_permission_type(const rd_kafka_AclBinding_t *acl);
rd_kafka_ResourcePatternType_t rd_kafka_AclBinding_resource_pattern_type(const rd_kafka_AclBinding_t *acl);
const rd_kafka_error_t *rd_kafka_AclBinding_error(const rd_kafka_AclBinding_t *acl);
void rd_kafka_AclBinding_destroy(rd_kafka_AclBinding_t *acl_binding);
void rd_kafka_AclBinding_destroy_array(rd_kafka_AclBinding_t **acl_bindings, size_t acl_bindings_cnt);
const rd_kafka_acl_result_t **rd_kafka_CreateAcls_result_acls(const rd_kafka_CreateAcls_result_t *result, size_t *cntp);
void rd_kafka_CreateAcls(rd_kafka_t *rk, rd_kafka_AclBinding_t **new_acls, size_t new_acls_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_AclBinding_t **rd_kafka_DescribeAcls_result_acls(const rd_kafka_DescribeAcls_result_t *result, size_t *cntp);
void rd_kafka_DescribeAcls(rd_kafka_t *rk, rd_kafka_AclBindingFilter_t *acl_filter, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
typedef struct rd_kafka_DeleteAcls_result_response_s rd_kafka_DeleteAcls_result_response_t;
const rd_kafka_DeleteAcls_result_response_t **rd_kafka_DeleteAcls_result_responses(const rd_kafka_DeleteAcls_result_t *result, size_t *cntp);
const rd_kafka_error_t *rd_kafka_DeleteAcls_result_response_error(const rd_kafka_DeleteAcls_result_response_t *result_response);
const rd_kafka_AclBinding_t **rd_kafka_DeleteAcls_result_response_matching_acls(const rd_kafka_DeleteAcls_result_response_t *result_response, size_t *matching_acls_cntp);
void rd_kafka_DeleteAcls(rd_kafka_t *rk, rd_kafka_AclBindingFilter_t **del_acls, size_t del_acls_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token(rd_kafka_t *rk, const char *token_value, int64_t md_lifetime_ms, const char *md_principal_name, const char **extensions, size_t extension_size, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token_failure(rd_kafka_t *rk, const char *errstr);
rd_kafka_error_t *rd_kafka_init_transactions(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_begin_transaction(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_send_offsets_to_transaction(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, const rd_kafka_consumer_group_metadata_t *cgmetadata, int timeout_ms);
rd_kafka_error_t *rd_kafka_commit_transaction(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_abort_transaction(rd_kafka_t *rk, int timeout_ms);
typedef struct rd_kafka_mock_cluster_s rd_kafka_mock_cluster_t;
rd_kafka_mock_cluster_t *rd_kafka_mock_cluster_new(rd_kafka_t *rk, int broker_cnt);
void rd_kafka_mock_cluster_destroy(rd_kafka_mock_cluster_t *mcluster);
rd_kafka_t *rd_kafka_mock_cluster_handle(const rd_kafka_mock_cluster_t *mcluster);
rd_kafka_mock_cluster_t *rd_kafka_handle_mock_cluster(const rd_kafka_t *rk);
const char *rd_kafka_mock_cluster_bootstraps(const rd_kafka_mock_cluster_t *mcluster);
void rd_kafka_mock_clear_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey);
void rd_kafka_mock_push_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, ...);
void rd_kafka_mock_push_request_errors_array(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, const rd_kafka_resp_err_t *errors);
rd_kafka_resp_err_t rd_kafka_mock_broker_push_request_error_rtts(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int16_t ApiKey, size_t cnt, ...);
void rd_kafka_mock_topic_set_error(rd_kafka_mock_cluster_t *mcluster, const char *topic, rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_mock_topic_create(rd_kafka_mock_cluster_t *mcluster, const char *topic, int partition_cnt, int replication_factor);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_leader(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower_wmarks(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int64_t lo, int64_t hi);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_down(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_up(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rtt(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int rtt_ms);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rack(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, const char *rack);
rd_kafka_resp_err_t rd_kafka_mock_coordinator_set(rd_kafka_mock_cluster_t *mcluster, const char *key_type, const char *key, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_set_apiversion(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, int16_t MinVersion, int16_t MaxVersion);
'
rdkafka.h, rdkafka_mock.h

RD_KAFKA_VERSION

public RD_KAFKA_VERSION = 17367551

librdkafka version

Interpreted as hex MM.mm.rr.xx:

  • MM = Major
  • mm = minor
  • rr = revision
  • xx = pre-release id (0xff is the final release)

E.g.: 0x000801ff = 0.8.1

Remarks
This value should only be used during compile time, for runtime checks of version use rd_kafka_version()

RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE

public RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76

Unsupported compression type

RD_KAFKA_RESP_ERR_END_ALL

public RD_KAFKA_RESP_ERR_END_ALL = 98
enum rd_kafka_resp_err_t

RD_KAFKA_ADMIN_OP__CNT

public RD_KAFKA_ADMIN_OP__CNT = 12

Number of ops defined

RD_KAFKA_CDEF

public RD_KAFKA_CDEF = 'typedef long int ssize_t;
typedef struct _IO_FILE FILE;
typedef long int mode_t;
typedef signed int int16_t;
typedef unsigned int uint16_t;
typedef signed int int32_t;
typedef signed long int int64_t;
int rd_kafka_version(void);
const char *rd_kafka_version_str(void);
typedef enum rd_kafka_type_t {
  RD_KAFKA_PRODUCER,
  RD_KAFKA_CONSUMER,
} rd_kafka_type_t;
typedef enum rd_kafka_timestamp_type_t {
  RD_KAFKA_TIMESTAMP_NOT_AVAILABLE,
  RD_KAFKA_TIMESTAMP_CREATE_TIME,
  RD_KAFKA_TIMESTAMP_LOG_APPEND_TIME,
} rd_kafka_timestamp_type_t;
const char *rd_kafka_get_debug_contexts(void);
typedef struct rd_kafka_s rd_kafka_t;
typedef struct rd_kafka_topic_s rd_kafka_topic_t;
typedef struct rd_kafka_conf_s rd_kafka_conf_t;
typedef struct rd_kafka_topic_conf_s rd_kafka_topic_conf_t;
typedef struct rd_kafka_queue_s rd_kafka_queue_t;
typedef struct rd_kafka_op_s rd_kafka_event_t;
typedef struct rd_kafka_topic_result_s rd_kafka_topic_result_t;
typedef struct rd_kafka_consumer_group_metadata_s rd_kafka_consumer_group_metadata_t;
typedef struct rd_kafka_error_s {
  unsigned int code;
  char *errstr;
  unsigned char fatal;
  unsigned char retriable;
  unsigned char txn_requires_abort;
} rd_kafka_error_t;
typedef struct rd_kafka_headers_s rd_kafka_headers_t;
typedef struct rd_kafka_group_result_s rd_kafka_group_result_t;
typedef struct rd_kafka_acl_result_s rd_kafka_acl_result_t;
typedef enum {
  RD_KAFKA_RESP_ERR__BEGIN = (- 200),
  RD_KAFKA_RESP_ERR__BAD_MSG = (- 199),
  RD_KAFKA_RESP_ERR__BAD_COMPRESSION = (- 198),
  RD_KAFKA_RESP_ERR__DESTROY = (- 197),
  RD_KAFKA_RESP_ERR__FAIL = (- 196),
  RD_KAFKA_RESP_ERR__TRANSPORT = (- 195),
  RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE = (- 194),
  RD_KAFKA_RESP_ERR__RESOLVE = (- 193),
  RD_KAFKA_RESP_ERR__MSG_TIMED_OUT = (- 192),
  RD_KAFKA_RESP_ERR__PARTITION_EOF = (- 191),
  RD_KAFKA_RESP_ERR__UNKNOWN_PARTITION = (- 190),
  RD_KAFKA_RESP_ERR__FS = (- 189),
  RD_KAFKA_RESP_ERR__UNKNOWN_TOPIC = (- 188),
  RD_KAFKA_RESP_ERR__ALL_BROKERS_DOWN = (- 187),
  RD_KAFKA_RESP_ERR__INVALID_ARG = (- 186),
  RD_KAFKA_RESP_ERR__TIMED_OUT = (- 185),
  RD_KAFKA_RESP_ERR__QUEUE_FULL = (- 184),
  RD_KAFKA_RESP_ERR__ISR_INSUFF = (- 183),
  RD_KAFKA_RESP_ERR__NODE_UPDATE = (- 182),
  RD_KAFKA_RESP_ERR__SSL = (- 181),
  RD_KAFKA_RESP_ERR__WAIT_COORD = (- 180),
  RD_KAFKA_RESP_ERR__UNKNOWN_GROUP = (- 179),
  RD_KAFKA_RESP_ERR__IN_PROGRESS = (- 178),
  RD_KAFKA_RESP_ERR__PREV_IN_PROGRESS = (- 177),
  RD_KAFKA_RESP_ERR__EXISTING_SUBSCRIPTION = (- 176),
  RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS = (- 175),
  RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS = (- 174),
  RD_KAFKA_RESP_ERR__CONFLICT = (- 173),
  RD_KAFKA_RESP_ERR__STATE = (- 172),
  RD_KAFKA_RESP_ERR__UNKNOWN_PROTOCOL = (- 171),
  RD_KAFKA_RESP_ERR__NOT_IMPLEMENTED = (- 170),
  RD_KAFKA_RESP_ERR__AUTHENTICATION = (- 169),
  RD_KAFKA_RESP_ERR__NO_OFFSET = (- 168),
  RD_KAFKA_RESP_ERR__OUTDATED = (- 167),
  RD_KAFKA_RESP_ERR__TIMED_OUT_QUEUE = (- 166),
  RD_KAFKA_RESP_ERR__UNSUPPORTED_FEATURE = (- 165),
  RD_KAFKA_RESP_ERR__WAIT_CACHE = (- 164),
  RD_KAFKA_RESP_ERR__INTR = (- 163),
  RD_KAFKA_RESP_ERR__KEY_SERIALIZATION = (- 162),
  RD_KAFKA_RESP_ERR__VALUE_SERIALIZATION = (- 161),
  RD_KAFKA_RESP_ERR__KEY_DESERIALIZATION = (- 160),
  RD_KAFKA_RESP_ERR__VALUE_DESERIALIZATION = (- 159),
  RD_KAFKA_RESP_ERR__PARTIAL = (- 158),
  RD_KAFKA_RESP_ERR__READ_ONLY = (- 157),
  RD_KAFKA_RESP_ERR__NOENT = (- 156),
  RD_KAFKA_RESP_ERR__UNDERFLOW = (- 155),
  RD_KAFKA_RESP_ERR__INVALID_TYPE = (- 154),
  RD_KAFKA_RESP_ERR__RETRY = (- 153),
  RD_KAFKA_RESP_ERR__PURGE_QUEUE = (- 152),
  RD_KAFKA_RESP_ERR__PURGE_INFLIGHT = (- 151),
  RD_KAFKA_RESP_ERR__FATAL = (- 150),
  RD_KAFKA_RESP_ERR__INCONSISTENT = (- 149),
  RD_KAFKA_RESP_ERR__GAPLESS_GUARANTEE = (- 148),
  RD_KAFKA_RESP_ERR__MAX_POLL_EXCEEDED = (- 147),
  RD_KAFKA_RESP_ERR__UNKNOWN_BROKER = (- 146),
  RD_KAFKA_RESP_ERR__NOT_CONFIGURED = (- 145),
  RD_KAFKA_RESP_ERR__FENCED = (- 144),
  RD_KAFKA_RESP_ERR__APPLICATION = (- 143),
  RD_KAFKA_RESP_ERR__ASSIGNMENT_LOST = (- 142),
  RD_KAFKA_RESP_ERR__NOOP = (- 141),
  RD_KAFKA_RESP_ERR__AUTO_OFFSET_RESET = (- 140),
  RD_KAFKA_RESP_ERR__END = (- 100),
  RD_KAFKA_RESP_ERR_UNKNOWN = (- 1),
  RD_KAFKA_RESP_ERR_NO_ERROR = 0,
  RD_KAFKA_RESP_ERR_OFFSET_OUT_OF_RANGE = 1,
  RD_KAFKA_RESP_ERR_INVALID_MSG = 2,
  RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_OR_PART = 3,
  RD_KAFKA_RESP_ERR_INVALID_MSG_SIZE = 4,
  RD_KAFKA_RESP_ERR_LEADER_NOT_AVAILABLE = 5,
  RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION = 6,
  RD_KAFKA_RESP_ERR_REQUEST_TIMED_OUT = 7,
  RD_KAFKA_RESP_ERR_BROKER_NOT_AVAILABLE = 8,
  RD_KAFKA_RESP_ERR_REPLICA_NOT_AVAILABLE = 9,
  RD_KAFKA_RESP_ERR_MSG_SIZE_TOO_LARGE = 10,
  RD_KAFKA_RESP_ERR_STALE_CTRL_EPOCH = 11,
  RD_KAFKA_RESP_ERR_OFFSET_METADATA_TOO_LARGE = 12,
  RD_KAFKA_RESP_ERR_NETWORK_EXCEPTION = 13,
  RD_KAFKA_RESP_ERR_COORDINATOR_LOAD_IN_PROGRESS = 14,
  RD_KAFKA_RESP_ERR_COORDINATOR_NOT_AVAILABLE = 15,
  RD_KAFKA_RESP_ERR_NOT_COORDINATOR = 16,
  RD_KAFKA_RESP_ERR_TOPIC_EXCEPTION = 17,
  RD_KAFKA_RESP_ERR_RECORD_LIST_TOO_LARGE = 18,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS = 19,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS_AFTER_APPEND = 20,
  RD_KAFKA_RESP_ERR_INVALID_REQUIRED_ACKS = 21,
  RD_KAFKA_RESP_ERR_ILLEGAL_GENERATION = 22,
  RD_KAFKA_RESP_ERR_INCONSISTENT_GROUP_PROTOCOL = 23,
  RD_KAFKA_RESP_ERR_INVALID_GROUP_ID = 24,
  RD_KAFKA_RESP_ERR_UNKNOWN_MEMBER_ID = 25,
  RD_KAFKA_RESP_ERR_INVALID_SESSION_TIMEOUT = 26,
  RD_KAFKA_RESP_ERR_REBALANCE_IN_PROGRESS = 27,
  RD_KAFKA_RESP_ERR_INVALID_COMMIT_OFFSET_SIZE = 28,
  RD_KAFKA_RESP_ERR_TOPIC_AUTHORIZATION_FAILED = 29,
  RD_KAFKA_RESP_ERR_GROUP_AUTHORIZATION_FAILED = 30,
  RD_KAFKA_RESP_ERR_CLUSTER_AUTHORIZATION_FAILED = 31,
  RD_KAFKA_RESP_ERR_INVALID_TIMESTAMP = 32,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_SASL_MECHANISM = 33,
  RD_KAFKA_RESP_ERR_ILLEGAL_SASL_STATE = 34,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_VERSION = 35,
  RD_KAFKA_RESP_ERR_TOPIC_ALREADY_EXISTS = 36,
  RD_KAFKA_RESP_ERR_INVALID_PARTITIONS = 37,
  RD_KAFKA_RESP_ERR_INVALID_REPLICATION_FACTOR = 38,
  RD_KAFKA_RESP_ERR_INVALID_REPLICA_ASSIGNMENT = 39,
  RD_KAFKA_RESP_ERR_INVALID_CONFIG = 40,
  RD_KAFKA_RESP_ERR_NOT_CONTROLLER = 41,
  RD_KAFKA_RESP_ERR_INVALID_REQUEST = 42,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_FOR_MESSAGE_FORMAT = 43,
  RD_KAFKA_RESP_ERR_POLICY_VIOLATION = 44,
  RD_KAFKA_RESP_ERR_OUT_OF_ORDER_SEQUENCE_NUMBER = 45,
  RD_KAFKA_RESP_ERR_DUPLICATE_SEQUENCE_NUMBER = 46,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_EPOCH = 47,
  RD_KAFKA_RESP_ERR_INVALID_TXN_STATE = 48,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_ID_MAPPING = 49,
  RD_KAFKA_RESP_ERR_INVALID_TRANSACTION_TIMEOUT = 50,
  RD_KAFKA_RESP_ERR_CONCURRENT_TRANSACTIONS = 51,
  RD_KAFKA_RESP_ERR_TRANSACTION_COORDINATOR_FENCED = 52,
  RD_KAFKA_RESP_ERR_TRANSACTIONAL_ID_AUTHORIZATION_FAILED = 53,
  RD_KAFKA_RESP_ERR_SECURITY_DISABLED = 54,
  RD_KAFKA_RESP_ERR_OPERATION_NOT_ATTEMPTED = 55,
  RD_KAFKA_RESP_ERR_KAFKA_STORAGE_ERROR = 56,
  RD_KAFKA_RESP_ERR_LOG_DIR_NOT_FOUND = 57,
  RD_KAFKA_RESP_ERR_SASL_AUTHENTICATION_FAILED = 58,
  RD_KAFKA_RESP_ERR_UNKNOWN_PRODUCER_ID = 59,
  RD_KAFKA_RESP_ERR_REASSIGNMENT_IN_PROGRESS = 60,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTH_DISABLED = 61,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_NOT_FOUND = 62,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_OWNER_MISMATCH = 63,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_REQUEST_NOT_ALLOWED = 64,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTHORIZATION_FAILED = 65,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_EXPIRED = 66,
  RD_KAFKA_RESP_ERR_INVALID_PRINCIPAL_TYPE = 67,
  RD_KAFKA_RESP_ERR_NON_EMPTY_GROUP = 68,
  RD_KAFKA_RESP_ERR_GROUP_ID_NOT_FOUND = 69,
  RD_KAFKA_RESP_ERR_FETCH_SESSION_ID_NOT_FOUND = 70,
  RD_KAFKA_RESP_ERR_INVALID_FETCH_SESSION_EPOCH = 71,
  RD_KAFKA_RESP_ERR_LISTENER_NOT_FOUND = 72,
  RD_KAFKA_RESP_ERR_TOPIC_DELETION_DISABLED = 73,
  RD_KAFKA_RESP_ERR_FENCED_LEADER_EPOCH = 74,
  RD_KAFKA_RESP_ERR_UNKNOWN_LEADER_EPOCH = 75,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76,
  RD_KAFKA_RESP_ERR_STALE_BROKER_EPOCH = 77,
  RD_KAFKA_RESP_ERR_OFFSET_NOT_AVAILABLE = 78,
  RD_KAFKA_RESP_ERR_MEMBER_ID_REQUIRED = 79,
  RD_KAFKA_RESP_ERR_PREFERRED_LEADER_NOT_AVAILABLE = 80,
  RD_KAFKA_RESP_ERR_GROUP_MAX_SIZE_REACHED = 81,
  RD_KAFKA_RESP_ERR_FENCED_INSTANCE_ID = 82,
  RD_KAFKA_RESP_ERR_ELIGIBLE_LEADERS_NOT_AVAILABLE = 83,
  RD_KAFKA_RESP_ERR_ELECTION_NOT_NEEDED = 84,
  RD_KAFKA_RESP_ERR_NO_REASSIGNMENT_IN_PROGRESS = 85,
  RD_KAFKA_RESP_ERR_GROUP_SUBSCRIBED_TO_TOPIC = 86,
  RD_KAFKA_RESP_ERR_INVALID_RECORD = 87,
  RD_KAFKA_RESP_ERR_UNSTABLE_OFFSET_COMMIT = 88,
  RD_KAFKA_RESP_ERR_THROTTLING_QUOTA_EXCEEDED = 89,
  RD_KAFKA_RESP_ERR_PRODUCER_FENCED = 90,
  RD_KAFKA_RESP_ERR_RESOURCE_NOT_FOUND = 91,
  RD_KAFKA_RESP_ERR_DUPLICATE_RESOURCE = 92,
  RD_KAFKA_RESP_ERR_UNACCEPTABLE_CREDENTIAL = 93,
  RD_KAFKA_RESP_ERR_INCONSISTENT_VOTER_SET = 94,
  RD_KAFKA_RESP_ERR_INVALID_UPDATE_VERSION = 95,
  RD_KAFKA_RESP_ERR_FEATURE_UPDATE_FAILED = 96,
  RD_KAFKA_RESP_ERR_PRINCIPAL_DESERIALIZATION_FAILURE = 97,
  RD_KAFKA_RESP_ERR_END_ALL,
} rd_kafka_resp_err_t;
struct rd_kafka_err_desc {
  rd_kafka_resp_err_t code;
  char *name;
  char *desc;
};
void rd_kafka_get_err_descs(const struct rd_kafka_err_desc **errdescs, size_t *cntp);
const char *rd_kafka_err2str(rd_kafka_resp_err_t err);
const char *rd_kafka_err2name(rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_last_error(void);
rd_kafka_resp_err_t rd_kafka_errno2err(int errnox);
int rd_kafka_errno(void);
rd_kafka_resp_err_t rd_kafka_fatal_error(rd_kafka_t *rk, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_test_fatal_error(rd_kafka_t *rk, rd_kafka_resp_err_t err, const char *reason);
rd_kafka_resp_err_t rd_kafka_error_code(const rd_kafka_error_t *error);
const char *rd_kafka_error_name(const rd_kafka_error_t *error);
const char *rd_kafka_error_string(const rd_kafka_error_t *error);
int rd_kafka_error_is_fatal(const rd_kafka_error_t *error);
int rd_kafka_error_is_retriable(const rd_kafka_error_t *error);
int rd_kafka_error_txn_requires_abort(const rd_kafka_error_t *error);
void rd_kafka_error_destroy(rd_kafka_error_t *error);
rd_kafka_error_t *rd_kafka_error_new(rd_kafka_resp_err_t code, const char *fmt, ...);
typedef struct rd_kafka_topic_partition_s {
  char *topic;
  int32_t partition;
  int64_t offset;
  void *metadata;
  size_t metadata_size;
  void *opaque;
  rd_kafka_resp_err_t err;
  void *_private;
} rd_kafka_topic_partition_t;
void rd_kafka_topic_partition_destroy(rd_kafka_topic_partition_t *rktpar);
typedef struct rd_kafka_topic_partition_list_s {
  int cnt;
  int size;
  rd_kafka_topic_partition_t *elems;
} rd_kafka_topic_partition_list_t;
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_new(int size);
void rd_kafka_topic_partition_list_destroy(rd_kafka_topic_partition_list_t *rkparlist);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_add(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_add_range(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t start, int32_t stop);
int rd_kafka_topic_partition_list_del(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
int rd_kafka_topic_partition_list_del_by_idx(rd_kafka_topic_partition_list_t *rktparlist, int idx);
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_copy(const rd_kafka_topic_partition_list_t *src);
rd_kafka_resp_err_t rd_kafka_topic_partition_list_set_offset(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition, int64_t offset);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_find(const rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_sort(rd_kafka_topic_partition_list_t *rktparlist, int (*cmp)(const void *a, const void *b, void *cmp_opaque), void *cmp_opaque);
typedef enum rd_kafka_vtype_t {
  RD_KAFKA_VTYPE_END,
  RD_KAFKA_VTYPE_TOPIC,
  RD_KAFKA_VTYPE_RKT,
  RD_KAFKA_VTYPE_PARTITION,
  RD_KAFKA_VTYPE_VALUE,
  RD_KAFKA_VTYPE_KEY,
  RD_KAFKA_VTYPE_OPAQUE,
  RD_KAFKA_VTYPE_MSGFLAGS,
  RD_KAFKA_VTYPE_TIMESTAMP,
  RD_KAFKA_VTYPE_HEADER,
  RD_KAFKA_VTYPE_HEADERS,
} rd_kafka_vtype_t;
typedef struct rd_kafka_vu_s {
  rd_kafka_vtype_t vtype;
  union {
    char *cstr;
    rd_kafka_topic_t *rkt;
    int i;
    int32_t i32;
    int64_t i64;
    struct {
      void *ptr;
      size_t size;
    } mem;
    struct {
      char *name;
      void *val;
      ssize_t size;
    } header;
    rd_kafka_headers_t *headers;
    void *ptr;
    char _pad[64];
  } u;
} rd_kafka_vu_t;
rd_kafka_headers_t *rd_kafka_headers_new(size_t initial_count);
void rd_kafka_headers_destroy(rd_kafka_headers_t *hdrs);
rd_kafka_headers_t *rd_kafka_headers_copy(const rd_kafka_headers_t *src);
rd_kafka_resp_err_t rd_kafka_header_add(rd_kafka_headers_t *hdrs, const char *name, ssize_t name_size, const void *value, ssize_t value_size);
rd_kafka_resp_err_t rd_kafka_header_remove(rd_kafka_headers_t *hdrs, const char *name);
rd_kafka_resp_err_t rd_kafka_header_get_last(const rd_kafka_headers_t *hdrs, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get(const rd_kafka_headers_t *hdrs, size_t idx, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get_all(const rd_kafka_headers_t *hdrs, size_t idx, const char **namep, const void **valuep, size_t *sizep);
typedef struct rd_kafka_message_s {
  rd_kafka_resp_err_t err;
  rd_kafka_topic_t *rkt;
  int32_t partition;
  void *payload;
  size_t len;
  void *key;
  size_t key_len;
  int64_t offset;
  void *_private;
} rd_kafka_message_t;
void rd_kafka_message_destroy(rd_kafka_message_t *rkmessage);
const char *rd_kafka_message_errstr(const rd_kafka_message_t *rkmessage);
int64_t rd_kafka_message_timestamp(const rd_kafka_message_t *rkmessage, rd_kafka_timestamp_type_t *tstype);
int64_t rd_kafka_message_latency(const rd_kafka_message_t *rkmessage);
int32_t rd_kafka_message_broker_id(const rd_kafka_message_t *rkmessage);
rd_kafka_resp_err_t rd_kafka_message_headers(const rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
rd_kafka_resp_err_t rd_kafka_message_detach_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
void rd_kafka_message_set_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t *hdrs);
size_t rd_kafka_header_cnt(const rd_kafka_headers_t *hdrs);
typedef enum {
  RD_KAFKA_MSG_STATUS_NOT_PERSISTED = 0,
  RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED = 1,
  RD_KAFKA_MSG_STATUS_PERSISTED = 2,
} rd_kafka_msg_status_t;
rd_kafka_msg_status_t rd_kafka_message_status(const rd_kafka_message_t *rkmessage);
typedef enum {
  RD_KAFKA_CONF_UNKNOWN = (- 2),
  RD_KAFKA_CONF_INVALID = (- 1),
  RD_KAFKA_CONF_OK = 0,
} rd_kafka_conf_res_t;
rd_kafka_conf_t *rd_kafka_conf_new(void);
void rd_kafka_conf_destroy(rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup(const rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup_filter(const rd_kafka_conf_t *conf, size_t filter_cnt, const char **filter);
const rd_kafka_conf_t *rd_kafka_conf(rd_kafka_t *rk);
rd_kafka_conf_res_t rd_kafka_conf_set(rd_kafka_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_events(rd_kafka_conf_t *conf, int events);
void rd_kafka_conf_set_background_event_cb(rd_kafka_conf_t *conf, void (*event_cb)(rd_kafka_t *rk, rd_kafka_event_t *rkev, void *opaque));
void rd_kafka_conf_set_dr_cb(rd_kafka_conf_t *conf, void (*dr_cb)(rd_kafka_t *rk, void *payload, size_t len, rd_kafka_resp_err_t err, void *opaque, void *msg_opaque));
void rd_kafka_conf_set_dr_msg_cb(rd_kafka_conf_t *conf, void (*dr_msg_cb)(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_consume_cb(rd_kafka_conf_t *conf, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_rebalance_cb(rd_kafka_conf_t *conf, void (*rebalance_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *partitions, void *opaque));
void rd_kafka_conf_set_offset_commit_cb(rd_kafka_conf_t *conf, void (*offset_commit_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *opaque));
void rd_kafka_conf_set_error_cb(rd_kafka_conf_t *conf, void (*error_cb)(rd_kafka_t *rk, int err, const char *reason, void *opaque));
void rd_kafka_conf_set_throttle_cb(rd_kafka_conf_t *conf, void (*throttle_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int throttle_time_ms, void *opaque));
void rd_kafka_conf_set_log_cb(rd_kafka_conf_t *conf, void (*log_cb)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_conf_set_stats_cb(rd_kafka_conf_t *conf, int (*stats_cb)(rd_kafka_t *rk, char *json, size_t json_len, void *opaque));
void rd_kafka_conf_set_oauthbearer_token_refresh_cb(rd_kafka_conf_t *conf, void (*oauthbearer_token_refresh_cb)(rd_kafka_t *rk, const char *oauthbearer_config, void *opaque));
void rd_kafka_conf_enable_sasl_queue(rd_kafka_conf_t *conf, int enable);
void rd_kafka_conf_set_socket_cb(rd_kafka_conf_t *conf, int (*socket_cb)(int domain, int type, int protocol, void *opaque));
void rd_kafka_conf_set_connect_cb(rd_kafka_conf_t *conf, int (*connect_cb)(int sockfd, const struct sockaddr *addr, int addrlen, const char *id, void *opaque));
void rd_kafka_conf_set_closesocket_cb(rd_kafka_conf_t *conf, int (*closesocket_cb)(int sockfd, void *opaque));
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert_verify_cb(rd_kafka_conf_t *conf, int (*ssl_cert_verify_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int *x509_error, int depth, const char *buf, size_t size, char *errstr, size_t errstr_size, void *opaque));
typedef enum rd_kafka_cert_type_t {
  RD_KAFKA_CERT_PUBLIC_KEY,
  RD_KAFKA_CERT_PRIVATE_KEY,
  RD_KAFKA_CERT_CA,
  RD_KAFKA_CERT__CNT,
} rd_kafka_cert_type_t;
typedef enum rd_kafka_cert_enc_t {
  RD_KAFKA_CERT_ENC_PKCS12,
  RD_KAFKA_CERT_ENC_DER,
  RD_KAFKA_CERT_ENC_PEM,
  RD_KAFKA_CERT_ENC__CNT,
} rd_kafka_cert_enc_t;
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert(rd_kafka_conf_t *conf, rd_kafka_cert_type_t cert_type, rd_kafka_cert_enc_t cert_enc, const void *buffer, size_t size, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_engine_callback_data(rd_kafka_conf_t *conf, void *callback_data);
void rd_kafka_conf_set_opaque(rd_kafka_conf_t *conf, void *opaque);
void *rd_kafka_opaque(const rd_kafka_t *rk);
void rd_kafka_conf_set_default_topic_conf(rd_kafka_conf_t *conf, rd_kafka_topic_conf_t *tconf);
rd_kafka_topic_conf_t *rd_kafka_conf_get_default_topic_conf(rd_kafka_conf_t *conf);
rd_kafka_conf_res_t rd_kafka_conf_get(const rd_kafka_conf_t *conf, const char *name, char *dest, size_t *dest_size);
rd_kafka_conf_res_t rd_kafka_topic_conf_get(const rd_kafka_topic_conf_t *conf, const char *name, char *dest, size_t *dest_size);
const char **rd_kafka_conf_dump(rd_kafka_conf_t *conf, size_t *cntp);
const char **rd_kafka_topic_conf_dump(rd_kafka_topic_conf_t *conf, size_t *cntp);
void rd_kafka_conf_dump_free(const char **arr, size_t cnt);
void rd_kafka_conf_properties_show(FILE *fp);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_new(void);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_dup(const rd_kafka_topic_conf_t *conf);
rd_kafka_topic_conf_t *rd_kafka_default_topic_conf_dup(rd_kafka_t *rk);
void rd_kafka_topic_conf_destroy(rd_kafka_topic_conf_t *topic_conf);
rd_kafka_conf_res_t rd_kafka_topic_conf_set(rd_kafka_topic_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_topic_conf_set_opaque(rd_kafka_topic_conf_t *conf, void *rkt_opaque);
void rd_kafka_topic_conf_set_partitioner_cb(rd_kafka_topic_conf_t *topic_conf, int32_t (*partitioner)(const rd_kafka_topic_t *rkt, const void *keydata, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque));
void rd_kafka_topic_conf_set_msg_order_cmp(rd_kafka_topic_conf_t *topic_conf, int (*msg_order_cmp)(const rd_kafka_message_t *a, const rd_kafka_message_t *b));
int rd_kafka_topic_partition_available(const rd_kafka_topic_t *rkt, int32_t partition);
int32_t rd_kafka_msg_partitioner_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
rd_kafka_t *rd_kafka_new(rd_kafka_type_t type, rd_kafka_conf_t *conf, char *errstr, size_t errstr_size);
void rd_kafka_destroy(rd_kafka_t *rk);
void rd_kafka_destroy_flags(rd_kafka_t *rk, int flags);
const char *rd_kafka_name(const rd_kafka_t *rk);
rd_kafka_type_t rd_kafka_type(const rd_kafka_t *rk);
char *rd_kafka_memberid(const rd_kafka_t *rk);
char *rd_kafka_clusterid(rd_kafka_t *rk, int timeout_ms);
int32_t rd_kafka_controllerid(rd_kafka_t *rk, int timeout_ms);
rd_kafka_topic_t *rd_kafka_topic_new(rd_kafka_t *rk, const char *topic, rd_kafka_topic_conf_t *conf);
void rd_kafka_topic_destroy(rd_kafka_topic_t *rkt);
const char *rd_kafka_topic_name(const rd_kafka_topic_t *rkt);
void *rd_kafka_topic_opaque(const rd_kafka_topic_t *rkt);
int rd_kafka_poll(rd_kafka_t *rk, int timeout_ms);
void rd_kafka_yield(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_pause_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_resume_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_query_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_get_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high);
rd_kafka_resp_err_t rd_kafka_offsets_for_times(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets, int timeout_ms);
void *rd_kafka_mem_calloc(rd_kafka_t *rk, size_t num, size_t size);
void *rd_kafka_mem_malloc(rd_kafka_t *rk, size_t size);
void rd_kafka_mem_free(rd_kafka_t *rk, void *ptr);
rd_kafka_queue_t *rd_kafka_queue_new(rd_kafka_t *rk);
void rd_kafka_queue_destroy(rd_kafka_queue_t *rkqu);
rd_kafka_queue_t *rd_kafka_queue_get_main(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_sasl(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_sasl_background_callbacks_enable(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_consumer(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_partition(rd_kafka_t *rk, const char *topic, int32_t partition);
rd_kafka_queue_t *rd_kafka_queue_get_background(rd_kafka_t *rk);
void rd_kafka_queue_forward(rd_kafka_queue_t *src, rd_kafka_queue_t *dst);
rd_kafka_resp_err_t rd_kafka_set_log_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu);
size_t rd_kafka_queue_length(rd_kafka_queue_t *rkqu);
void rd_kafka_queue_io_event_enable(rd_kafka_queue_t *rkqu, int fd, const void *payload, size_t size);
void rd_kafka_queue_cb_event_enable(rd_kafka_queue_t *rkqu, void (*event_cb)(rd_kafka_t *rk, void *qev_opaque), void *qev_opaque);
void rd_kafka_queue_yield(rd_kafka_queue_t *rkqu);
int rd_kafka_consume_start(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
int rd_kafka_consume_start_queue(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, rd_kafka_queue_t *rkqu);
int rd_kafka_consume_stop(rd_kafka_topic_t *rkt, int32_t partition);
rd_kafka_resp_err_t rd_kafka_seek(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, int timeout_ms);
rd_kafka_error_t *rd_kafka_seek_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_message_t *rd_kafka_consume(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms);
ssize_t rd_kafka_consume_batch(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_message_t *rd_kafka_consume_queue(rd_kafka_queue_t *rkqu, int timeout_ms);
ssize_t rd_kafka_consume_batch_queue(rd_kafka_queue_t *rkqu, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback_queue(rd_kafka_queue_t *rkqu, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_offset_store(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
rd_kafka_resp_err_t rd_kafka_offsets_store(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets);
rd_kafka_resp_err_t rd_kafka_subscribe(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *topics);
rd_kafka_resp_err_t rd_kafka_unsubscribe(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_subscription(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **topics);
rd_kafka_message_t *rd_kafka_consumer_poll(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_consumer_close(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_consumer_close_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu);
int rd_kafka_consumer_closed(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_incremental_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_error_t *rd_kafka_incremental_unassign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
const char *rd_kafka_rebalance_protocol(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_assignment(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **partitions);
int rd_kafka_assignment_lost(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_commit(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, int async);
rd_kafka_resp_err_t rd_kafka_commit_message(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, int async);
rd_kafka_resp_err_t rd_kafka_commit_queue(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_queue_t *rkqu, void (*cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_committed(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_position(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata(rd_kafka_t *rk);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new(const char *group_id);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new_with_genid(const char *group_id, int32_t generation_id, const char *member_id, const char *group_instance_id);
void rd_kafka_consumer_group_metadata_destroy(rd_kafka_consumer_group_metadata_t *);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_write(const rd_kafka_consumer_group_metadata_t *cgmd, void **bufferp, size_t *sizep);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_read(rd_kafka_consumer_group_metadata_t **cgmdp, const void *buffer, size_t size);
int rd_kafka_produce(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, void *payload, size_t len, const void *key, size_t keylen, void *msg_opaque);
rd_kafka_resp_err_t rd_kafka_producev(rd_kafka_t *rk, ...);
rd_kafka_error_t *rd_kafka_produceva(rd_kafka_t *rk, const rd_kafka_vu_t *vus, size_t cnt);
int rd_kafka_produce_batch(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, rd_kafka_message_t *rkmessages, int message_cnt);
rd_kafka_resp_err_t rd_kafka_flush(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_purge(rd_kafka_t *rk, int purge_flags);
typedef struct rd_kafka_metadata_broker {
  int32_t id;
  char *host;
  int port;
} rd_kafka_metadata_broker_t;
typedef struct rd_kafka_metadata_partition {
  int32_t id;
  rd_kafka_resp_err_t err;
  int32_t leader;
  int replica_cnt;
  int32_t *replicas;
  int isr_cnt;
  int32_t *isrs;
} rd_kafka_metadata_partition_t;
typedef struct rd_kafka_metadata_topic {
  char *topic;
  int partition_cnt;
  struct rd_kafka_metadata_partition *partitions;
  rd_kafka_resp_err_t err;
} rd_kafka_metadata_topic_t;
typedef struct rd_kafka_metadata {
  int broker_cnt;
  struct rd_kafka_metadata_broker *brokers;
  int topic_cnt;
  struct rd_kafka_metadata_topic *topics;
  int32_t orig_broker_id;
  char *orig_broker_name;
} rd_kafka_metadata_t;
rd_kafka_resp_err_t rd_kafka_metadata(rd_kafka_t *rk, int all_topics, rd_kafka_topic_t *only_rkt, const struct rd_kafka_metadata **metadatap, int timeout_ms);
void rd_kafka_metadata_destroy(const struct rd_kafka_metadata *metadata);
struct rd_kafka_group_member_info {
  char *member_id;
  char *client_id;
  char *client_host;
  void *member_metadata;
  int member_metadata_size;
  void *member_assignment;
  int member_assignment_size;
};
struct rd_kafka_group_info {
  struct rd_kafka_metadata_broker broker;
  char *group;
  rd_kafka_resp_err_t err;
  char *state;
  char *protocol_type;
  char *protocol;
  struct rd_kafka_group_member_info *members;
  int member_cnt;
};
struct rd_kafka_group_list {
  struct rd_kafka_group_info *groups;
  int group_cnt;
};
rd_kafka_resp_err_t rd_kafka_list_groups(rd_kafka_t *rk, const char *group, const struct rd_kafka_group_list **grplistp, int timeout_ms);
void rd_kafka_group_list_destroy(const struct rd_kafka_group_list *grplist);
int rd_kafka_brokers_add(rd_kafka_t *rk, const char *brokerlist);
void rd_kafka_set_logger(rd_kafka_t *rk, void (*func)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_set_log_level(rd_kafka_t *rk, int level);
void rd_kafka_log_print(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
void rd_kafka_log_syslog(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
int rd_kafka_outq_len(rd_kafka_t *rk);
void rd_kafka_dump(FILE *fp, rd_kafka_t *rk);
int rd_kafka_thread_cnt(void);
typedef enum rd_kafka_thread_type_t {
  RD_KAFKA_THREAD_MAIN,
  RD_KAFKA_THREAD_BACKGROUND,
  RD_KAFKA_THREAD_BROKER,
} rd_kafka_thread_type_t;
int rd_kafka_wait_destroyed(int timeout_ms);
int rd_kafka_unittest(void);
rd_kafka_resp_err_t rd_kafka_poll_set_consumer(rd_kafka_t *rk);
typedef int rd_kafka_event_type_t;
rd_kafka_event_type_t rd_kafka_event_type(const rd_kafka_event_t *rkev);
const char *rd_kafka_event_name(const rd_kafka_event_t *rkev);
void rd_kafka_event_destroy(rd_kafka_event_t *rkev);
const rd_kafka_message_t *rd_kafka_event_message_next(rd_kafka_event_t *rkev);
size_t rd_kafka_event_message_array(rd_kafka_event_t *rkev, const rd_kafka_message_t **rkmessages, size_t size);
size_t rd_kafka_event_message_count(rd_kafka_event_t *rkev);
const char *rd_kafka_event_config_string(rd_kafka_event_t *rkev);
rd_kafka_resp_err_t rd_kafka_event_error(rd_kafka_event_t *rkev);
const char *rd_kafka_event_error_string(rd_kafka_event_t *rkev);
int rd_kafka_event_error_is_fatal(rd_kafka_event_t *rkev);
void *rd_kafka_event_opaque(rd_kafka_event_t *rkev);
int rd_kafka_event_log(rd_kafka_event_t *rkev, const char **fac, const char **str, int *level);
int rd_kafka_event_debug_contexts(rd_kafka_event_t *rkev, char *dst, size_t dstsize);
const char *rd_kafka_event_stats(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_list_t *rd_kafka_event_topic_partition_list(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_t *rd_kafka_event_topic_partition(rd_kafka_event_t *rkev);
typedef rd_kafka_event_t rd_kafka_CreateTopics_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteTopics_result_t;
typedef rd_kafka_event_t rd_kafka_CreateAcls_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeAcls_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteAcls_result_t;
typedef rd_kafka_event_t rd_kafka_CreatePartitions_result_t;
typedef rd_kafka_event_t rd_kafka_AlterConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteRecords_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteGroups_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteConsumerGroupOffsets_result_t;
const rd_kafka_CreateTopics_result_t *rd_kafka_event_CreateTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteTopics_result_t *rd_kafka_event_DeleteTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_CreatePartitions_result_t *rd_kafka_event_CreatePartitions_result(rd_kafka_event_t *rkev);
const rd_kafka_AlterConfigs_result_t *rd_kafka_event_AlterConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeConfigs_result_t *rd_kafka_event_DescribeConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteRecords_result_t *rd_kafka_event_DeleteRecords_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteGroups_result_t *rd_kafka_event_DeleteGroups_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteConsumerGroupOffsets_result_t *rd_kafka_event_DeleteConsumerGroupOffsets_result(rd_kafka_event_t *rkev);
const rd_kafka_CreateAcls_result_t *rd_kafka_event_CreateAcls_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeAcls_result_t *rd_kafka_event_DescribeAcls_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteAcls_result_t *rd_kafka_event_DeleteAcls_result(rd_kafka_event_t *rkev);
rd_kafka_event_t *rd_kafka_queue_poll(rd_kafka_queue_t *rkqu, int timeout_ms);
int rd_kafka_queue_poll_callback(rd_kafka_queue_t *rkqu, int timeout_ms);
typedef rd_kafka_resp_err_t (rd_kafka_plugin_f_conf_init_t)(rd_kafka_conf_t *conf, void **plug_opaquep, char *errstr, size_t errstr_size);
typedef rd_kafka_conf_res_t (rd_kafka_interceptor_f_on_conf_set_t)(rd_kafka_conf_t *conf, const char *name, const char *val, char *errstr, size_t errstr_size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_dup_t)(rd_kafka_conf_t *new_conf, const rd_kafka_conf_t *old_conf, size_t filter_cnt, const char **filter, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_destroy_t)(void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_new_t)(rd_kafka_t *rk, const rd_kafka_conf_t *conf, void *ic_opaque, char *errstr, size_t errstr_size);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_destroy_t)(rd_kafka_t *rk, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_send_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_acknowledgement_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_consume_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_commit_t)(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_request_sent_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_response_received_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, int64_t rtt, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_start_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_exit_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_set(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_set_t *on_conf_set, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_dup(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_dup_t *on_conf_dup, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_destroy(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_destroy_t *on_conf_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_new(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_new_t *on_new, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_destroy(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_destroy_t *on_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_send(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_send_t *on_send, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_acknowledgement(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_acknowledgement_t *on_acknowledgement, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_consume(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_consume_t *on_consume, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_commit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_commit_t *on_commit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_request_sent(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_request_sent_t *on_request_sent, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_response_received(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_response_received_t *on_response_received, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_start(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_start_t *on_thread_start, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_exit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_exit_t *on_thread_exit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_topic_result_error(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_error_string(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_name(const rd_kafka_topic_result_t *topicres);
const rd_kafka_error_t *rd_kafka_group_result_error(const rd_kafka_group_result_t *groupres);
const char *rd_kafka_group_result_name(const rd_kafka_group_result_t *groupres);
const rd_kafka_topic_partition_list_t *rd_kafka_group_result_partitions(const rd_kafka_group_result_t *groupres);
typedef enum rd_kafka_admin_op_t {
  RD_KAFKA_ADMIN_OP_ANY = 0,
  RD_KAFKA_ADMIN_OP_CREATETOPICS,
  RD_KAFKA_ADMIN_OP_DELETETOPICS,
  RD_KAFKA_ADMIN_OP_CREATEPARTITIONS,
  RD_KAFKA_ADMIN_OP_ALTERCONFIGS,
  RD_KAFKA_ADMIN_OP_DESCRIBECONFIGS,
  RD_KAFKA_ADMIN_OP_DELETERECORDS,
  RD_KAFKA_ADMIN_OP_DELETEGROUPS,
  RD_KAFKA_ADMIN_OP_DELETECONSUMERGROUPOFFSETS,
  RD_KAFKA_ADMIN_OP_CREATEACLS,
  RD_KAFKA_ADMIN_OP_DESCRIBEACLS,
  RD_KAFKA_ADMIN_OP_DELETEACLS,
  RD_KAFKA_ADMIN_OP__CNT,
} rd_kafka_admin_op_t;
typedef struct rd_kafka_AdminOptions_s rd_kafka_AdminOptions_t;
rd_kafka_AdminOptions_t *rd_kafka_AdminOptions_new(rd_kafka_t *rk, rd_kafka_admin_op_t for_api);
void rd_kafka_AdminOptions_destroy(rd_kafka_AdminOptions_t *options);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_request_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_operation_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_validate_only(rd_kafka_AdminOptions_t *options, int true_or_false, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_broker(rd_kafka_AdminOptions_t *options, int32_t broker_id, char *errstr, size_t errstr_size);
void rd_kafka_AdminOptions_set_opaque(rd_kafka_AdminOptions_t *options, void *ev_opaque);
typedef struct rd_kafka_NewTopic_s rd_kafka_NewTopic_t;
rd_kafka_NewTopic_t *rd_kafka_NewTopic_new(const char *topic, int num_partitions, int replication_factor, char *errstr, size_t errstr_size);
void rd_kafka_NewTopic_destroy(rd_kafka_NewTopic_t *new_topic);
void rd_kafka_NewTopic_destroy_array(rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_replica_assignment(rd_kafka_NewTopic_t *new_topic, int32_t partition, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_config(rd_kafka_NewTopic_t *new_topic, const char *name, const char *value);
void rd_kafka_CreateTopics(rd_kafka_t *rk, rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreateTopics_result_topics(const rd_kafka_CreateTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteTopic_s rd_kafka_DeleteTopic_t;
rd_kafka_DeleteTopic_t *rd_kafka_DeleteTopic_new(const char *topic);
void rd_kafka_DeleteTopic_destroy(rd_kafka_DeleteTopic_t *del_topic);
void rd_kafka_DeleteTopic_destroy_array(rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt);
void rd_kafka_DeleteTopics(rd_kafka_t *rk, rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_DeleteTopics_result_topics(const rd_kafka_DeleteTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_NewPartitions_s rd_kafka_NewPartitions_t;
rd_kafka_NewPartitions_t *rd_kafka_NewPartitions_new(const char *topic, size_t new_total_cnt, char *errstr, size_t errstr_size);
void rd_kafka_NewPartitions_destroy(rd_kafka_NewPartitions_t *new_parts);
void rd_kafka_NewPartitions_destroy_array(rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt);
rd_kafka_resp_err_t rd_kafka_NewPartitions_set_replica_assignment(rd_kafka_NewPartitions_t *new_parts, int32_t new_partition_idx, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
void rd_kafka_CreatePartitions(rd_kafka_t *rk, rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreatePartitions_result_topics(const rd_kafka_CreatePartitions_result_t *result, size_t *cntp);
typedef enum rd_kafka_ConfigSource_t {
  RD_KAFKA_CONFIG_SOURCE_UNKNOWN_CONFIG = 0,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG = 1,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG = 2,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG = 3,
  RD_KAFKA_CONFIG_SOURCE_STATIC_BROKER_CONFIG = 4,
  RD_KAFKA_CONFIG_SOURCE_DEFAULT_CONFIG = 5,
  RD_KAFKA_CONFIG_SOURCE__CNT,
} rd_kafka_ConfigSource_t;
const char *rd_kafka_ConfigSource_name(rd_kafka_ConfigSource_t confsource);
typedef struct rd_kafka_ConfigEntry_s rd_kafka_ConfigEntry_t;
const char *rd_kafka_ConfigEntry_name(const rd_kafka_ConfigEntry_t *entry);
const char *rd_kafka_ConfigEntry_value(const rd_kafka_ConfigEntry_t *entry);
rd_kafka_ConfigSource_t rd_kafka_ConfigEntry_source(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_read_only(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_default(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_sensitive(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_synonym(const rd_kafka_ConfigEntry_t *entry);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigEntry_synonyms(const rd_kafka_ConfigEntry_t *entry, size_t *cntp);
typedef enum rd_kafka_ResourceType_t {
  RD_KAFKA_RESOURCE_UNKNOWN = 0,
  RD_KAFKA_RESOURCE_ANY = 1,
  RD_KAFKA_RESOURCE_TOPIC = 2,
  RD_KAFKA_RESOURCE_GROUP = 3,
  RD_KAFKA_RESOURCE_BROKER = 4,
  RD_KAFKA_RESOURCE__CNT,
} rd_kafka_ResourceType_t;
typedef enum rd_kafka_ResourcePatternType_t {
  RD_KAFKA_RESOURCE_PATTERN_UNKNOWN = 0,
  RD_KAFKA_RESOURCE_PATTERN_ANY = 1,
  RD_KAFKA_RESOURCE_PATTERN_MATCH = 2,
  RD_KAFKA_RESOURCE_PATTERN_LITERAL = 3,
  RD_KAFKA_RESOURCE_PATTERN_PREFIXED = 4,
  RD_KAFKA_RESOURCE_PATTERN_TYPE__CNT,
} rd_kafka_ResourcePatternType_t;
const char *rd_kafka_ResourcePatternType_name(rd_kafka_ResourcePatternType_t resource_pattern_type);
const char *rd_kafka_ResourceType_name(rd_kafka_ResourceType_t restype);
typedef struct rd_kafka_ConfigResource_s rd_kafka_ConfigResource_t;
rd_kafka_ConfigResource_t *rd_kafka_ConfigResource_new(rd_kafka_ResourceType_t restype, const char *resname);
void rd_kafka_ConfigResource_destroy(rd_kafka_ConfigResource_t *config);
void rd_kafka_ConfigResource_destroy_array(rd_kafka_ConfigResource_t **config, size_t config_cnt);
rd_kafka_resp_err_t rd_kafka_ConfigResource_set_config(rd_kafka_ConfigResource_t *config, const char *name, const char *value);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigResource_configs(const rd_kafka_ConfigResource_t *config, size_t *cntp);
rd_kafka_ResourceType_t rd_kafka_ConfigResource_type(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_name(const rd_kafka_ConfigResource_t *config);
rd_kafka_resp_err_t rd_kafka_ConfigResource_error(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_error_string(const rd_kafka_ConfigResource_t *config);
void rd_kafka_AlterConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_AlterConfigs_result_resources(const rd_kafka_AlterConfigs_result_t *result, size_t *cntp);
void rd_kafka_DescribeConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_DescribeConfigs_result_resources(const rd_kafka_DescribeConfigs_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteRecords_s rd_kafka_DeleteRecords_t;
rd_kafka_DeleteRecords_t *rd_kafka_DeleteRecords_new(const rd_kafka_topic_partition_list_t *before_offsets);
void rd_kafka_DeleteRecords_destroy(rd_kafka_DeleteRecords_t *del_records);
void rd_kafka_DeleteRecords_destroy_array(rd_kafka_DeleteRecords_t **del_records, size_t del_record_cnt);
void rd_kafka_DeleteRecords(rd_kafka_t *rk, rd_kafka_DeleteRecords_t **del_records, size_t del_record_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_partition_list_t *rd_kafka_DeleteRecords_result_offsets(const rd_kafka_DeleteRecords_result_t *result);
typedef struct rd_kafka_DeleteGroup_s rd_kafka_DeleteGroup_t;
rd_kafka_DeleteGroup_t *rd_kafka_DeleteGroup_new(const char *group);
void rd_kafka_DeleteGroup_destroy(rd_kafka_DeleteGroup_t *del_group);
void rd_kafka_DeleteGroup_destroy_array(rd_kafka_DeleteGroup_t **del_groups, size_t del_group_cnt);
void rd_kafka_DeleteGroups(rd_kafka_t *rk, rd_kafka_DeleteGroup_t **del_groups, size_t del_group_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_DeleteGroups_result_groups(const rd_kafka_DeleteGroups_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteConsumerGroupOffsets_s rd_kafka_DeleteConsumerGroupOffsets_t;
rd_kafka_DeleteConsumerGroupOffsets_t *rd_kafka_DeleteConsumerGroupOffsets_new(const char *group, const rd_kafka_topic_partition_list_t *partitions);
void rd_kafka_DeleteConsumerGroupOffsets_destroy(rd_kafka_DeleteConsumerGroupOffsets_t *del_grpoffsets);
void rd_kafka_DeleteConsumerGroupOffsets_destroy_array(rd_kafka_DeleteConsumerGroupOffsets_t **del_grpoffsets, size_t del_grpoffset_cnt);
void rd_kafka_DeleteConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_DeleteConsumerGroupOffsets_t **del_grpoffsets, size_t del_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_DeleteConsumerGroupOffsets_result_groups(const rd_kafka_DeleteConsumerGroupOffsets_result_t *result, size_t *cntp);
typedef struct rd_kafka_AclBinding_s rd_kafka_AclBinding_t;
typedef rd_kafka_AclBinding_t rd_kafka_AclBindingFilter_t;
const rd_kafka_error_t *rd_kafka_acl_result_error(const rd_kafka_acl_result_t *aclres);
typedef enum rd_kafka_AclOperation_t {
  RD_KAFKA_ACL_OPERATION_UNKNOWN = 0,
  RD_KAFKA_ACL_OPERATION_ANY = 1,
  RD_KAFKA_ACL_OPERATION_ALL = 2,
  RD_KAFKA_ACL_OPERATION_READ = 3,
  RD_KAFKA_ACL_OPERATION_WRITE = 4,
  RD_KAFKA_ACL_OPERATION_CREATE = 5,
  RD_KAFKA_ACL_OPERATION_DELETE = 6,
  RD_KAFKA_ACL_OPERATION_ALTER = 7,
  RD_KAFKA_ACL_OPERATION_DESCRIBE = 8,
  RD_KAFKA_ACL_OPERATION_CLUSTER_ACTION = 9,
  RD_KAFKA_ACL_OPERATION_DESCRIBE_CONFIGS = 10,
  RD_KAFKA_ACL_OPERATION_ALTER_CONFIGS = 11,
  RD_KAFKA_ACL_OPERATION_IDEMPOTENT_WRITE = 12,
  RD_KAFKA_ACL_OPERATION__CNT,
} rd_kafka_AclOperation_t;
const char *rd_kafka_AclOperation_name(rd_kafka_AclOperation_t acl_operation);
typedef enum rd_kafka_AclPermissionType_t {
  RD_KAFKA_ACL_PERMISSION_TYPE_UNKNOWN = 0,
  RD_KAFKA_ACL_PERMISSION_TYPE_ANY = 1,
  RD_KAFKA_ACL_PERMISSION_TYPE_DENY = 2,
  RD_KAFKA_ACL_PERMISSION_TYPE_ALLOW = 3,
  RD_KAFKA_ACL_PERMISSION_TYPE__CNT,
} rd_kafka_AclPermissionType_t;
const char *rd_kafka_AclPermissionType_name(rd_kafka_AclPermissionType_t acl_permission_type);
rd_kafka_AclBinding_t *rd_kafka_AclBinding_new(rd_kafka_ResourceType_t restype, const char *name, rd_kafka_ResourcePatternType_t resource_pattern_type, const char *principal, const char *host, rd_kafka_AclOperation_t operation, rd_kafka_AclPermissionType_t permission_type, char *errstr, size_t errstr_size);
rd_kafka_AclBindingFilter_t *rd_kafka_AclBindingFilter_new(rd_kafka_ResourceType_t restype, const char *name, rd_kafka_ResourcePatternType_t resource_pattern_type, const char *principal, const char *host, rd_kafka_AclOperation_t operation, rd_kafka_AclPermissionType_t permission_type, char *errstr, size_t errstr_size);
rd_kafka_ResourceType_t rd_kafka_AclBinding_restype(const rd_kafka_AclBinding_t *acl);
const char *rd_kafka_AclBinding_name(const rd_kafka_AclBinding_t *acl);
const char *rd_kafka_AclBinding_principal(const rd_kafka_AclBinding_t *acl);
const char *rd_kafka_AclBinding_host(const rd_kafka_AclBinding_t *acl);
rd_kafka_AclOperation_t rd_kafka_AclBinding_operation(const rd_kafka_AclBinding_t *acl);
rd_kafka_AclPermissionType_t rd_kafka_AclBinding_permission_type(const rd_kafka_AclBinding_t *acl);
rd_kafka_ResourcePatternType_t rd_kafka_AclBinding_resource_pattern_type(const rd_kafka_AclBinding_t *acl);
const rd_kafka_error_t *rd_kafka_AclBinding_error(const rd_kafka_AclBinding_t *acl);
void rd_kafka_AclBinding_destroy(rd_kafka_AclBinding_t *acl_binding);
void rd_kafka_AclBinding_destroy_array(rd_kafka_AclBinding_t **acl_bindings, size_t acl_bindings_cnt);
const rd_kafka_acl_result_t **rd_kafka_CreateAcls_result_acls(const rd_kafka_CreateAcls_result_t *result, size_t *cntp);
void rd_kafka_CreateAcls(rd_kafka_t *rk, rd_kafka_AclBinding_t **new_acls, size_t new_acls_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_AclBinding_t **rd_kafka_DescribeAcls_result_acls(const rd_kafka_DescribeAcls_result_t *result, size_t *cntp);
void rd_kafka_DescribeAcls(rd_kafka_t *rk, rd_kafka_AclBindingFilter_t *acl_filter, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
typedef struct rd_kafka_DeleteAcls_result_response_s rd_kafka_DeleteAcls_result_response_t;
const rd_kafka_DeleteAcls_result_response_t **rd_kafka_DeleteAcls_result_responses(const rd_kafka_DeleteAcls_result_t *result, size_t *cntp);
const rd_kafka_error_t *rd_kafka_DeleteAcls_result_response_error(const rd_kafka_DeleteAcls_result_response_t *result_response);
const rd_kafka_AclBinding_t **rd_kafka_DeleteAcls_result_response_matching_acls(const rd_kafka_DeleteAcls_result_response_t *result_response, size_t *matching_acls_cntp);
void rd_kafka_DeleteAcls(rd_kafka_t *rk, rd_kafka_AclBindingFilter_t **del_acls, size_t del_acls_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token(rd_kafka_t *rk, const char *token_value, int64_t md_lifetime_ms, const char *md_principal_name, const char **extensions, size_t extension_size, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token_failure(rd_kafka_t *rk, const char *errstr);
rd_kafka_error_t *rd_kafka_init_transactions(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_begin_transaction(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_send_offsets_to_transaction(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, const rd_kafka_consumer_group_metadata_t *cgmetadata, int timeout_ms);
rd_kafka_error_t *rd_kafka_commit_transaction(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_abort_transaction(rd_kafka_t *rk, int timeout_ms);
typedef struct rd_kafka_mock_cluster_s rd_kafka_mock_cluster_t;
rd_kafka_mock_cluster_t *rd_kafka_mock_cluster_new(rd_kafka_t *rk, int broker_cnt);
void rd_kafka_mock_cluster_destroy(rd_kafka_mock_cluster_t *mcluster);
rd_kafka_t *rd_kafka_mock_cluster_handle(const rd_kafka_mock_cluster_t *mcluster);
rd_kafka_mock_cluster_t *rd_kafka_handle_mock_cluster(const rd_kafka_t *rk);
const char *rd_kafka_mock_cluster_bootstraps(const rd_kafka_mock_cluster_t *mcluster);
void rd_kafka_mock_clear_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey);
void rd_kafka_mock_push_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, ...);
void rd_kafka_mock_push_request_errors_array(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, const rd_kafka_resp_err_t *errors);
rd_kafka_resp_err_t rd_kafka_mock_broker_push_request_error_rtts(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int16_t ApiKey, size_t cnt, ...);
void rd_kafka_mock_topic_set_error(rd_kafka_mock_cluster_t *mcluster, const char *topic, rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_mock_topic_create(rd_kafka_mock_cluster_t *mcluster, const char *topic, int partition_cnt, int replication_factor);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_leader(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower_wmarks(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int64_t lo, int64_t hi);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_down(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_up(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rtt(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int rtt_ms);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rack(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, const char *rack);
rd_kafka_resp_err_t rd_kafka_mock_coordinator_set(rd_kafka_mock_cluster_t *mcluster, const char *key_type, const char *key, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_set_apiversion(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, int16_t MinVersion, int16_t MaxVersion);
'
rdkafka.h, rdkafka_mock.h

RD_KAFKA_VERSION

public RD_KAFKA_VERSION = 17367807

librdkafka version

Interpreted as hex MM.mm.rr.xx:

  • MM = Major
  • mm = minor
  • rr = revision
  • xx = pre-release id (0xff is the final release)

E.g.: 0x000801ff = 0.8.1

Remarks
This value should only be used during compile time, for runtime checks of version use rd_kafka_version()

RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE

public RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76

Unsupported compression type

RD_KAFKA_RESP_ERR_END_ALL

public RD_KAFKA_RESP_ERR_END_ALL = 98
enum rd_kafka_resp_err_t

RD_KAFKA_ADMIN_OP__CNT

public RD_KAFKA_ADMIN_OP__CNT = 12

Number of ops defined

RD_KAFKA_CDEF

public RD_KAFKA_CDEF = 'typedef long int ssize_t;
typedef struct _IO_FILE FILE;
typedef long int mode_t;
typedef signed int int16_t;
typedef unsigned int uint16_t;
typedef signed int int32_t;
typedef signed long int int64_t;
int rd_kafka_version(void);
const char *rd_kafka_version_str(void);
typedef enum rd_kafka_type_t {
  RD_KAFKA_PRODUCER,
  RD_KAFKA_CONSUMER,
} rd_kafka_type_t;
typedef enum rd_kafka_timestamp_type_t {
  RD_KAFKA_TIMESTAMP_NOT_AVAILABLE,
  RD_KAFKA_TIMESTAMP_CREATE_TIME,
  RD_KAFKA_TIMESTAMP_LOG_APPEND_TIME,
} rd_kafka_timestamp_type_t;
const char *rd_kafka_get_debug_contexts(void);
typedef struct rd_kafka_s rd_kafka_t;
typedef struct rd_kafka_topic_s rd_kafka_topic_t;
typedef struct rd_kafka_conf_s rd_kafka_conf_t;
typedef struct rd_kafka_topic_conf_s rd_kafka_topic_conf_t;
typedef struct rd_kafka_queue_s rd_kafka_queue_t;
typedef struct rd_kafka_op_s rd_kafka_event_t;
typedef struct rd_kafka_topic_result_s rd_kafka_topic_result_t;
typedef struct rd_kafka_consumer_group_metadata_s rd_kafka_consumer_group_metadata_t;
typedef struct rd_kafka_error_s {
  unsigned int code;
  char *errstr;
  unsigned char fatal;
  unsigned char retriable;
  unsigned char txn_requires_abort;
} rd_kafka_error_t;
typedef struct rd_kafka_headers_s rd_kafka_headers_t;
typedef struct rd_kafka_group_result_s rd_kafka_group_result_t;
typedef struct rd_kafka_acl_result_s rd_kafka_acl_result_t;
typedef enum {
  RD_KAFKA_RESP_ERR__BEGIN = (- 200),
  RD_KAFKA_RESP_ERR__BAD_MSG = (- 199),
  RD_KAFKA_RESP_ERR__BAD_COMPRESSION = (- 198),
  RD_KAFKA_RESP_ERR__DESTROY = (- 197),
  RD_KAFKA_RESP_ERR__FAIL = (- 196),
  RD_KAFKA_RESP_ERR__TRANSPORT = (- 195),
  RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE = (- 194),
  RD_KAFKA_RESP_ERR__RESOLVE = (- 193),
  RD_KAFKA_RESP_ERR__MSG_TIMED_OUT = (- 192),
  RD_KAFKA_RESP_ERR__PARTITION_EOF = (- 191),
  RD_KAFKA_RESP_ERR__UNKNOWN_PARTITION = (- 190),
  RD_KAFKA_RESP_ERR__FS = (- 189),
  RD_KAFKA_RESP_ERR__UNKNOWN_TOPIC = (- 188),
  RD_KAFKA_RESP_ERR__ALL_BROKERS_DOWN = (- 187),
  RD_KAFKA_RESP_ERR__INVALID_ARG = (- 186),
  RD_KAFKA_RESP_ERR__TIMED_OUT = (- 185),
  RD_KAFKA_RESP_ERR__QUEUE_FULL = (- 184),
  RD_KAFKA_RESP_ERR__ISR_INSUFF = (- 183),
  RD_KAFKA_RESP_ERR__NODE_UPDATE = (- 182),
  RD_KAFKA_RESP_ERR__SSL = (- 181),
  RD_KAFKA_RESP_ERR__WAIT_COORD = (- 180),
  RD_KAFKA_RESP_ERR__UNKNOWN_GROUP = (- 179),
  RD_KAFKA_RESP_ERR__IN_PROGRESS = (- 178),
  RD_KAFKA_RESP_ERR__PREV_IN_PROGRESS = (- 177),
  RD_KAFKA_RESP_ERR__EXISTING_SUBSCRIPTION = (- 176),
  RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS = (- 175),
  RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS = (- 174),
  RD_KAFKA_RESP_ERR__CONFLICT = (- 173),
  RD_KAFKA_RESP_ERR__STATE = (- 172),
  RD_KAFKA_RESP_ERR__UNKNOWN_PROTOCOL = (- 171),
  RD_KAFKA_RESP_ERR__NOT_IMPLEMENTED = (- 170),
  RD_KAFKA_RESP_ERR__AUTHENTICATION = (- 169),
  RD_KAFKA_RESP_ERR__NO_OFFSET = (- 168),
  RD_KAFKA_RESP_ERR__OUTDATED = (- 167),
  RD_KAFKA_RESP_ERR__TIMED_OUT_QUEUE = (- 166),
  RD_KAFKA_RESP_ERR__UNSUPPORTED_FEATURE = (- 165),
  RD_KAFKA_RESP_ERR__WAIT_CACHE = (- 164),
  RD_KAFKA_RESP_ERR__INTR = (- 163),
  RD_KAFKA_RESP_ERR__KEY_SERIALIZATION = (- 162),
  RD_KAFKA_RESP_ERR__VALUE_SERIALIZATION = (- 161),
  RD_KAFKA_RESP_ERR__KEY_DESERIALIZATION = (- 160),
  RD_KAFKA_RESP_ERR__VALUE_DESERIALIZATION = (- 159),
  RD_KAFKA_RESP_ERR__PARTIAL = (- 158),
  RD_KAFKA_RESP_ERR__READ_ONLY = (- 157),
  RD_KAFKA_RESP_ERR__NOENT = (- 156),
  RD_KAFKA_RESP_ERR__UNDERFLOW = (- 155),
  RD_KAFKA_RESP_ERR__INVALID_TYPE = (- 154),
  RD_KAFKA_RESP_ERR__RETRY = (- 153),
  RD_KAFKA_RESP_ERR__PURGE_QUEUE = (- 152),
  RD_KAFKA_RESP_ERR__PURGE_INFLIGHT = (- 151),
  RD_KAFKA_RESP_ERR__FATAL = (- 150),
  RD_KAFKA_RESP_ERR__INCONSISTENT = (- 149),
  RD_KAFKA_RESP_ERR__GAPLESS_GUARANTEE = (- 148),
  RD_KAFKA_RESP_ERR__MAX_POLL_EXCEEDED = (- 147),
  RD_KAFKA_RESP_ERR__UNKNOWN_BROKER = (- 146),
  RD_KAFKA_RESP_ERR__NOT_CONFIGURED = (- 145),
  RD_KAFKA_RESP_ERR__FENCED = (- 144),
  RD_KAFKA_RESP_ERR__APPLICATION = (- 143),
  RD_KAFKA_RESP_ERR__ASSIGNMENT_LOST = (- 142),
  RD_KAFKA_RESP_ERR__NOOP = (- 141),
  RD_KAFKA_RESP_ERR__AUTO_OFFSET_RESET = (- 140),
  RD_KAFKA_RESP_ERR__END = (- 100),
  RD_KAFKA_RESP_ERR_UNKNOWN = (- 1),
  RD_KAFKA_RESP_ERR_NO_ERROR = 0,
  RD_KAFKA_RESP_ERR_OFFSET_OUT_OF_RANGE = 1,
  RD_KAFKA_RESP_ERR_INVALID_MSG = 2,
  RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_OR_PART = 3,
  RD_KAFKA_RESP_ERR_INVALID_MSG_SIZE = 4,
  RD_KAFKA_RESP_ERR_LEADER_NOT_AVAILABLE = 5,
  RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION = 6,
  RD_KAFKA_RESP_ERR_REQUEST_TIMED_OUT = 7,
  RD_KAFKA_RESP_ERR_BROKER_NOT_AVAILABLE = 8,
  RD_KAFKA_RESP_ERR_REPLICA_NOT_AVAILABLE = 9,
  RD_KAFKA_RESP_ERR_MSG_SIZE_TOO_LARGE = 10,
  RD_KAFKA_RESP_ERR_STALE_CTRL_EPOCH = 11,
  RD_KAFKA_RESP_ERR_OFFSET_METADATA_TOO_LARGE = 12,
  RD_KAFKA_RESP_ERR_NETWORK_EXCEPTION = 13,
  RD_KAFKA_RESP_ERR_COORDINATOR_LOAD_IN_PROGRESS = 14,
  RD_KAFKA_RESP_ERR_COORDINATOR_NOT_AVAILABLE = 15,
  RD_KAFKA_RESP_ERR_NOT_COORDINATOR = 16,
  RD_KAFKA_RESP_ERR_TOPIC_EXCEPTION = 17,
  RD_KAFKA_RESP_ERR_RECORD_LIST_TOO_LARGE = 18,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS = 19,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS_AFTER_APPEND = 20,
  RD_KAFKA_RESP_ERR_INVALID_REQUIRED_ACKS = 21,
  RD_KAFKA_RESP_ERR_ILLEGAL_GENERATION = 22,
  RD_KAFKA_RESP_ERR_INCONSISTENT_GROUP_PROTOCOL = 23,
  RD_KAFKA_RESP_ERR_INVALID_GROUP_ID = 24,
  RD_KAFKA_RESP_ERR_UNKNOWN_MEMBER_ID = 25,
  RD_KAFKA_RESP_ERR_INVALID_SESSION_TIMEOUT = 26,
  RD_KAFKA_RESP_ERR_REBALANCE_IN_PROGRESS = 27,
  RD_KAFKA_RESP_ERR_INVALID_COMMIT_OFFSET_SIZE = 28,
  RD_KAFKA_RESP_ERR_TOPIC_AUTHORIZATION_FAILED = 29,
  RD_KAFKA_RESP_ERR_GROUP_AUTHORIZATION_FAILED = 30,
  RD_KAFKA_RESP_ERR_CLUSTER_AUTHORIZATION_FAILED = 31,
  RD_KAFKA_RESP_ERR_INVALID_TIMESTAMP = 32,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_SASL_MECHANISM = 33,
  RD_KAFKA_RESP_ERR_ILLEGAL_SASL_STATE = 34,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_VERSION = 35,
  RD_KAFKA_RESP_ERR_TOPIC_ALREADY_EXISTS = 36,
  RD_KAFKA_RESP_ERR_INVALID_PARTITIONS = 37,
  RD_KAFKA_RESP_ERR_INVALID_REPLICATION_FACTOR = 38,
  RD_KAFKA_RESP_ERR_INVALID_REPLICA_ASSIGNMENT = 39,
  RD_KAFKA_RESP_ERR_INVALID_CONFIG = 40,
  RD_KAFKA_RESP_ERR_NOT_CONTROLLER = 41,
  RD_KAFKA_RESP_ERR_INVALID_REQUEST = 42,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_FOR_MESSAGE_FORMAT = 43,
  RD_KAFKA_RESP_ERR_POLICY_VIOLATION = 44,
  RD_KAFKA_RESP_ERR_OUT_OF_ORDER_SEQUENCE_NUMBER = 45,
  RD_KAFKA_RESP_ERR_DUPLICATE_SEQUENCE_NUMBER = 46,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_EPOCH = 47,
  RD_KAFKA_RESP_ERR_INVALID_TXN_STATE = 48,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_ID_MAPPING = 49,
  RD_KAFKA_RESP_ERR_INVALID_TRANSACTION_TIMEOUT = 50,
  RD_KAFKA_RESP_ERR_CONCURRENT_TRANSACTIONS = 51,
  RD_KAFKA_RESP_ERR_TRANSACTION_COORDINATOR_FENCED = 52,
  RD_KAFKA_RESP_ERR_TRANSACTIONAL_ID_AUTHORIZATION_FAILED = 53,
  RD_KAFKA_RESP_ERR_SECURITY_DISABLED = 54,
  RD_KAFKA_RESP_ERR_OPERATION_NOT_ATTEMPTED = 55,
  RD_KAFKA_RESP_ERR_KAFKA_STORAGE_ERROR = 56,
  RD_KAFKA_RESP_ERR_LOG_DIR_NOT_FOUND = 57,
  RD_KAFKA_RESP_ERR_SASL_AUTHENTICATION_FAILED = 58,
  RD_KAFKA_RESP_ERR_UNKNOWN_PRODUCER_ID = 59,
  RD_KAFKA_RESP_ERR_REASSIGNMENT_IN_PROGRESS = 60,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTH_DISABLED = 61,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_NOT_FOUND = 62,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_OWNER_MISMATCH = 63,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_REQUEST_NOT_ALLOWED = 64,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTHORIZATION_FAILED = 65,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_EXPIRED = 66,
  RD_KAFKA_RESP_ERR_INVALID_PRINCIPAL_TYPE = 67,
  RD_KAFKA_RESP_ERR_NON_EMPTY_GROUP = 68,
  RD_KAFKA_RESP_ERR_GROUP_ID_NOT_FOUND = 69,
  RD_KAFKA_RESP_ERR_FETCH_SESSION_ID_NOT_FOUND = 70,
  RD_KAFKA_RESP_ERR_INVALID_FETCH_SESSION_EPOCH = 71,
  RD_KAFKA_RESP_ERR_LISTENER_NOT_FOUND = 72,
  RD_KAFKA_RESP_ERR_TOPIC_DELETION_DISABLED = 73,
  RD_KAFKA_RESP_ERR_FENCED_LEADER_EPOCH = 74,
  RD_KAFKA_RESP_ERR_UNKNOWN_LEADER_EPOCH = 75,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76,
  RD_KAFKA_RESP_ERR_STALE_BROKER_EPOCH = 77,
  RD_KAFKA_RESP_ERR_OFFSET_NOT_AVAILABLE = 78,
  RD_KAFKA_RESP_ERR_MEMBER_ID_REQUIRED = 79,
  RD_KAFKA_RESP_ERR_PREFERRED_LEADER_NOT_AVAILABLE = 80,
  RD_KAFKA_RESP_ERR_GROUP_MAX_SIZE_REACHED = 81,
  RD_KAFKA_RESP_ERR_FENCED_INSTANCE_ID = 82,
  RD_KAFKA_RESP_ERR_ELIGIBLE_LEADERS_NOT_AVAILABLE = 83,
  RD_KAFKA_RESP_ERR_ELECTION_NOT_NEEDED = 84,
  RD_KAFKA_RESP_ERR_NO_REASSIGNMENT_IN_PROGRESS = 85,
  RD_KAFKA_RESP_ERR_GROUP_SUBSCRIBED_TO_TOPIC = 86,
  RD_KAFKA_RESP_ERR_INVALID_RECORD = 87,
  RD_KAFKA_RESP_ERR_UNSTABLE_OFFSET_COMMIT = 88,
  RD_KAFKA_RESP_ERR_THROTTLING_QUOTA_EXCEEDED = 89,
  RD_KAFKA_RESP_ERR_PRODUCER_FENCED = 90,
  RD_KAFKA_RESP_ERR_RESOURCE_NOT_FOUND = 91,
  RD_KAFKA_RESP_ERR_DUPLICATE_RESOURCE = 92,
  RD_KAFKA_RESP_ERR_UNACCEPTABLE_CREDENTIAL = 93,
  RD_KAFKA_RESP_ERR_INCONSISTENT_VOTER_SET = 94,
  RD_KAFKA_RESP_ERR_INVALID_UPDATE_VERSION = 95,
  RD_KAFKA_RESP_ERR_FEATURE_UPDATE_FAILED = 96,
  RD_KAFKA_RESP_ERR_PRINCIPAL_DESERIALIZATION_FAILURE = 97,
  RD_KAFKA_RESP_ERR_END_ALL,
} rd_kafka_resp_err_t;
struct rd_kafka_err_desc {
  rd_kafka_resp_err_t code;
  char *name;
  char *desc;
};
void rd_kafka_get_err_descs(const struct rd_kafka_err_desc **errdescs, size_t *cntp);
const char *rd_kafka_err2str(rd_kafka_resp_err_t err);
const char *rd_kafka_err2name(rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_last_error(void);
rd_kafka_resp_err_t rd_kafka_errno2err(int errnox);
int rd_kafka_errno(void);
rd_kafka_resp_err_t rd_kafka_fatal_error(rd_kafka_t *rk, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_test_fatal_error(rd_kafka_t *rk, rd_kafka_resp_err_t err, const char *reason);
rd_kafka_resp_err_t rd_kafka_error_code(const rd_kafka_error_t *error);
const char *rd_kafka_error_name(const rd_kafka_error_t *error);
const char *rd_kafka_error_string(const rd_kafka_error_t *error);
int rd_kafka_error_is_fatal(const rd_kafka_error_t *error);
int rd_kafka_error_is_retriable(const rd_kafka_error_t *error);
int rd_kafka_error_txn_requires_abort(const rd_kafka_error_t *error);
void rd_kafka_error_destroy(rd_kafka_error_t *error);
rd_kafka_error_t *rd_kafka_error_new(rd_kafka_resp_err_t code, const char *fmt, ...);
typedef struct rd_kafka_topic_partition_s {
  char *topic;
  int32_t partition;
  int64_t offset;
  void *metadata;
  size_t metadata_size;
  void *opaque;
  rd_kafka_resp_err_t err;
  void *_private;
} rd_kafka_topic_partition_t;
void rd_kafka_topic_partition_destroy(rd_kafka_topic_partition_t *rktpar);
typedef struct rd_kafka_topic_partition_list_s {
  int cnt;
  int size;
  rd_kafka_topic_partition_t *elems;
} rd_kafka_topic_partition_list_t;
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_new(int size);
void rd_kafka_topic_partition_list_destroy(rd_kafka_topic_partition_list_t *rkparlist);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_add(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_add_range(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t start, int32_t stop);
int rd_kafka_topic_partition_list_del(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
int rd_kafka_topic_partition_list_del_by_idx(rd_kafka_topic_partition_list_t *rktparlist, int idx);
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_copy(const rd_kafka_topic_partition_list_t *src);
rd_kafka_resp_err_t rd_kafka_topic_partition_list_set_offset(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition, int64_t offset);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_find(const rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_sort(rd_kafka_topic_partition_list_t *rktparlist, int (*cmp)(const void *a, const void *b, void *cmp_opaque), void *cmp_opaque);
typedef enum rd_kafka_vtype_t {
  RD_KAFKA_VTYPE_END,
  RD_KAFKA_VTYPE_TOPIC,
  RD_KAFKA_VTYPE_RKT,
  RD_KAFKA_VTYPE_PARTITION,
  RD_KAFKA_VTYPE_VALUE,
  RD_KAFKA_VTYPE_KEY,
  RD_KAFKA_VTYPE_OPAQUE,
  RD_KAFKA_VTYPE_MSGFLAGS,
  RD_KAFKA_VTYPE_TIMESTAMP,
  RD_KAFKA_VTYPE_HEADER,
  RD_KAFKA_VTYPE_HEADERS,
} rd_kafka_vtype_t;
typedef struct rd_kafka_vu_s {
  rd_kafka_vtype_t vtype;
  union {
    char *cstr;
    rd_kafka_topic_t *rkt;
    int i;
    int32_t i32;
    int64_t i64;
    struct {
      void *ptr;
      size_t size;
    } mem;
    struct {
      char *name;
      void *val;
      ssize_t size;
    } header;
    rd_kafka_headers_t *headers;
    void *ptr;
    char _pad[64];
  } u;
} rd_kafka_vu_t;
rd_kafka_headers_t *rd_kafka_headers_new(size_t initial_count);
void rd_kafka_headers_destroy(rd_kafka_headers_t *hdrs);
rd_kafka_headers_t *rd_kafka_headers_copy(const rd_kafka_headers_t *src);
rd_kafka_resp_err_t rd_kafka_header_add(rd_kafka_headers_t *hdrs, const char *name, ssize_t name_size, const void *value, ssize_t value_size);
rd_kafka_resp_err_t rd_kafka_header_remove(rd_kafka_headers_t *hdrs, const char *name);
rd_kafka_resp_err_t rd_kafka_header_get_last(const rd_kafka_headers_t *hdrs, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get(const rd_kafka_headers_t *hdrs, size_t idx, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get_all(const rd_kafka_headers_t *hdrs, size_t idx, const char **namep, const void **valuep, size_t *sizep);
typedef struct rd_kafka_message_s {
  rd_kafka_resp_err_t err;
  rd_kafka_topic_t *rkt;
  int32_t partition;
  void *payload;
  size_t len;
  void *key;
  size_t key_len;
  int64_t offset;
  void *_private;
} rd_kafka_message_t;
void rd_kafka_message_destroy(rd_kafka_message_t *rkmessage);
const char *rd_kafka_message_errstr(const rd_kafka_message_t *rkmessage);
int64_t rd_kafka_message_timestamp(const rd_kafka_message_t *rkmessage, rd_kafka_timestamp_type_t *tstype);
int64_t rd_kafka_message_latency(const rd_kafka_message_t *rkmessage);
int32_t rd_kafka_message_broker_id(const rd_kafka_message_t *rkmessage);
rd_kafka_resp_err_t rd_kafka_message_headers(const rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
rd_kafka_resp_err_t rd_kafka_message_detach_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
void rd_kafka_message_set_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t *hdrs);
size_t rd_kafka_header_cnt(const rd_kafka_headers_t *hdrs);
typedef enum {
  RD_KAFKA_MSG_STATUS_NOT_PERSISTED = 0,
  RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED = 1,
  RD_KAFKA_MSG_STATUS_PERSISTED = 2,
} rd_kafka_msg_status_t;
rd_kafka_msg_status_t rd_kafka_message_status(const rd_kafka_message_t *rkmessage);
typedef enum {
  RD_KAFKA_CONF_UNKNOWN = (- 2),
  RD_KAFKA_CONF_INVALID = (- 1),
  RD_KAFKA_CONF_OK = 0,
} rd_kafka_conf_res_t;
rd_kafka_conf_t *rd_kafka_conf_new(void);
void rd_kafka_conf_destroy(rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup(const rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup_filter(const rd_kafka_conf_t *conf, size_t filter_cnt, const char **filter);
const rd_kafka_conf_t *rd_kafka_conf(rd_kafka_t *rk);
rd_kafka_conf_res_t rd_kafka_conf_set(rd_kafka_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_events(rd_kafka_conf_t *conf, int events);
void rd_kafka_conf_set_background_event_cb(rd_kafka_conf_t *conf, void (*event_cb)(rd_kafka_t *rk, rd_kafka_event_t *rkev, void *opaque));
void rd_kafka_conf_set_dr_cb(rd_kafka_conf_t *conf, void (*dr_cb)(rd_kafka_t *rk, void *payload, size_t len, rd_kafka_resp_err_t err, void *opaque, void *msg_opaque));
void rd_kafka_conf_set_dr_msg_cb(rd_kafka_conf_t *conf, void (*dr_msg_cb)(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_consume_cb(rd_kafka_conf_t *conf, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_rebalance_cb(rd_kafka_conf_t *conf, void (*rebalance_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *partitions, void *opaque));
void rd_kafka_conf_set_offset_commit_cb(rd_kafka_conf_t *conf, void (*offset_commit_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *opaque));
void rd_kafka_conf_set_error_cb(rd_kafka_conf_t *conf, void (*error_cb)(rd_kafka_t *rk, int err, const char *reason, void *opaque));
void rd_kafka_conf_set_throttle_cb(rd_kafka_conf_t *conf, void (*throttle_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int throttle_time_ms, void *opaque));
void rd_kafka_conf_set_log_cb(rd_kafka_conf_t *conf, void (*log_cb)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_conf_set_stats_cb(rd_kafka_conf_t *conf, int (*stats_cb)(rd_kafka_t *rk, char *json, size_t json_len, void *opaque));
void rd_kafka_conf_set_oauthbearer_token_refresh_cb(rd_kafka_conf_t *conf, void (*oauthbearer_token_refresh_cb)(rd_kafka_t *rk, const char *oauthbearer_config, void *opaque));
void rd_kafka_conf_enable_sasl_queue(rd_kafka_conf_t *conf, int enable);
void rd_kafka_conf_set_socket_cb(rd_kafka_conf_t *conf, int (*socket_cb)(int domain, int type, int protocol, void *opaque));
void rd_kafka_conf_set_connect_cb(rd_kafka_conf_t *conf, int (*connect_cb)(int sockfd, const struct sockaddr *addr, int addrlen, const char *id, void *opaque));
void rd_kafka_conf_set_closesocket_cb(rd_kafka_conf_t *conf, int (*closesocket_cb)(int sockfd, void *opaque));
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert_verify_cb(rd_kafka_conf_t *conf, int (*ssl_cert_verify_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int *x509_error, int depth, const char *buf, size_t size, char *errstr, size_t errstr_size, void *opaque));
typedef enum rd_kafka_cert_type_t {
  RD_KAFKA_CERT_PUBLIC_KEY,
  RD_KAFKA_CERT_PRIVATE_KEY,
  RD_KAFKA_CERT_CA,
  RD_KAFKA_CERT__CNT,
} rd_kafka_cert_type_t;
typedef enum rd_kafka_cert_enc_t {
  RD_KAFKA_CERT_ENC_PKCS12,
  RD_KAFKA_CERT_ENC_DER,
  RD_KAFKA_CERT_ENC_PEM,
  RD_KAFKA_CERT_ENC__CNT,
} rd_kafka_cert_enc_t;
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert(rd_kafka_conf_t *conf, rd_kafka_cert_type_t cert_type, rd_kafka_cert_enc_t cert_enc, const void *buffer, size_t size, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_engine_callback_data(rd_kafka_conf_t *conf, void *callback_data);
void rd_kafka_conf_set_opaque(rd_kafka_conf_t *conf, void *opaque);
void *rd_kafka_opaque(const rd_kafka_t *rk);
void rd_kafka_conf_set_default_topic_conf(rd_kafka_conf_t *conf, rd_kafka_topic_conf_t *tconf);
rd_kafka_topic_conf_t *rd_kafka_conf_get_default_topic_conf(rd_kafka_conf_t *conf);
rd_kafka_conf_res_t rd_kafka_conf_get(const rd_kafka_conf_t *conf, const char *name, char *dest, size_t *dest_size);
rd_kafka_conf_res_t rd_kafka_topic_conf_get(const rd_kafka_topic_conf_t *conf, const char *name, char *dest, size_t *dest_size);
const char **rd_kafka_conf_dump(rd_kafka_conf_t *conf, size_t *cntp);
const char **rd_kafka_topic_conf_dump(rd_kafka_topic_conf_t *conf, size_t *cntp);
void rd_kafka_conf_dump_free(const char **arr, size_t cnt);
void rd_kafka_conf_properties_show(FILE *fp);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_new(void);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_dup(const rd_kafka_topic_conf_t *conf);
rd_kafka_topic_conf_t *rd_kafka_default_topic_conf_dup(rd_kafka_t *rk);
void rd_kafka_topic_conf_destroy(rd_kafka_topic_conf_t *topic_conf);
rd_kafka_conf_res_t rd_kafka_topic_conf_set(rd_kafka_topic_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_topic_conf_set_opaque(rd_kafka_topic_conf_t *conf, void *rkt_opaque);
void rd_kafka_topic_conf_set_partitioner_cb(rd_kafka_topic_conf_t *topic_conf, int32_t (*partitioner)(const rd_kafka_topic_t *rkt, const void *keydata, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque));
void rd_kafka_topic_conf_set_msg_order_cmp(rd_kafka_topic_conf_t *topic_conf, int (*msg_order_cmp)(const rd_kafka_message_t *a, const rd_kafka_message_t *b));
int rd_kafka_topic_partition_available(const rd_kafka_topic_t *rkt, int32_t partition);
int32_t rd_kafka_msg_partitioner_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
rd_kafka_t *rd_kafka_new(rd_kafka_type_t type, rd_kafka_conf_t *conf, char *errstr, size_t errstr_size);
void rd_kafka_destroy(rd_kafka_t *rk);
void rd_kafka_destroy_flags(rd_kafka_t *rk, int flags);
const char *rd_kafka_name(const rd_kafka_t *rk);
rd_kafka_type_t rd_kafka_type(const rd_kafka_t *rk);
char *rd_kafka_memberid(const rd_kafka_t *rk);
char *rd_kafka_clusterid(rd_kafka_t *rk, int timeout_ms);
int32_t rd_kafka_controllerid(rd_kafka_t *rk, int timeout_ms);
rd_kafka_topic_t *rd_kafka_topic_new(rd_kafka_t *rk, const char *topic, rd_kafka_topic_conf_t *conf);
void rd_kafka_topic_destroy(rd_kafka_topic_t *rkt);
const char *rd_kafka_topic_name(const rd_kafka_topic_t *rkt);
void *rd_kafka_topic_opaque(const rd_kafka_topic_t *rkt);
int rd_kafka_poll(rd_kafka_t *rk, int timeout_ms);
void rd_kafka_yield(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_pause_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_resume_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_query_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_get_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high);
rd_kafka_resp_err_t rd_kafka_offsets_for_times(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets, int timeout_ms);
void *rd_kafka_mem_calloc(rd_kafka_t *rk, size_t num, size_t size);
void *rd_kafka_mem_malloc(rd_kafka_t *rk, size_t size);
void rd_kafka_mem_free(rd_kafka_t *rk, void *ptr);
rd_kafka_queue_t *rd_kafka_queue_new(rd_kafka_t *rk);
void rd_kafka_queue_destroy(rd_kafka_queue_t *rkqu);
rd_kafka_queue_t *rd_kafka_queue_get_main(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_sasl(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_sasl_background_callbacks_enable(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_consumer(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_partition(rd_kafka_t *rk, const char *topic, int32_t partition);
rd_kafka_queue_t *rd_kafka_queue_get_background(rd_kafka_t *rk);
void rd_kafka_queue_forward(rd_kafka_queue_t *src, rd_kafka_queue_t *dst);
rd_kafka_resp_err_t rd_kafka_set_log_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu);
size_t rd_kafka_queue_length(rd_kafka_queue_t *rkqu);
void rd_kafka_queue_io_event_enable(rd_kafka_queue_t *rkqu, int fd, const void *payload, size_t size);
void rd_kafka_queue_cb_event_enable(rd_kafka_queue_t *rkqu, void (*event_cb)(rd_kafka_t *rk, void *qev_opaque), void *qev_opaque);
void rd_kafka_queue_yield(rd_kafka_queue_t *rkqu);
int rd_kafka_consume_start(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
int rd_kafka_consume_start_queue(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, rd_kafka_queue_t *rkqu);
int rd_kafka_consume_stop(rd_kafka_topic_t *rkt, int32_t partition);
rd_kafka_resp_err_t rd_kafka_seek(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, int timeout_ms);
rd_kafka_error_t *rd_kafka_seek_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_message_t *rd_kafka_consume(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms);
ssize_t rd_kafka_consume_batch(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_message_t *rd_kafka_consume_queue(rd_kafka_queue_t *rkqu, int timeout_ms);
ssize_t rd_kafka_consume_batch_queue(rd_kafka_queue_t *rkqu, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback_queue(rd_kafka_queue_t *rkqu, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_offset_store(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
rd_kafka_resp_err_t rd_kafka_offsets_store(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets);
rd_kafka_resp_err_t rd_kafka_subscribe(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *topics);
rd_kafka_resp_err_t rd_kafka_unsubscribe(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_subscription(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **topics);
rd_kafka_message_t *rd_kafka_consumer_poll(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_consumer_close(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_consumer_close_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu);
int rd_kafka_consumer_closed(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_incremental_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_error_t *rd_kafka_incremental_unassign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
const char *rd_kafka_rebalance_protocol(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_assignment(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **partitions);
int rd_kafka_assignment_lost(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_commit(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, int async);
rd_kafka_resp_err_t rd_kafka_commit_message(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, int async);
rd_kafka_resp_err_t rd_kafka_commit_queue(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_queue_t *rkqu, void (*cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_committed(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_position(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata(rd_kafka_t *rk);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new(const char *group_id);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new_with_genid(const char *group_id, int32_t generation_id, const char *member_id, const char *group_instance_id);
void rd_kafka_consumer_group_metadata_destroy(rd_kafka_consumer_group_metadata_t *);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_write(const rd_kafka_consumer_group_metadata_t *cgmd, void **bufferp, size_t *sizep);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_read(rd_kafka_consumer_group_metadata_t **cgmdp, const void *buffer, size_t size);
int rd_kafka_produce(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, void *payload, size_t len, const void *key, size_t keylen, void *msg_opaque);
rd_kafka_resp_err_t rd_kafka_producev(rd_kafka_t *rk, ...);
rd_kafka_error_t *rd_kafka_produceva(rd_kafka_t *rk, const rd_kafka_vu_t *vus, size_t cnt);
int rd_kafka_produce_batch(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, rd_kafka_message_t *rkmessages, int message_cnt);
rd_kafka_resp_err_t rd_kafka_flush(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_purge(rd_kafka_t *rk, int purge_flags);
typedef struct rd_kafka_metadata_broker {
  int32_t id;
  char *host;
  int port;
} rd_kafka_metadata_broker_t;
typedef struct rd_kafka_metadata_partition {
  int32_t id;
  rd_kafka_resp_err_t err;
  int32_t leader;
  int replica_cnt;
  int32_t *replicas;
  int isr_cnt;
  int32_t *isrs;
} rd_kafka_metadata_partition_t;
typedef struct rd_kafka_metadata_topic {
  char *topic;
  int partition_cnt;
  struct rd_kafka_metadata_partition *partitions;
  rd_kafka_resp_err_t err;
} rd_kafka_metadata_topic_t;
typedef struct rd_kafka_metadata {
  int broker_cnt;
  struct rd_kafka_metadata_broker *brokers;
  int topic_cnt;
  struct rd_kafka_metadata_topic *topics;
  int32_t orig_broker_id;
  char *orig_broker_name;
} rd_kafka_metadata_t;
rd_kafka_resp_err_t rd_kafka_metadata(rd_kafka_t *rk, int all_topics, rd_kafka_topic_t *only_rkt, const struct rd_kafka_metadata **metadatap, int timeout_ms);
void rd_kafka_metadata_destroy(const struct rd_kafka_metadata *metadata);
struct rd_kafka_group_member_info {
  char *member_id;
  char *client_id;
  char *client_host;
  void *member_metadata;
  int member_metadata_size;
  void *member_assignment;
  int member_assignment_size;
};
struct rd_kafka_group_info {
  struct rd_kafka_metadata_broker broker;
  char *group;
  rd_kafka_resp_err_t err;
  char *state;
  char *protocol_type;
  char *protocol;
  struct rd_kafka_group_member_info *members;
  int member_cnt;
};
struct rd_kafka_group_list {
  struct rd_kafka_group_info *groups;
  int group_cnt;
};
rd_kafka_resp_err_t rd_kafka_list_groups(rd_kafka_t *rk, const char *group, const struct rd_kafka_group_list **grplistp, int timeout_ms);
void rd_kafka_group_list_destroy(const struct rd_kafka_group_list *grplist);
int rd_kafka_brokers_add(rd_kafka_t *rk, const char *brokerlist);
void rd_kafka_set_logger(rd_kafka_t *rk, void (*func)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_set_log_level(rd_kafka_t *rk, int level);
void rd_kafka_log_print(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
void rd_kafka_log_syslog(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
int rd_kafka_outq_len(rd_kafka_t *rk);
void rd_kafka_dump(FILE *fp, rd_kafka_t *rk);
int rd_kafka_thread_cnt(void);
typedef enum rd_kafka_thread_type_t {
  RD_KAFKA_THREAD_MAIN,
  RD_KAFKA_THREAD_BACKGROUND,
  RD_KAFKA_THREAD_BROKER,
} rd_kafka_thread_type_t;
int rd_kafka_wait_destroyed(int timeout_ms);
int rd_kafka_unittest(void);
rd_kafka_resp_err_t rd_kafka_poll_set_consumer(rd_kafka_t *rk);
typedef int rd_kafka_event_type_t;
rd_kafka_event_type_t rd_kafka_event_type(const rd_kafka_event_t *rkev);
const char *rd_kafka_event_name(const rd_kafka_event_t *rkev);
void rd_kafka_event_destroy(rd_kafka_event_t *rkev);
const rd_kafka_message_t *rd_kafka_event_message_next(rd_kafka_event_t *rkev);
size_t rd_kafka_event_message_array(rd_kafka_event_t *rkev, const rd_kafka_message_t **rkmessages, size_t size);
size_t rd_kafka_event_message_count(rd_kafka_event_t *rkev);
const char *rd_kafka_event_config_string(rd_kafka_event_t *rkev);
rd_kafka_resp_err_t rd_kafka_event_error(rd_kafka_event_t *rkev);
const char *rd_kafka_event_error_string(rd_kafka_event_t *rkev);
int rd_kafka_event_error_is_fatal(rd_kafka_event_t *rkev);
void *rd_kafka_event_opaque(rd_kafka_event_t *rkev);
int rd_kafka_event_log(rd_kafka_event_t *rkev, const char **fac, const char **str, int *level);
int rd_kafka_event_debug_contexts(rd_kafka_event_t *rkev, char *dst, size_t dstsize);
const char *rd_kafka_event_stats(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_list_t *rd_kafka_event_topic_partition_list(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_t *rd_kafka_event_topic_partition(rd_kafka_event_t *rkev);
typedef rd_kafka_event_t rd_kafka_CreateTopics_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteTopics_result_t;
typedef rd_kafka_event_t rd_kafka_CreateAcls_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeAcls_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteAcls_result_t;
typedef rd_kafka_event_t rd_kafka_CreatePartitions_result_t;
typedef rd_kafka_event_t rd_kafka_AlterConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteRecords_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteGroups_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteConsumerGroupOffsets_result_t;
const rd_kafka_CreateTopics_result_t *rd_kafka_event_CreateTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteTopics_result_t *rd_kafka_event_DeleteTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_CreatePartitions_result_t *rd_kafka_event_CreatePartitions_result(rd_kafka_event_t *rkev);
const rd_kafka_AlterConfigs_result_t *rd_kafka_event_AlterConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeConfigs_result_t *rd_kafka_event_DescribeConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteRecords_result_t *rd_kafka_event_DeleteRecords_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteGroups_result_t *rd_kafka_event_DeleteGroups_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteConsumerGroupOffsets_result_t *rd_kafka_event_DeleteConsumerGroupOffsets_result(rd_kafka_event_t *rkev);
const rd_kafka_CreateAcls_result_t *rd_kafka_event_CreateAcls_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeAcls_result_t *rd_kafka_event_DescribeAcls_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteAcls_result_t *rd_kafka_event_DeleteAcls_result(rd_kafka_event_t *rkev);
rd_kafka_event_t *rd_kafka_queue_poll(rd_kafka_queue_t *rkqu, int timeout_ms);
int rd_kafka_queue_poll_callback(rd_kafka_queue_t *rkqu, int timeout_ms);
typedef rd_kafka_resp_err_t (rd_kafka_plugin_f_conf_init_t)(rd_kafka_conf_t *conf, void **plug_opaquep, char *errstr, size_t errstr_size);
typedef rd_kafka_conf_res_t (rd_kafka_interceptor_f_on_conf_set_t)(rd_kafka_conf_t *conf, const char *name, const char *val, char *errstr, size_t errstr_size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_dup_t)(rd_kafka_conf_t *new_conf, const rd_kafka_conf_t *old_conf, size_t filter_cnt, const char **filter, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_destroy_t)(void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_new_t)(rd_kafka_t *rk, const rd_kafka_conf_t *conf, void *ic_opaque, char *errstr, size_t errstr_size);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_destroy_t)(rd_kafka_t *rk, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_send_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_acknowledgement_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_consume_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_commit_t)(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_request_sent_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_response_received_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, int64_t rtt, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_start_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_exit_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_set(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_set_t *on_conf_set, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_dup(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_dup_t *on_conf_dup, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_destroy(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_destroy_t *on_conf_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_new(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_new_t *on_new, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_destroy(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_destroy_t *on_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_send(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_send_t *on_send, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_acknowledgement(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_acknowledgement_t *on_acknowledgement, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_consume(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_consume_t *on_consume, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_commit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_commit_t *on_commit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_request_sent(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_request_sent_t *on_request_sent, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_response_received(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_response_received_t *on_response_received, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_start(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_start_t *on_thread_start, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_exit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_exit_t *on_thread_exit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_topic_result_error(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_error_string(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_name(const rd_kafka_topic_result_t *topicres);
const rd_kafka_error_t *rd_kafka_group_result_error(const rd_kafka_group_result_t *groupres);
const char *rd_kafka_group_result_name(const rd_kafka_group_result_t *groupres);
const rd_kafka_topic_partition_list_t *rd_kafka_group_result_partitions(const rd_kafka_group_result_t *groupres);
typedef enum rd_kafka_admin_op_t {
  RD_KAFKA_ADMIN_OP_ANY = 0,
  RD_KAFKA_ADMIN_OP_CREATETOPICS,
  RD_KAFKA_ADMIN_OP_DELETETOPICS,
  RD_KAFKA_ADMIN_OP_CREATEPARTITIONS,
  RD_KAFKA_ADMIN_OP_ALTERCONFIGS,
  RD_KAFKA_ADMIN_OP_DESCRIBECONFIGS,
  RD_KAFKA_ADMIN_OP_DELETERECORDS,
  RD_KAFKA_ADMIN_OP_DELETEGROUPS,
  RD_KAFKA_ADMIN_OP_DELETECONSUMERGROUPOFFSETS,
  RD_KAFKA_ADMIN_OP_CREATEACLS,
  RD_KAFKA_ADMIN_OP_DESCRIBEACLS,
  RD_KAFKA_ADMIN_OP_DELETEACLS,
  RD_KAFKA_ADMIN_OP__CNT,
} rd_kafka_admin_op_t;
typedef struct rd_kafka_AdminOptions_s rd_kafka_AdminOptions_t;
rd_kafka_AdminOptions_t *rd_kafka_AdminOptions_new(rd_kafka_t *rk, rd_kafka_admin_op_t for_api);
void rd_kafka_AdminOptions_destroy(rd_kafka_AdminOptions_t *options);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_request_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_operation_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_validate_only(rd_kafka_AdminOptions_t *options, int true_or_false, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_broker(rd_kafka_AdminOptions_t *options, int32_t broker_id, char *errstr, size_t errstr_size);
void rd_kafka_AdminOptions_set_opaque(rd_kafka_AdminOptions_t *options, void *ev_opaque);
typedef struct rd_kafka_NewTopic_s rd_kafka_NewTopic_t;
rd_kafka_NewTopic_t *rd_kafka_NewTopic_new(const char *topic, int num_partitions, int replication_factor, char *errstr, size_t errstr_size);
void rd_kafka_NewTopic_destroy(rd_kafka_NewTopic_t *new_topic);
void rd_kafka_NewTopic_destroy_array(rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_replica_assignment(rd_kafka_NewTopic_t *new_topic, int32_t partition, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_config(rd_kafka_NewTopic_t *new_topic, const char *name, const char *value);
void rd_kafka_CreateTopics(rd_kafka_t *rk, rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreateTopics_result_topics(const rd_kafka_CreateTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteTopic_s rd_kafka_DeleteTopic_t;
rd_kafka_DeleteTopic_t *rd_kafka_DeleteTopic_new(const char *topic);
void rd_kafka_DeleteTopic_destroy(rd_kafka_DeleteTopic_t *del_topic);
void rd_kafka_DeleteTopic_destroy_array(rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt);
void rd_kafka_DeleteTopics(rd_kafka_t *rk, rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_DeleteTopics_result_topics(const rd_kafka_DeleteTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_NewPartitions_s rd_kafka_NewPartitions_t;
rd_kafka_NewPartitions_t *rd_kafka_NewPartitions_new(const char *topic, size_t new_total_cnt, char *errstr, size_t errstr_size);
void rd_kafka_NewPartitions_destroy(rd_kafka_NewPartitions_t *new_parts);
void rd_kafka_NewPartitions_destroy_array(rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt);
rd_kafka_resp_err_t rd_kafka_NewPartitions_set_replica_assignment(rd_kafka_NewPartitions_t *new_parts, int32_t new_partition_idx, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
void rd_kafka_CreatePartitions(rd_kafka_t *rk, rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreatePartitions_result_topics(const rd_kafka_CreatePartitions_result_t *result, size_t *cntp);
typedef enum rd_kafka_ConfigSource_t {
  RD_KAFKA_CONFIG_SOURCE_UNKNOWN_CONFIG = 0,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG = 1,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG = 2,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG = 3,
  RD_KAFKA_CONFIG_SOURCE_STATIC_BROKER_CONFIG = 4,
  RD_KAFKA_CONFIG_SOURCE_DEFAULT_CONFIG = 5,
  RD_KAFKA_CONFIG_SOURCE__CNT,
} rd_kafka_ConfigSource_t;
const char *rd_kafka_ConfigSource_name(rd_kafka_ConfigSource_t confsource);
typedef struct rd_kafka_ConfigEntry_s rd_kafka_ConfigEntry_t;
const char *rd_kafka_ConfigEntry_name(const rd_kafka_ConfigEntry_t *entry);
const char *rd_kafka_ConfigEntry_value(const rd_kafka_ConfigEntry_t *entry);
rd_kafka_ConfigSource_t rd_kafka_ConfigEntry_source(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_read_only(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_default(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_sensitive(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_synonym(const rd_kafka_ConfigEntry_t *entry);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigEntry_synonyms(const rd_kafka_ConfigEntry_t *entry, size_t *cntp);
typedef enum rd_kafka_ResourceType_t {
  RD_KAFKA_RESOURCE_UNKNOWN = 0,
  RD_KAFKA_RESOURCE_ANY = 1,
  RD_KAFKA_RESOURCE_TOPIC = 2,
  RD_KAFKA_RESOURCE_GROUP = 3,
  RD_KAFKA_RESOURCE_BROKER = 4,
  RD_KAFKA_RESOURCE__CNT,
} rd_kafka_ResourceType_t;
typedef enum rd_kafka_ResourcePatternType_t {
  RD_KAFKA_RESOURCE_PATTERN_UNKNOWN = 0,
  RD_KAFKA_RESOURCE_PATTERN_ANY = 1,
  RD_KAFKA_RESOURCE_PATTERN_MATCH = 2,
  RD_KAFKA_RESOURCE_PATTERN_LITERAL = 3,
  RD_KAFKA_RESOURCE_PATTERN_PREFIXED = 4,
  RD_KAFKA_RESOURCE_PATTERN_TYPE__CNT,
} rd_kafka_ResourcePatternType_t;
const char *rd_kafka_ResourcePatternType_name(rd_kafka_ResourcePatternType_t resource_pattern_type);
const char *rd_kafka_ResourceType_name(rd_kafka_ResourceType_t restype);
typedef struct rd_kafka_ConfigResource_s rd_kafka_ConfigResource_t;
rd_kafka_ConfigResource_t *rd_kafka_ConfigResource_new(rd_kafka_ResourceType_t restype, const char *resname);
void rd_kafka_ConfigResource_destroy(rd_kafka_ConfigResource_t *config);
void rd_kafka_ConfigResource_destroy_array(rd_kafka_ConfigResource_t **config, size_t config_cnt);
rd_kafka_resp_err_t rd_kafka_ConfigResource_set_config(rd_kafka_ConfigResource_t *config, const char *name, const char *value);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigResource_configs(const rd_kafka_ConfigResource_t *config, size_t *cntp);
rd_kafka_ResourceType_t rd_kafka_ConfigResource_type(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_name(const rd_kafka_ConfigResource_t *config);
rd_kafka_resp_err_t rd_kafka_ConfigResource_error(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_error_string(const rd_kafka_ConfigResource_t *config);
void rd_kafka_AlterConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_AlterConfigs_result_resources(const rd_kafka_AlterConfigs_result_t *result, size_t *cntp);
void rd_kafka_DescribeConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_DescribeConfigs_result_resources(const rd_kafka_DescribeConfigs_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteRecords_s rd_kafka_DeleteRecords_t;
rd_kafka_DeleteRecords_t *rd_kafka_DeleteRecords_new(const rd_kafka_topic_partition_list_t *before_offsets);
void rd_kafka_DeleteRecords_destroy(rd_kafka_DeleteRecords_t *del_records);
void rd_kafka_DeleteRecords_destroy_array(rd_kafka_DeleteRecords_t **del_records, size_t del_record_cnt);
void rd_kafka_DeleteRecords(rd_kafka_t *rk, rd_kafka_DeleteRecords_t **del_records, size_t del_record_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_partition_list_t *rd_kafka_DeleteRecords_result_offsets(const rd_kafka_DeleteRecords_result_t *result);
typedef struct rd_kafka_DeleteGroup_s rd_kafka_DeleteGroup_t;
rd_kafka_DeleteGroup_t *rd_kafka_DeleteGroup_new(const char *group);
void rd_kafka_DeleteGroup_destroy(rd_kafka_DeleteGroup_t *del_group);
void rd_kafka_DeleteGroup_destroy_array(rd_kafka_DeleteGroup_t **del_groups, size_t del_group_cnt);
void rd_kafka_DeleteGroups(rd_kafka_t *rk, rd_kafka_DeleteGroup_t **del_groups, size_t del_group_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_DeleteGroups_result_groups(const rd_kafka_DeleteGroups_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteConsumerGroupOffsets_s rd_kafka_DeleteConsumerGroupOffsets_t;
rd_kafka_DeleteConsumerGroupOffsets_t *rd_kafka_DeleteConsumerGroupOffsets_new(const char *group, const rd_kafka_topic_partition_list_t *partitions);
void rd_kafka_DeleteConsumerGroupOffsets_destroy(rd_kafka_DeleteConsumerGroupOffsets_t *del_grpoffsets);
void rd_kafka_DeleteConsumerGroupOffsets_destroy_array(rd_kafka_DeleteConsumerGroupOffsets_t **del_grpoffsets, size_t del_grpoffset_cnt);
void rd_kafka_DeleteConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_DeleteConsumerGroupOffsets_t **del_grpoffsets, size_t del_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_DeleteConsumerGroupOffsets_result_groups(const rd_kafka_DeleteConsumerGroupOffsets_result_t *result, size_t *cntp);
typedef struct rd_kafka_AclBinding_s rd_kafka_AclBinding_t;
typedef rd_kafka_AclBinding_t rd_kafka_AclBindingFilter_t;
const rd_kafka_error_t *rd_kafka_acl_result_error(const rd_kafka_acl_result_t *aclres);
typedef enum rd_kafka_AclOperation_t {
  RD_KAFKA_ACL_OPERATION_UNKNOWN = 0,
  RD_KAFKA_ACL_OPERATION_ANY = 1,
  RD_KAFKA_ACL_OPERATION_ALL = 2,
  RD_KAFKA_ACL_OPERATION_READ = 3,
  RD_KAFKA_ACL_OPERATION_WRITE = 4,
  RD_KAFKA_ACL_OPERATION_CREATE = 5,
  RD_KAFKA_ACL_OPERATION_DELETE = 6,
  RD_KAFKA_ACL_OPERATION_ALTER = 7,
  RD_KAFKA_ACL_OPERATION_DESCRIBE = 8,
  RD_KAFKA_ACL_OPERATION_CLUSTER_ACTION = 9,
  RD_KAFKA_ACL_OPERATION_DESCRIBE_CONFIGS = 10,
  RD_KAFKA_ACL_OPERATION_ALTER_CONFIGS = 11,
  RD_KAFKA_ACL_OPERATION_IDEMPOTENT_WRITE = 12,
  RD_KAFKA_ACL_OPERATION__CNT,
} rd_kafka_AclOperation_t;
const char *rd_kafka_AclOperation_name(rd_kafka_AclOperation_t acl_operation);
typedef enum rd_kafka_AclPermissionType_t {
  RD_KAFKA_ACL_PERMISSION_TYPE_UNKNOWN = 0,
  RD_KAFKA_ACL_PERMISSION_TYPE_ANY = 1,
  RD_KAFKA_ACL_PERMISSION_TYPE_DENY = 2,
  RD_KAFKA_ACL_PERMISSION_TYPE_ALLOW = 3,
  RD_KAFKA_ACL_PERMISSION_TYPE__CNT,
} rd_kafka_AclPermissionType_t;
const char *rd_kafka_AclPermissionType_name(rd_kafka_AclPermissionType_t acl_permission_type);
rd_kafka_AclBinding_t *rd_kafka_AclBinding_new(rd_kafka_ResourceType_t restype, const char *name, rd_kafka_ResourcePatternType_t resource_pattern_type, const char *principal, const char *host, rd_kafka_AclOperation_t operation, rd_kafka_AclPermissionType_t permission_type, char *errstr, size_t errstr_size);
rd_kafka_AclBindingFilter_t *rd_kafka_AclBindingFilter_new(rd_kafka_ResourceType_t restype, const char *name, rd_kafka_ResourcePatternType_t resource_pattern_type, const char *principal, const char *host, rd_kafka_AclOperation_t operation, rd_kafka_AclPermissionType_t permission_type, char *errstr, size_t errstr_size);
rd_kafka_ResourceType_t rd_kafka_AclBinding_restype(const rd_kafka_AclBinding_t *acl);
const char *rd_kafka_AclBinding_name(const rd_kafka_AclBinding_t *acl);
const char *rd_kafka_AclBinding_principal(const rd_kafka_AclBinding_t *acl);
const char *rd_kafka_AclBinding_host(const rd_kafka_AclBinding_t *acl);
rd_kafka_AclOperation_t rd_kafka_AclBinding_operation(const rd_kafka_AclBinding_t *acl);
rd_kafka_AclPermissionType_t rd_kafka_AclBinding_permission_type(const rd_kafka_AclBinding_t *acl);
rd_kafka_ResourcePatternType_t rd_kafka_AclBinding_resource_pattern_type(const rd_kafka_AclBinding_t *acl);
const rd_kafka_error_t *rd_kafka_AclBinding_error(const rd_kafka_AclBinding_t *acl);
void rd_kafka_AclBinding_destroy(rd_kafka_AclBinding_t *acl_binding);
void rd_kafka_AclBinding_destroy_array(rd_kafka_AclBinding_t **acl_bindings, size_t acl_bindings_cnt);
const rd_kafka_acl_result_t **rd_kafka_CreateAcls_result_acls(const rd_kafka_CreateAcls_result_t *result, size_t *cntp);
void rd_kafka_CreateAcls(rd_kafka_t *rk, rd_kafka_AclBinding_t **new_acls, size_t new_acls_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_AclBinding_t **rd_kafka_DescribeAcls_result_acls(const rd_kafka_DescribeAcls_result_t *result, size_t *cntp);
void rd_kafka_DescribeAcls(rd_kafka_t *rk, rd_kafka_AclBindingFilter_t *acl_filter, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
typedef struct rd_kafka_DeleteAcls_result_response_s rd_kafka_DeleteAcls_result_response_t;
const rd_kafka_DeleteAcls_result_response_t **rd_kafka_DeleteAcls_result_responses(const rd_kafka_DeleteAcls_result_t *result, size_t *cntp);
const rd_kafka_error_t *rd_kafka_DeleteAcls_result_response_error(const rd_kafka_DeleteAcls_result_response_t *result_response);
const rd_kafka_AclBinding_t **rd_kafka_DeleteAcls_result_response_matching_acls(const rd_kafka_DeleteAcls_result_response_t *result_response, size_t *matching_acls_cntp);
void rd_kafka_DeleteAcls(rd_kafka_t *rk, rd_kafka_AclBindingFilter_t **del_acls, size_t del_acls_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token(rd_kafka_t *rk, const char *token_value, int64_t md_lifetime_ms, const char *md_principal_name, const char **extensions, size_t extension_size, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token_failure(rd_kafka_t *rk, const char *errstr);
rd_kafka_error_t *rd_kafka_init_transactions(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_begin_transaction(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_send_offsets_to_transaction(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, const rd_kafka_consumer_group_metadata_t *cgmetadata, int timeout_ms);
rd_kafka_error_t *rd_kafka_commit_transaction(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_abort_transaction(rd_kafka_t *rk, int timeout_ms);
typedef struct rd_kafka_mock_cluster_s rd_kafka_mock_cluster_t;
rd_kafka_mock_cluster_t *rd_kafka_mock_cluster_new(rd_kafka_t *rk, int broker_cnt);
void rd_kafka_mock_cluster_destroy(rd_kafka_mock_cluster_t *mcluster);
rd_kafka_t *rd_kafka_mock_cluster_handle(const rd_kafka_mock_cluster_t *mcluster);
rd_kafka_mock_cluster_t *rd_kafka_handle_mock_cluster(const rd_kafka_t *rk);
const char *rd_kafka_mock_cluster_bootstraps(const rd_kafka_mock_cluster_t *mcluster);
void rd_kafka_mock_clear_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey);
void rd_kafka_mock_push_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, ...);
void rd_kafka_mock_push_request_errors_array(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, const rd_kafka_resp_err_t *errors);
rd_kafka_resp_err_t rd_kafka_mock_broker_push_request_error_rtts(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int16_t ApiKey, size_t cnt, ...);
void rd_kafka_mock_topic_set_error(rd_kafka_mock_cluster_t *mcluster, const char *topic, rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_mock_topic_create(rd_kafka_mock_cluster_t *mcluster, const char *topic, int partition_cnt, int replication_factor);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_leader(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower_wmarks(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int64_t lo, int64_t hi);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_down(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_up(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rtt(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int rtt_ms);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rack(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, const char *rack);
rd_kafka_resp_err_t rd_kafka_mock_coordinator_set(rd_kafka_mock_cluster_t *mcluster, const char *key_type, const char *key, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_set_apiversion(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, int16_t MinVersion, int16_t MaxVersion);
'
rdkafka.h, rdkafka_mock.h

RD_KAFKA_VERSION

public RD_KAFKA_VERSION = 33554687

librdkafka version

Interpreted as hex MM.mm.rr.xx:

  • MM = Major
  • mm = minor
  • rr = revision
  • xx = pre-release id (0xff is the final release)

E.g.: 0x000801ff = 0.8.1

Remarks
This value should only be used during compile time, for runtime checks of version use rd_kafka_version()

RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE

public RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76

Unsupported compression type

RD_KAFKA_RESP_ERR_END_ALL

public RD_KAFKA_RESP_ERR_END_ALL = 98
enum rd_kafka_resp_err_t

RD_KAFKA_ADMIN_OP__CNT

public RD_KAFKA_ADMIN_OP__CNT = 16

Number of ops defined

RD_KAFKA_CDEF

public RD_KAFKA_CDEF = 'typedef long int ssize_t;
typedef struct _IO_FILE FILE;
typedef long int mode_t;
typedef signed int int16_t;
typedef unsigned int uint16_t;
typedef signed int int32_t;
typedef signed long int int64_t;
int rd_kafka_version(void);
const char *rd_kafka_version_str(void);
typedef enum rd_kafka_type_t {
  RD_KAFKA_PRODUCER,
  RD_KAFKA_CONSUMER,
} rd_kafka_type_t;
typedef enum rd_kafka_timestamp_type_t {
  RD_KAFKA_TIMESTAMP_NOT_AVAILABLE,
  RD_KAFKA_TIMESTAMP_CREATE_TIME,
  RD_KAFKA_TIMESTAMP_LOG_APPEND_TIME,
} rd_kafka_timestamp_type_t;
const char *rd_kafka_get_debug_contexts(void);
typedef struct rd_kafka_s rd_kafka_t;
typedef struct rd_kafka_topic_s rd_kafka_topic_t;
typedef struct rd_kafka_conf_s rd_kafka_conf_t;
typedef struct rd_kafka_topic_conf_s rd_kafka_topic_conf_t;
typedef struct rd_kafka_queue_s rd_kafka_queue_t;
typedef struct rd_kafka_op_s rd_kafka_event_t;
typedef struct rd_kafka_topic_result_s rd_kafka_topic_result_t;
typedef struct rd_kafka_consumer_group_metadata_s rd_kafka_consumer_group_metadata_t;
typedef struct rd_kafka_error_s {
  unsigned int code;
  char *errstr;
  unsigned char fatal;
  unsigned char retriable;
  unsigned char txn_requires_abort;
} rd_kafka_error_t;
typedef struct rd_kafka_headers_s rd_kafka_headers_t;
typedef struct rd_kafka_group_result_s rd_kafka_group_result_t;
typedef struct rd_kafka_acl_result_s rd_kafka_acl_result_t;
typedef enum {
  RD_KAFKA_RESP_ERR__BEGIN = (- 200),
  RD_KAFKA_RESP_ERR__BAD_MSG = (- 199),
  RD_KAFKA_RESP_ERR__BAD_COMPRESSION = (- 198),
  RD_KAFKA_RESP_ERR__DESTROY = (- 197),
  RD_KAFKA_RESP_ERR__FAIL = (- 196),
  RD_KAFKA_RESP_ERR__TRANSPORT = (- 195),
  RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE = (- 194),
  RD_KAFKA_RESP_ERR__RESOLVE = (- 193),
  RD_KAFKA_RESP_ERR__MSG_TIMED_OUT = (- 192),
  RD_KAFKA_RESP_ERR__PARTITION_EOF = (- 191),
  RD_KAFKA_RESP_ERR__UNKNOWN_PARTITION = (- 190),
  RD_KAFKA_RESP_ERR__FS = (- 189),
  RD_KAFKA_RESP_ERR__UNKNOWN_TOPIC = (- 188),
  RD_KAFKA_RESP_ERR__ALL_BROKERS_DOWN = (- 187),
  RD_KAFKA_RESP_ERR__INVALID_ARG = (- 186),
  RD_KAFKA_RESP_ERR__TIMED_OUT = (- 185),
  RD_KAFKA_RESP_ERR__QUEUE_FULL = (- 184),
  RD_KAFKA_RESP_ERR__ISR_INSUFF = (- 183),
  RD_KAFKA_RESP_ERR__NODE_UPDATE = (- 182),
  RD_KAFKA_RESP_ERR__SSL = (- 181),
  RD_KAFKA_RESP_ERR__WAIT_COORD = (- 180),
  RD_KAFKA_RESP_ERR__UNKNOWN_GROUP = (- 179),
  RD_KAFKA_RESP_ERR__IN_PROGRESS = (- 178),
  RD_KAFKA_RESP_ERR__PREV_IN_PROGRESS = (- 177),
  RD_KAFKA_RESP_ERR__EXISTING_SUBSCRIPTION = (- 176),
  RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS = (- 175),
  RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS = (- 174),
  RD_KAFKA_RESP_ERR__CONFLICT = (- 173),
  RD_KAFKA_RESP_ERR__STATE = (- 172),
  RD_KAFKA_RESP_ERR__UNKNOWN_PROTOCOL = (- 171),
  RD_KAFKA_RESP_ERR__NOT_IMPLEMENTED = (- 170),
  RD_KAFKA_RESP_ERR__AUTHENTICATION = (- 169),
  RD_KAFKA_RESP_ERR__NO_OFFSET = (- 168),
  RD_KAFKA_RESP_ERR__OUTDATED = (- 167),
  RD_KAFKA_RESP_ERR__TIMED_OUT_QUEUE = (- 166),
  RD_KAFKA_RESP_ERR__UNSUPPORTED_FEATURE = (- 165),
  RD_KAFKA_RESP_ERR__WAIT_CACHE = (- 164),
  RD_KAFKA_RESP_ERR__INTR = (- 163),
  RD_KAFKA_RESP_ERR__KEY_SERIALIZATION = (- 162),
  RD_KAFKA_RESP_ERR__VALUE_SERIALIZATION = (- 161),
  RD_KAFKA_RESP_ERR__KEY_DESERIALIZATION = (- 160),
  RD_KAFKA_RESP_ERR__VALUE_DESERIALIZATION = (- 159),
  RD_KAFKA_RESP_ERR__PARTIAL = (- 158),
  RD_KAFKA_RESP_ERR__READ_ONLY = (- 157),
  RD_KAFKA_RESP_ERR__NOENT = (- 156),
  RD_KAFKA_RESP_ERR__UNDERFLOW = (- 155),
  RD_KAFKA_RESP_ERR__INVALID_TYPE = (- 154),
  RD_KAFKA_RESP_ERR__RETRY = (- 153),
  RD_KAFKA_RESP_ERR__PURGE_QUEUE = (- 152),
  RD_KAFKA_RESP_ERR__PURGE_INFLIGHT = (- 151),
  RD_KAFKA_RESP_ERR__FATAL = (- 150),
  RD_KAFKA_RESP_ERR__INCONSISTENT = (- 149),
  RD_KAFKA_RESP_ERR__GAPLESS_GUARANTEE = (- 148),
  RD_KAFKA_RESP_ERR__MAX_POLL_EXCEEDED = (- 147),
  RD_KAFKA_RESP_ERR__UNKNOWN_BROKER = (- 146),
  RD_KAFKA_RESP_ERR__NOT_CONFIGURED = (- 145),
  RD_KAFKA_RESP_ERR__FENCED = (- 144),
  RD_KAFKA_RESP_ERR__APPLICATION = (- 143),
  RD_KAFKA_RESP_ERR__ASSIGNMENT_LOST = (- 142),
  RD_KAFKA_RESP_ERR__NOOP = (- 141),
  RD_KAFKA_RESP_ERR__AUTO_OFFSET_RESET = (- 140),
  RD_KAFKA_RESP_ERR__END = (- 100),
  RD_KAFKA_RESP_ERR_UNKNOWN = (- 1),
  RD_KAFKA_RESP_ERR_NO_ERROR = 0,
  RD_KAFKA_RESP_ERR_OFFSET_OUT_OF_RANGE = 1,
  RD_KAFKA_RESP_ERR_INVALID_MSG = 2,
  RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_OR_PART = 3,
  RD_KAFKA_RESP_ERR_INVALID_MSG_SIZE = 4,
  RD_KAFKA_RESP_ERR_LEADER_NOT_AVAILABLE = 5,
  RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION = 6,
  RD_KAFKA_RESP_ERR_REQUEST_TIMED_OUT = 7,
  RD_KAFKA_RESP_ERR_BROKER_NOT_AVAILABLE = 8,
  RD_KAFKA_RESP_ERR_REPLICA_NOT_AVAILABLE = 9,
  RD_KAFKA_RESP_ERR_MSG_SIZE_TOO_LARGE = 10,
  RD_KAFKA_RESP_ERR_STALE_CTRL_EPOCH = 11,
  RD_KAFKA_RESP_ERR_OFFSET_METADATA_TOO_LARGE = 12,
  RD_KAFKA_RESP_ERR_NETWORK_EXCEPTION = 13,
  RD_KAFKA_RESP_ERR_COORDINATOR_LOAD_IN_PROGRESS = 14,
  RD_KAFKA_RESP_ERR_COORDINATOR_NOT_AVAILABLE = 15,
  RD_KAFKA_RESP_ERR_NOT_COORDINATOR = 16,
  RD_KAFKA_RESP_ERR_TOPIC_EXCEPTION = 17,
  RD_KAFKA_RESP_ERR_RECORD_LIST_TOO_LARGE = 18,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS = 19,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS_AFTER_APPEND = 20,
  RD_KAFKA_RESP_ERR_INVALID_REQUIRED_ACKS = 21,
  RD_KAFKA_RESP_ERR_ILLEGAL_GENERATION = 22,
  RD_KAFKA_RESP_ERR_INCONSISTENT_GROUP_PROTOCOL = 23,
  RD_KAFKA_RESP_ERR_INVALID_GROUP_ID = 24,
  RD_KAFKA_RESP_ERR_UNKNOWN_MEMBER_ID = 25,
  RD_KAFKA_RESP_ERR_INVALID_SESSION_TIMEOUT = 26,
  RD_KAFKA_RESP_ERR_REBALANCE_IN_PROGRESS = 27,
  RD_KAFKA_RESP_ERR_INVALID_COMMIT_OFFSET_SIZE = 28,
  RD_KAFKA_RESP_ERR_TOPIC_AUTHORIZATION_FAILED = 29,
  RD_KAFKA_RESP_ERR_GROUP_AUTHORIZATION_FAILED = 30,
  RD_KAFKA_RESP_ERR_CLUSTER_AUTHORIZATION_FAILED = 31,
  RD_KAFKA_RESP_ERR_INVALID_TIMESTAMP = 32,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_SASL_MECHANISM = 33,
  RD_KAFKA_RESP_ERR_ILLEGAL_SASL_STATE = 34,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_VERSION = 35,
  RD_KAFKA_RESP_ERR_TOPIC_ALREADY_EXISTS = 36,
  RD_KAFKA_RESP_ERR_INVALID_PARTITIONS = 37,
  RD_KAFKA_RESP_ERR_INVALID_REPLICATION_FACTOR = 38,
  RD_KAFKA_RESP_ERR_INVALID_REPLICA_ASSIGNMENT = 39,
  RD_KAFKA_RESP_ERR_INVALID_CONFIG = 40,
  RD_KAFKA_RESP_ERR_NOT_CONTROLLER = 41,
  RD_KAFKA_RESP_ERR_INVALID_REQUEST = 42,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_FOR_MESSAGE_FORMAT = 43,
  RD_KAFKA_RESP_ERR_POLICY_VIOLATION = 44,
  RD_KAFKA_RESP_ERR_OUT_OF_ORDER_SEQUENCE_NUMBER = 45,
  RD_KAFKA_RESP_ERR_DUPLICATE_SEQUENCE_NUMBER = 46,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_EPOCH = 47,
  RD_KAFKA_RESP_ERR_INVALID_TXN_STATE = 48,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_ID_MAPPING = 49,
  RD_KAFKA_RESP_ERR_INVALID_TRANSACTION_TIMEOUT = 50,
  RD_KAFKA_RESP_ERR_CONCURRENT_TRANSACTIONS = 51,
  RD_KAFKA_RESP_ERR_TRANSACTION_COORDINATOR_FENCED = 52,
  RD_KAFKA_RESP_ERR_TRANSACTIONAL_ID_AUTHORIZATION_FAILED = 53,
  RD_KAFKA_RESP_ERR_SECURITY_DISABLED = 54,
  RD_KAFKA_RESP_ERR_OPERATION_NOT_ATTEMPTED = 55,
  RD_KAFKA_RESP_ERR_KAFKA_STORAGE_ERROR = 56,
  RD_KAFKA_RESP_ERR_LOG_DIR_NOT_FOUND = 57,
  RD_KAFKA_RESP_ERR_SASL_AUTHENTICATION_FAILED = 58,
  RD_KAFKA_RESP_ERR_UNKNOWN_PRODUCER_ID = 59,
  RD_KAFKA_RESP_ERR_REASSIGNMENT_IN_PROGRESS = 60,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTH_DISABLED = 61,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_NOT_FOUND = 62,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_OWNER_MISMATCH = 63,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_REQUEST_NOT_ALLOWED = 64,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTHORIZATION_FAILED = 65,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_EXPIRED = 66,
  RD_KAFKA_RESP_ERR_INVALID_PRINCIPAL_TYPE = 67,
  RD_KAFKA_RESP_ERR_NON_EMPTY_GROUP = 68,
  RD_KAFKA_RESP_ERR_GROUP_ID_NOT_FOUND = 69,
  RD_KAFKA_RESP_ERR_FETCH_SESSION_ID_NOT_FOUND = 70,
  RD_KAFKA_RESP_ERR_INVALID_FETCH_SESSION_EPOCH = 71,
  RD_KAFKA_RESP_ERR_LISTENER_NOT_FOUND = 72,
  RD_KAFKA_RESP_ERR_TOPIC_DELETION_DISABLED = 73,
  RD_KAFKA_RESP_ERR_FENCED_LEADER_EPOCH = 74,
  RD_KAFKA_RESP_ERR_UNKNOWN_LEADER_EPOCH = 75,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76,
  RD_KAFKA_RESP_ERR_STALE_BROKER_EPOCH = 77,
  RD_KAFKA_RESP_ERR_OFFSET_NOT_AVAILABLE = 78,
  RD_KAFKA_RESP_ERR_MEMBER_ID_REQUIRED = 79,
  RD_KAFKA_RESP_ERR_PREFERRED_LEADER_NOT_AVAILABLE = 80,
  RD_KAFKA_RESP_ERR_GROUP_MAX_SIZE_REACHED = 81,
  RD_KAFKA_RESP_ERR_FENCED_INSTANCE_ID = 82,
  RD_KAFKA_RESP_ERR_ELIGIBLE_LEADERS_NOT_AVAILABLE = 83,
  RD_KAFKA_RESP_ERR_ELECTION_NOT_NEEDED = 84,
  RD_KAFKA_RESP_ERR_NO_REASSIGNMENT_IN_PROGRESS = 85,
  RD_KAFKA_RESP_ERR_GROUP_SUBSCRIBED_TO_TOPIC = 86,
  RD_KAFKA_RESP_ERR_INVALID_RECORD = 87,
  RD_KAFKA_RESP_ERR_UNSTABLE_OFFSET_COMMIT = 88,
  RD_KAFKA_RESP_ERR_THROTTLING_QUOTA_EXCEEDED = 89,
  RD_KAFKA_RESP_ERR_PRODUCER_FENCED = 90,
  RD_KAFKA_RESP_ERR_RESOURCE_NOT_FOUND = 91,
  RD_KAFKA_RESP_ERR_DUPLICATE_RESOURCE = 92,
  RD_KAFKA_RESP_ERR_UNACCEPTABLE_CREDENTIAL = 93,
  RD_KAFKA_RESP_ERR_INCONSISTENT_VOTER_SET = 94,
  RD_KAFKA_RESP_ERR_INVALID_UPDATE_VERSION = 95,
  RD_KAFKA_RESP_ERR_FEATURE_UPDATE_FAILED = 96,
  RD_KAFKA_RESP_ERR_PRINCIPAL_DESERIALIZATION_FAILURE = 97,
  RD_KAFKA_RESP_ERR_END_ALL,
} rd_kafka_resp_err_t;
struct rd_kafka_err_desc {
  rd_kafka_resp_err_t code;
  char *name;
  char *desc;
};
void rd_kafka_get_err_descs(const struct rd_kafka_err_desc **errdescs, size_t *cntp);
const char *rd_kafka_err2str(rd_kafka_resp_err_t err);
const char *rd_kafka_err2name(rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_last_error(void);
rd_kafka_resp_err_t rd_kafka_errno2err(int errnox);
int rd_kafka_errno(void);
rd_kafka_resp_err_t rd_kafka_fatal_error(rd_kafka_t *rk, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_test_fatal_error(rd_kafka_t *rk, rd_kafka_resp_err_t err, const char *reason);
rd_kafka_resp_err_t rd_kafka_error_code(const rd_kafka_error_t *error);
const char *rd_kafka_error_name(const rd_kafka_error_t *error);
const char *rd_kafka_error_string(const rd_kafka_error_t *error);
int rd_kafka_error_is_fatal(const rd_kafka_error_t *error);
int rd_kafka_error_is_retriable(const rd_kafka_error_t *error);
int rd_kafka_error_txn_requires_abort(const rd_kafka_error_t *error);
void rd_kafka_error_destroy(rd_kafka_error_t *error);
rd_kafka_error_t *rd_kafka_error_new(rd_kafka_resp_err_t code, const char *fmt, ...);
typedef struct rd_kafka_topic_partition_s {
  char *topic;
  int32_t partition;
  int64_t offset;
  void *metadata;
  size_t metadata_size;
  void *opaque;
  rd_kafka_resp_err_t err;
  void *_private;
} rd_kafka_topic_partition_t;
void rd_kafka_topic_partition_destroy(rd_kafka_topic_partition_t *rktpar);
typedef struct rd_kafka_topic_partition_list_s {
  int cnt;
  int size;
  rd_kafka_topic_partition_t *elems;
} rd_kafka_topic_partition_list_t;
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_new(int size);
void rd_kafka_topic_partition_list_destroy(rd_kafka_topic_partition_list_t *rkparlist);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_add(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_add_range(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t start, int32_t stop);
int rd_kafka_topic_partition_list_del(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
int rd_kafka_topic_partition_list_del_by_idx(rd_kafka_topic_partition_list_t *rktparlist, int idx);
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_copy(const rd_kafka_topic_partition_list_t *src);
rd_kafka_resp_err_t rd_kafka_topic_partition_list_set_offset(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition, int64_t offset);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_find(const rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_sort(rd_kafka_topic_partition_list_t *rktparlist, int (*cmp)(const void *a, const void *b, void *cmp_opaque), void *cmp_opaque);
typedef enum rd_kafka_vtype_t {
  RD_KAFKA_VTYPE_END,
  RD_KAFKA_VTYPE_TOPIC,
  RD_KAFKA_VTYPE_RKT,
  RD_KAFKA_VTYPE_PARTITION,
  RD_KAFKA_VTYPE_VALUE,
  RD_KAFKA_VTYPE_KEY,
  RD_KAFKA_VTYPE_OPAQUE,
  RD_KAFKA_VTYPE_MSGFLAGS,
  RD_KAFKA_VTYPE_TIMESTAMP,
  RD_KAFKA_VTYPE_HEADER,
  RD_KAFKA_VTYPE_HEADERS,
} rd_kafka_vtype_t;
typedef struct rd_kafka_vu_s {
  rd_kafka_vtype_t vtype;
  union {
    char *cstr;
    rd_kafka_topic_t *rkt;
    int i;
    int32_t i32;
    int64_t i64;
    struct {
      void *ptr;
      size_t size;
    } mem;
    struct {
      char *name;
      void *val;
      ssize_t size;
    } header;
    rd_kafka_headers_t *headers;
    void *ptr;
    char _pad[64];
  } u;
} rd_kafka_vu_t;
rd_kafka_headers_t *rd_kafka_headers_new(size_t initial_count);
void rd_kafka_headers_destroy(rd_kafka_headers_t *hdrs);
rd_kafka_headers_t *rd_kafka_headers_copy(const rd_kafka_headers_t *src);
rd_kafka_resp_err_t rd_kafka_header_add(rd_kafka_headers_t *hdrs, const char *name, ssize_t name_size, const void *value, ssize_t value_size);
rd_kafka_resp_err_t rd_kafka_header_remove(rd_kafka_headers_t *hdrs, const char *name);
rd_kafka_resp_err_t rd_kafka_header_get_last(const rd_kafka_headers_t *hdrs, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get(const rd_kafka_headers_t *hdrs, size_t idx, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get_all(const rd_kafka_headers_t *hdrs, size_t idx, const char **namep, const void **valuep, size_t *sizep);
typedef struct rd_kafka_message_s {
  rd_kafka_resp_err_t err;
  rd_kafka_topic_t *rkt;
  int32_t partition;
  void *payload;
  size_t len;
  void *key;
  size_t key_len;
  int64_t offset;
  void *_private;
} rd_kafka_message_t;
void rd_kafka_message_destroy(rd_kafka_message_t *rkmessage);
const char *rd_kafka_message_errstr(const rd_kafka_message_t *rkmessage);
int64_t rd_kafka_message_timestamp(const rd_kafka_message_t *rkmessage, rd_kafka_timestamp_type_t *tstype);
int64_t rd_kafka_message_latency(const rd_kafka_message_t *rkmessage);
int32_t rd_kafka_message_broker_id(const rd_kafka_message_t *rkmessage);
rd_kafka_resp_err_t rd_kafka_message_headers(const rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
rd_kafka_resp_err_t rd_kafka_message_detach_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
void rd_kafka_message_set_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t *hdrs);
size_t rd_kafka_header_cnt(const rd_kafka_headers_t *hdrs);
typedef enum {
  RD_KAFKA_MSG_STATUS_NOT_PERSISTED = 0,
  RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED = 1,
  RD_KAFKA_MSG_STATUS_PERSISTED = 2,
} rd_kafka_msg_status_t;
rd_kafka_msg_status_t rd_kafka_message_status(const rd_kafka_message_t *rkmessage);
typedef enum {
  RD_KAFKA_CONF_UNKNOWN = (- 2),
  RD_KAFKA_CONF_INVALID = (- 1),
  RD_KAFKA_CONF_OK = 0,
} rd_kafka_conf_res_t;
rd_kafka_conf_t *rd_kafka_conf_new(void);
void rd_kafka_conf_destroy(rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup(const rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup_filter(const rd_kafka_conf_t *conf, size_t filter_cnt, const char **filter);
const rd_kafka_conf_t *rd_kafka_conf(rd_kafka_t *rk);
rd_kafka_conf_res_t rd_kafka_conf_set(rd_kafka_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_events(rd_kafka_conf_t *conf, int events);
void rd_kafka_conf_set_background_event_cb(rd_kafka_conf_t *conf, void (*event_cb)(rd_kafka_t *rk, rd_kafka_event_t *rkev, void *opaque));
void rd_kafka_conf_set_dr_cb(rd_kafka_conf_t *conf, void (*dr_cb)(rd_kafka_t *rk, void *payload, size_t len, rd_kafka_resp_err_t err, void *opaque, void *msg_opaque));
void rd_kafka_conf_set_dr_msg_cb(rd_kafka_conf_t *conf, void (*dr_msg_cb)(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_consume_cb(rd_kafka_conf_t *conf, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_rebalance_cb(rd_kafka_conf_t *conf, void (*rebalance_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *partitions, void *opaque));
void rd_kafka_conf_set_offset_commit_cb(rd_kafka_conf_t *conf, void (*offset_commit_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *opaque));
void rd_kafka_conf_set_error_cb(rd_kafka_conf_t *conf, void (*error_cb)(rd_kafka_t *rk, int err, const char *reason, void *opaque));
void rd_kafka_conf_set_throttle_cb(rd_kafka_conf_t *conf, void (*throttle_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int throttle_time_ms, void *opaque));
void rd_kafka_conf_set_log_cb(rd_kafka_conf_t *conf, void (*log_cb)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_conf_set_stats_cb(rd_kafka_conf_t *conf, int (*stats_cb)(rd_kafka_t *rk, char *json, size_t json_len, void *opaque));
void rd_kafka_conf_set_oauthbearer_token_refresh_cb(rd_kafka_conf_t *conf, void (*oauthbearer_token_refresh_cb)(rd_kafka_t *rk, const char *oauthbearer_config, void *opaque));
void rd_kafka_conf_enable_sasl_queue(rd_kafka_conf_t *conf, int enable);
void rd_kafka_conf_set_socket_cb(rd_kafka_conf_t *conf, int (*socket_cb)(int domain, int type, int protocol, void *opaque));
void rd_kafka_conf_set_connect_cb(rd_kafka_conf_t *conf, int (*connect_cb)(int sockfd, const struct sockaddr *addr, int addrlen, const char *id, void *opaque));
void rd_kafka_conf_set_closesocket_cb(rd_kafka_conf_t *conf, int (*closesocket_cb)(int sockfd, void *opaque));
struct addrinfo;
void rd_kafka_conf_set_resolve_cb(rd_kafka_conf_t *conf, int (*resolve_cb)(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res, void *opaque));
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert_verify_cb(rd_kafka_conf_t *conf, int (*ssl_cert_verify_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int *x509_error, int depth, const char *buf, size_t size, char *errstr, size_t errstr_size, void *opaque));
typedef enum rd_kafka_cert_type_t {
  RD_KAFKA_CERT_PUBLIC_KEY,
  RD_KAFKA_CERT_PRIVATE_KEY,
  RD_KAFKA_CERT_CA,
  RD_KAFKA_CERT__CNT,
} rd_kafka_cert_type_t;
typedef enum rd_kafka_cert_enc_t {
  RD_KAFKA_CERT_ENC_PKCS12,
  RD_KAFKA_CERT_ENC_DER,
  RD_KAFKA_CERT_ENC_PEM,
  RD_KAFKA_CERT_ENC__CNT,
} rd_kafka_cert_enc_t;
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert(rd_kafka_conf_t *conf, rd_kafka_cert_type_t cert_type, rd_kafka_cert_enc_t cert_enc, const void *buffer, size_t size, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_engine_callback_data(rd_kafka_conf_t *conf, void *callback_data);
void rd_kafka_conf_set_opaque(rd_kafka_conf_t *conf, void *opaque);
void *rd_kafka_opaque(const rd_kafka_t *rk);
void rd_kafka_conf_set_default_topic_conf(rd_kafka_conf_t *conf, rd_kafka_topic_conf_t *tconf);
rd_kafka_topic_conf_t *rd_kafka_conf_get_default_topic_conf(rd_kafka_conf_t *conf);
rd_kafka_conf_res_t rd_kafka_conf_get(const rd_kafka_conf_t *conf, const char *name, char *dest, size_t *dest_size);
rd_kafka_conf_res_t rd_kafka_topic_conf_get(const rd_kafka_topic_conf_t *conf, const char *name, char *dest, size_t *dest_size);
const char **rd_kafka_conf_dump(rd_kafka_conf_t *conf, size_t *cntp);
const char **rd_kafka_topic_conf_dump(rd_kafka_topic_conf_t *conf, size_t *cntp);
void rd_kafka_conf_dump_free(const char **arr, size_t cnt);
void rd_kafka_conf_properties_show(FILE *fp);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_new(void);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_dup(const rd_kafka_topic_conf_t *conf);
rd_kafka_topic_conf_t *rd_kafka_default_topic_conf_dup(rd_kafka_t *rk);
void rd_kafka_topic_conf_destroy(rd_kafka_topic_conf_t *topic_conf);
rd_kafka_conf_res_t rd_kafka_topic_conf_set(rd_kafka_topic_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_topic_conf_set_opaque(rd_kafka_topic_conf_t *conf, void *rkt_opaque);
void rd_kafka_topic_conf_set_partitioner_cb(rd_kafka_topic_conf_t *topic_conf, int32_t (*partitioner)(const rd_kafka_topic_t *rkt, const void *keydata, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque));
void rd_kafka_topic_conf_set_msg_order_cmp(rd_kafka_topic_conf_t *topic_conf, int (*msg_order_cmp)(const rd_kafka_message_t *a, const rd_kafka_message_t *b));
int rd_kafka_topic_partition_available(const rd_kafka_topic_t *rkt, int32_t partition);
int32_t rd_kafka_msg_partitioner_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
rd_kafka_t *rd_kafka_new(rd_kafka_type_t type, rd_kafka_conf_t *conf, char *errstr, size_t errstr_size);
void rd_kafka_destroy(rd_kafka_t *rk);
void rd_kafka_destroy_flags(rd_kafka_t *rk, int flags);
const char *rd_kafka_name(const rd_kafka_t *rk);
rd_kafka_type_t rd_kafka_type(const rd_kafka_t *rk);
char *rd_kafka_memberid(const rd_kafka_t *rk);
char *rd_kafka_clusterid(rd_kafka_t *rk, int timeout_ms);
int32_t rd_kafka_controllerid(rd_kafka_t *rk, int timeout_ms);
rd_kafka_topic_t *rd_kafka_topic_new(rd_kafka_t *rk, const char *topic, rd_kafka_topic_conf_t *conf);
void rd_kafka_topic_destroy(rd_kafka_topic_t *rkt);
const char *rd_kafka_topic_name(const rd_kafka_topic_t *rkt);
void *rd_kafka_topic_opaque(const rd_kafka_topic_t *rkt);
int rd_kafka_poll(rd_kafka_t *rk, int timeout_ms);
void rd_kafka_yield(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_pause_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_resume_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_query_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_get_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high);
rd_kafka_resp_err_t rd_kafka_offsets_for_times(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets, int timeout_ms);
void *rd_kafka_mem_calloc(rd_kafka_t *rk, size_t num, size_t size);
void *rd_kafka_mem_malloc(rd_kafka_t *rk, size_t size);
void rd_kafka_mem_free(rd_kafka_t *rk, void *ptr);
rd_kafka_queue_t *rd_kafka_queue_new(rd_kafka_t *rk);
void rd_kafka_queue_destroy(rd_kafka_queue_t *rkqu);
rd_kafka_queue_t *rd_kafka_queue_get_main(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_sasl(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_sasl_background_callbacks_enable(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_sasl_set_credentials(rd_kafka_t *rk, const char *username, const char *password);
rd_kafka_queue_t *rd_kafka_queue_get_consumer(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_partition(rd_kafka_t *rk, const char *topic, int32_t partition);
rd_kafka_queue_t *rd_kafka_queue_get_background(rd_kafka_t *rk);
void rd_kafka_queue_forward(rd_kafka_queue_t *src, rd_kafka_queue_t *dst);
rd_kafka_resp_err_t rd_kafka_set_log_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu);
size_t rd_kafka_queue_length(rd_kafka_queue_t *rkqu);
void rd_kafka_queue_io_event_enable(rd_kafka_queue_t *rkqu, int fd, const void *payload, size_t size);
void rd_kafka_queue_cb_event_enable(rd_kafka_queue_t *rkqu, void (*event_cb)(rd_kafka_t *rk, void *qev_opaque), void *qev_opaque);
void rd_kafka_queue_yield(rd_kafka_queue_t *rkqu);
int rd_kafka_consume_start(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
int rd_kafka_consume_start_queue(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, rd_kafka_queue_t *rkqu);
int rd_kafka_consume_stop(rd_kafka_topic_t *rkt, int32_t partition);
rd_kafka_resp_err_t rd_kafka_seek(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, int timeout_ms);
rd_kafka_error_t *rd_kafka_seek_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_message_t *rd_kafka_consume(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms);
ssize_t rd_kafka_consume_batch(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_message_t *rd_kafka_consume_queue(rd_kafka_queue_t *rkqu, int timeout_ms);
ssize_t rd_kafka_consume_batch_queue(rd_kafka_queue_t *rkqu, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback_queue(rd_kafka_queue_t *rkqu, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_offset_store(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
rd_kafka_resp_err_t rd_kafka_offsets_store(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets);
rd_kafka_resp_err_t rd_kafka_subscribe(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *topics);
rd_kafka_resp_err_t rd_kafka_unsubscribe(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_subscription(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **topics);
rd_kafka_message_t *rd_kafka_consumer_poll(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_consumer_close(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_consumer_close_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu);
int rd_kafka_consumer_closed(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_incremental_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_error_t *rd_kafka_incremental_unassign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
const char *rd_kafka_rebalance_protocol(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_assignment(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **partitions);
int rd_kafka_assignment_lost(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_commit(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, int async);
rd_kafka_resp_err_t rd_kafka_commit_message(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, int async);
rd_kafka_resp_err_t rd_kafka_commit_queue(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_queue_t *rkqu, void (*cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_committed(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_position(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata(rd_kafka_t *rk);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new(const char *group_id);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new_with_genid(const char *group_id, int32_t generation_id, const char *member_id, const char *group_instance_id);
void rd_kafka_consumer_group_metadata_destroy(rd_kafka_consumer_group_metadata_t *);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_write(const rd_kafka_consumer_group_metadata_t *cgmd, void **bufferp, size_t *sizep);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_read(rd_kafka_consumer_group_metadata_t **cgmdp, const void *buffer, size_t size);
int rd_kafka_produce(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, void *payload, size_t len, const void *key, size_t keylen, void *msg_opaque);
rd_kafka_resp_err_t rd_kafka_producev(rd_kafka_t *rk, ...);
rd_kafka_error_t *rd_kafka_produceva(rd_kafka_t *rk, const rd_kafka_vu_t *vus, size_t cnt);
int rd_kafka_produce_batch(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, rd_kafka_message_t *rkmessages, int message_cnt);
rd_kafka_resp_err_t rd_kafka_flush(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_purge(rd_kafka_t *rk, int purge_flags);
typedef struct rd_kafka_metadata_broker {
  int32_t id;
  char *host;
  int port;
} rd_kafka_metadata_broker_t;
typedef struct rd_kafka_metadata_partition {
  int32_t id;
  rd_kafka_resp_err_t err;
  int32_t leader;
  int replica_cnt;
  int32_t *replicas;
  int isr_cnt;
  int32_t *isrs;
} rd_kafka_metadata_partition_t;
typedef struct rd_kafka_metadata_topic {
  char *topic;
  int partition_cnt;
  struct rd_kafka_metadata_partition *partitions;
  rd_kafka_resp_err_t err;
} rd_kafka_metadata_topic_t;
typedef struct rd_kafka_metadata {
  int broker_cnt;
  struct rd_kafka_metadata_broker *brokers;
  int topic_cnt;
  struct rd_kafka_metadata_topic *topics;
  int32_t orig_broker_id;
  char *orig_broker_name;
} rd_kafka_metadata_t;
rd_kafka_resp_err_t rd_kafka_metadata(rd_kafka_t *rk, int all_topics, rd_kafka_topic_t *only_rkt, const struct rd_kafka_metadata **metadatap, int timeout_ms);
void rd_kafka_metadata_destroy(const struct rd_kafka_metadata *metadata);
typedef struct rd_kafka_Node_s rd_kafka_Node_t;
int rd_kafka_Node_id(const rd_kafka_Node_t *node);
const char *rd_kafka_Node_host(const rd_kafka_Node_t *node);
uint16_t rd_kafka_Node_port(const rd_kafka_Node_t *node);
struct rd_kafka_group_member_info {
  char *member_id;
  char *client_id;
  char *client_host;
  void *member_metadata;
  int member_metadata_size;
  void *member_assignment;
  int member_assignment_size;
};
typedef enum {
  RD_KAFKA_CONSUMER_GROUP_STATE_UNKNOWN = 0,
  RD_KAFKA_CONSUMER_GROUP_STATE_PREPARING_REBALANCE = 1,
  RD_KAFKA_CONSUMER_GROUP_STATE_COMPLETING_REBALANCE = 2,
  RD_KAFKA_CONSUMER_GROUP_STATE_STABLE = 3,
  RD_KAFKA_CONSUMER_GROUP_STATE_DEAD = 4,
  RD_KAFKA_CONSUMER_GROUP_STATE_EMPTY = 5,
  RD_KAFKA_CONSUMER_GROUP_STATE__CNT,
} rd_kafka_consumer_group_state_t;
struct rd_kafka_group_info {
  struct rd_kafka_metadata_broker broker;
  char *group;
  rd_kafka_resp_err_t err;
  char *state;
  char *protocol_type;
  char *protocol;
  struct rd_kafka_group_member_info *members;
  int member_cnt;
};
struct rd_kafka_group_list {
  struct rd_kafka_group_info *groups;
  int group_cnt;
};
rd_kafka_resp_err_t rd_kafka_list_groups(rd_kafka_t *rk, const char *group, const struct rd_kafka_group_list **grplistp, int timeout_ms);
const char *rd_kafka_consumer_group_state_name(rd_kafka_consumer_group_state_t state);
rd_kafka_consumer_group_state_t rd_kafka_consumer_group_state_code(const char *name);
void rd_kafka_group_list_destroy(const struct rd_kafka_group_list *grplist);
int rd_kafka_brokers_add(rd_kafka_t *rk, const char *brokerlist);
void rd_kafka_set_logger(rd_kafka_t *rk, void (*func)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_set_log_level(rd_kafka_t *rk, int level);
void rd_kafka_log_print(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
void rd_kafka_log_syslog(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
int rd_kafka_outq_len(rd_kafka_t *rk);
void rd_kafka_dump(FILE *fp, rd_kafka_t *rk);
int rd_kafka_thread_cnt(void);
typedef enum rd_kafka_thread_type_t {
  RD_KAFKA_THREAD_MAIN,
  RD_KAFKA_THREAD_BACKGROUND,
  RD_KAFKA_THREAD_BROKER,
} rd_kafka_thread_type_t;
int rd_kafka_wait_destroyed(int timeout_ms);
int rd_kafka_unittest(void);
rd_kafka_resp_err_t rd_kafka_poll_set_consumer(rd_kafka_t *rk);
typedef int rd_kafka_event_type_t;
rd_kafka_event_type_t rd_kafka_event_type(const rd_kafka_event_t *rkev);
const char *rd_kafka_event_name(const rd_kafka_event_t *rkev);
void rd_kafka_event_destroy(rd_kafka_event_t *rkev);
const rd_kafka_message_t *rd_kafka_event_message_next(rd_kafka_event_t *rkev);
size_t rd_kafka_event_message_array(rd_kafka_event_t *rkev, const rd_kafka_message_t **rkmessages, size_t size);
size_t rd_kafka_event_message_count(rd_kafka_event_t *rkev);
const char *rd_kafka_event_config_string(rd_kafka_event_t *rkev);
rd_kafka_resp_err_t rd_kafka_event_error(rd_kafka_event_t *rkev);
const char *rd_kafka_event_error_string(rd_kafka_event_t *rkev);
int rd_kafka_event_error_is_fatal(rd_kafka_event_t *rkev);
void *rd_kafka_event_opaque(rd_kafka_event_t *rkev);
int rd_kafka_event_log(rd_kafka_event_t *rkev, const char **fac, const char **str, int *level);
int rd_kafka_event_debug_contexts(rd_kafka_event_t *rkev, char *dst, size_t dstsize);
const char *rd_kafka_event_stats(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_list_t *rd_kafka_event_topic_partition_list(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_t *rd_kafka_event_topic_partition(rd_kafka_event_t *rkev);
typedef rd_kafka_event_t rd_kafka_CreateTopics_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteTopics_result_t;
typedef rd_kafka_event_t rd_kafka_CreateAcls_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeAcls_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteAcls_result_t;
typedef rd_kafka_event_t rd_kafka_CreatePartitions_result_t;
typedef rd_kafka_event_t rd_kafka_AlterConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteRecords_result_t;
typedef rd_kafka_event_t rd_kafka_ListConsumerGroups_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeConsumerGroups_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteGroups_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteConsumerGroupOffsets_result_t;
typedef rd_kafka_event_t rd_kafka_AlterConsumerGroupOffsets_result_t;
typedef rd_kafka_event_t rd_kafka_ListConsumerGroupOffsets_result_t;
const rd_kafka_CreateTopics_result_t *rd_kafka_event_CreateTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteTopics_result_t *rd_kafka_event_DeleteTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_CreatePartitions_result_t *rd_kafka_event_CreatePartitions_result(rd_kafka_event_t *rkev);
const rd_kafka_AlterConfigs_result_t *rd_kafka_event_AlterConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeConfigs_result_t *rd_kafka_event_DescribeConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteRecords_result_t *rd_kafka_event_DeleteRecords_result(rd_kafka_event_t *rkev);
const rd_kafka_ListConsumerGroups_result_t *rd_kafka_event_ListConsumerGroups_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeConsumerGroups_result_t *rd_kafka_event_DescribeConsumerGroups_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteGroups_result_t *rd_kafka_event_DeleteGroups_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteConsumerGroupOffsets_result_t *rd_kafka_event_DeleteConsumerGroupOffsets_result(rd_kafka_event_t *rkev);
const rd_kafka_CreateAcls_result_t *rd_kafka_event_CreateAcls_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeAcls_result_t *rd_kafka_event_DescribeAcls_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteAcls_result_t *rd_kafka_event_DeleteAcls_result(rd_kafka_event_t *rkev);
const rd_kafka_AlterConsumerGroupOffsets_result_t *rd_kafka_event_AlterConsumerGroupOffsets_result(rd_kafka_event_t *rkev);
const rd_kafka_ListConsumerGroupOffsets_result_t *rd_kafka_event_ListConsumerGroupOffsets_result(rd_kafka_event_t *rkev);
rd_kafka_event_t *rd_kafka_queue_poll(rd_kafka_queue_t *rkqu, int timeout_ms);
int rd_kafka_queue_poll_callback(rd_kafka_queue_t *rkqu, int timeout_ms);
typedef rd_kafka_resp_err_t (rd_kafka_plugin_f_conf_init_t)(rd_kafka_conf_t *conf, void **plug_opaquep, char *errstr, size_t errstr_size);
typedef rd_kafka_conf_res_t (rd_kafka_interceptor_f_on_conf_set_t)(rd_kafka_conf_t *conf, const char *name, const char *val, char *errstr, size_t errstr_size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_dup_t)(rd_kafka_conf_t *new_conf, const rd_kafka_conf_t *old_conf, size_t filter_cnt, const char **filter, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_destroy_t)(void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_new_t)(rd_kafka_t *rk, const rd_kafka_conf_t *conf, void *ic_opaque, char *errstr, size_t errstr_size);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_destroy_t)(rd_kafka_t *rk, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_send_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_acknowledgement_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_consume_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_commit_t)(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_request_sent_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_response_received_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, int64_t rtt, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_start_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_exit_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_broker_state_change_t)(rd_kafka_t *rk, int32_t broker_id, const char *secproto, const char *name, int port, const char *state, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_set(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_set_t *on_conf_set, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_dup(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_dup_t *on_conf_dup, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_destroy(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_destroy_t *on_conf_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_new(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_new_t *on_new, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_destroy(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_destroy_t *on_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_send(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_send_t *on_send, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_acknowledgement(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_acknowledgement_t *on_acknowledgement, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_consume(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_consume_t *on_consume, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_commit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_commit_t *on_commit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_request_sent(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_request_sent_t *on_request_sent, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_response_received(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_response_received_t *on_response_received, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_start(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_start_t *on_thread_start, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_exit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_exit_t *on_thread_exit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_broker_state_change(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_broker_state_change_t *on_broker_state_change, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_topic_result_error(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_error_string(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_name(const rd_kafka_topic_result_t *topicres);
const rd_kafka_error_t *rd_kafka_group_result_error(const rd_kafka_group_result_t *groupres);
const char *rd_kafka_group_result_name(const rd_kafka_group_result_t *groupres);
const rd_kafka_topic_partition_list_t *rd_kafka_group_result_partitions(const rd_kafka_group_result_t *groupres);
typedef enum rd_kafka_admin_op_t {
  RD_KAFKA_ADMIN_OP_ANY = 0,
  RD_KAFKA_ADMIN_OP_CREATETOPICS,
  RD_KAFKA_ADMIN_OP_DELETETOPICS,
  RD_KAFKA_ADMIN_OP_CREATEPARTITIONS,
  RD_KAFKA_ADMIN_OP_ALTERCONFIGS,
  RD_KAFKA_ADMIN_OP_DESCRIBECONFIGS,
  RD_KAFKA_ADMIN_OP_DELETERECORDS,
  RD_KAFKA_ADMIN_OP_DELETEGROUPS,
  RD_KAFKA_ADMIN_OP_DELETECONSUMERGROUPOFFSETS,
  RD_KAFKA_ADMIN_OP_CREATEACLS,
  RD_KAFKA_ADMIN_OP_DESCRIBEACLS,
  RD_KAFKA_ADMIN_OP_DELETEACLS,
  RD_KAFKA_ADMIN_OP_LISTCONSUMERGROUPS,
  RD_KAFKA_ADMIN_OP_DESCRIBECONSUMERGROUPS,
  RD_KAFKA_ADMIN_OP_LISTCONSUMERGROUPOFFSETS,
  RD_KAFKA_ADMIN_OP_ALTERCONSUMERGROUPOFFSETS,
  RD_KAFKA_ADMIN_OP__CNT,
} rd_kafka_admin_op_t;
typedef struct rd_kafka_AdminOptions_s rd_kafka_AdminOptions_t;
rd_kafka_AdminOptions_t *rd_kafka_AdminOptions_new(rd_kafka_t *rk, rd_kafka_admin_op_t for_api);
void rd_kafka_AdminOptions_destroy(rd_kafka_AdminOptions_t *options);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_request_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_operation_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_validate_only(rd_kafka_AdminOptions_t *options, int true_or_false, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_broker(rd_kafka_AdminOptions_t *options, int32_t broker_id, char *errstr, size_t errstr_size);
rd_kafka_error_t *rd_kafka_AdminOptions_set_require_stable_offsets(rd_kafka_AdminOptions_t *options, int true_or_false);
rd_kafka_error_t *rd_kafka_AdminOptions_set_match_consumer_group_states(rd_kafka_AdminOptions_t *options, const rd_kafka_consumer_group_state_t *consumer_group_states, size_t consumer_group_states_cnt);
void rd_kafka_AdminOptions_set_opaque(rd_kafka_AdminOptions_t *options, void *ev_opaque);
typedef struct rd_kafka_NewTopic_s rd_kafka_NewTopic_t;
rd_kafka_NewTopic_t *rd_kafka_NewTopic_new(const char *topic, int num_partitions, int replication_factor, char *errstr, size_t errstr_size);
void rd_kafka_NewTopic_destroy(rd_kafka_NewTopic_t *new_topic);
void rd_kafka_NewTopic_destroy_array(rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_replica_assignment(rd_kafka_NewTopic_t *new_topic, int32_t partition, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_config(rd_kafka_NewTopic_t *new_topic, const char *name, const char *value);
void rd_kafka_CreateTopics(rd_kafka_t *rk, rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreateTopics_result_topics(const rd_kafka_CreateTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteTopic_s rd_kafka_DeleteTopic_t;
rd_kafka_DeleteTopic_t *rd_kafka_DeleteTopic_new(const char *topic);
void rd_kafka_DeleteTopic_destroy(rd_kafka_DeleteTopic_t *del_topic);
void rd_kafka_DeleteTopic_destroy_array(rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt);
void rd_kafka_DeleteTopics(rd_kafka_t *rk, rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_DeleteTopics_result_topics(const rd_kafka_DeleteTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_NewPartitions_s rd_kafka_NewPartitions_t;
rd_kafka_NewPartitions_t *rd_kafka_NewPartitions_new(const char *topic, size_t new_total_cnt, char *errstr, size_t errstr_size);
void rd_kafka_NewPartitions_destroy(rd_kafka_NewPartitions_t *new_parts);
void rd_kafka_NewPartitions_destroy_array(rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt);
rd_kafka_resp_err_t rd_kafka_NewPartitions_set_replica_assignment(rd_kafka_NewPartitions_t *new_parts, int32_t new_partition_idx, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
void rd_kafka_CreatePartitions(rd_kafka_t *rk, rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreatePartitions_result_topics(const rd_kafka_CreatePartitions_result_t *result, size_t *cntp);
typedef enum rd_kafka_ConfigSource_t {
  RD_KAFKA_CONFIG_SOURCE_UNKNOWN_CONFIG = 0,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG = 1,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG = 2,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG = 3,
  RD_KAFKA_CONFIG_SOURCE_STATIC_BROKER_CONFIG = 4,
  RD_KAFKA_CONFIG_SOURCE_DEFAULT_CONFIG = 5,
  RD_KAFKA_CONFIG_SOURCE__CNT,
} rd_kafka_ConfigSource_t;
const char *rd_kafka_ConfigSource_name(rd_kafka_ConfigSource_t confsource);
typedef struct rd_kafka_ConfigEntry_s rd_kafka_ConfigEntry_t;
const char *rd_kafka_ConfigEntry_name(const rd_kafka_ConfigEntry_t *entry);
const char *rd_kafka_ConfigEntry_value(const rd_kafka_ConfigEntry_t *entry);
rd_kafka_ConfigSource_t rd_kafka_ConfigEntry_source(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_read_only(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_default(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_sensitive(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_synonym(const rd_kafka_ConfigEntry_t *entry);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigEntry_synonyms(const rd_kafka_ConfigEntry_t *entry, size_t *cntp);
typedef enum rd_kafka_ResourceType_t {
  RD_KAFKA_RESOURCE_UNKNOWN = 0,
  RD_KAFKA_RESOURCE_ANY = 1,
  RD_KAFKA_RESOURCE_TOPIC = 2,
  RD_KAFKA_RESOURCE_GROUP = 3,
  RD_KAFKA_RESOURCE_BROKER = 4,
  RD_KAFKA_RESOURCE__CNT,
} rd_kafka_ResourceType_t;
typedef enum rd_kafka_ResourcePatternType_t {
  RD_KAFKA_RESOURCE_PATTERN_UNKNOWN = 0,
  RD_KAFKA_RESOURCE_PATTERN_ANY = 1,
  RD_KAFKA_RESOURCE_PATTERN_MATCH = 2,
  RD_KAFKA_RESOURCE_PATTERN_LITERAL = 3,
  RD_KAFKA_RESOURCE_PATTERN_PREFIXED = 4,
  RD_KAFKA_RESOURCE_PATTERN_TYPE__CNT,
} rd_kafka_ResourcePatternType_t;
const char *rd_kafka_ResourcePatternType_name(rd_kafka_ResourcePatternType_t resource_pattern_type);
const char *rd_kafka_ResourceType_name(rd_kafka_ResourceType_t restype);
typedef struct rd_kafka_ConfigResource_s rd_kafka_ConfigResource_t;
rd_kafka_ConfigResource_t *rd_kafka_ConfigResource_new(rd_kafka_ResourceType_t restype, const char *resname);
void rd_kafka_ConfigResource_destroy(rd_kafka_ConfigResource_t *config);
void rd_kafka_ConfigResource_destroy_array(rd_kafka_ConfigResource_t **config, size_t config_cnt);
rd_kafka_resp_err_t rd_kafka_ConfigResource_set_config(rd_kafka_ConfigResource_t *config, const char *name, const char *value);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigResource_configs(const rd_kafka_ConfigResource_t *config, size_t *cntp);
rd_kafka_ResourceType_t rd_kafka_ConfigResource_type(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_name(const rd_kafka_ConfigResource_t *config);
rd_kafka_resp_err_t rd_kafka_ConfigResource_error(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_error_string(const rd_kafka_ConfigResource_t *config);
void rd_kafka_AlterConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_AlterConfigs_result_resources(const rd_kafka_AlterConfigs_result_t *result, size_t *cntp);
void rd_kafka_DescribeConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_DescribeConfigs_result_resources(const rd_kafka_DescribeConfigs_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteRecords_s rd_kafka_DeleteRecords_t;
rd_kafka_DeleteRecords_t *rd_kafka_DeleteRecords_new(const rd_kafka_topic_partition_list_t *before_offsets);
void rd_kafka_DeleteRecords_destroy(rd_kafka_DeleteRecords_t *del_records);
void rd_kafka_DeleteRecords_destroy_array(rd_kafka_DeleteRecords_t **del_records, size_t del_record_cnt);
void rd_kafka_DeleteRecords(rd_kafka_t *rk, rd_kafka_DeleteRecords_t **del_records, size_t del_record_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_partition_list_t *rd_kafka_DeleteRecords_result_offsets(const rd_kafka_DeleteRecords_result_t *result);
typedef struct rd_kafka_ConsumerGroupListing_s rd_kafka_ConsumerGroupListing_t;
typedef struct rd_kafka_ListConsumerGroupsResult_s rd_kafka_ListConsumerGroupsResult_t;
void rd_kafka_ListConsumerGroups(rd_kafka_t *rk, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const char *rd_kafka_ConsumerGroupListing_group_id(const rd_kafka_ConsumerGroupListing_t *grplist);
int rd_kafka_ConsumerGroupListing_is_simple_consumer_group(const rd_kafka_ConsumerGroupListing_t *grplist);
rd_kafka_consumer_group_state_t rd_kafka_ConsumerGroupListing_state(const rd_kafka_ConsumerGroupListing_t *grplist);
const rd_kafka_ConsumerGroupListing_t **rd_kafka_ListConsumerGroups_result_valid(const rd_kafka_ListConsumerGroups_result_t *result, size_t *cntp);
const rd_kafka_error_t **rd_kafka_ListConsumerGroups_result_errors(const rd_kafka_ListConsumerGroups_result_t *result, size_t *cntp);
typedef struct rd_kafka_ConsumerGroupDescription_s rd_kafka_ConsumerGroupDescription_t;
typedef struct rd_kafka_MemberDescription_s rd_kafka_MemberDescription_t;
typedef struct rd_kafka_MemberAssignment_s rd_kafka_MemberAssignment_t;
void rd_kafka_DescribeConsumerGroups(rd_kafka_t *rk, const char **groups, size_t groups_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConsumerGroupDescription_t **rd_kafka_DescribeConsumerGroups_result_groups(const rd_kafka_DescribeConsumerGroups_result_t *result, size_t *cntp);
const char *rd_kafka_ConsumerGroupDescription_group_id(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
const rd_kafka_error_t *rd_kafka_ConsumerGroupDescription_error(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
int rd_kafka_ConsumerGroupDescription_is_simple_consumer_group(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
const char *rd_kafka_ConsumerGroupDescription_partition_assignor(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
rd_kafka_consumer_group_state_t rd_kafka_ConsumerGroupDescription_state(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
const rd_kafka_Node_t *rd_kafka_ConsumerGroupDescription_coordinator(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
size_t rd_kafka_ConsumerGroupDescription_member_count(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
const rd_kafka_MemberDescription_t *rd_kafka_ConsumerGroupDescription_member(const rd_kafka_ConsumerGroupDescription_t *grpdesc, size_t idx);
const char *rd_kafka_MemberDescription_client_id(const rd_kafka_MemberDescription_t *member);
const char *rd_kafka_MemberDescription_group_instance_id(const rd_kafka_MemberDescription_t *member);
const char *rd_kafka_MemberDescription_consumer_id(const rd_kafka_MemberDescription_t *member);
const char *rd_kafka_MemberDescription_host(const rd_kafka_MemberDescription_t *member);
const rd_kafka_MemberAssignment_t *rd_kafka_MemberDescription_assignment(const rd_kafka_MemberDescription_t *member);
const rd_kafka_topic_partition_list_t *rd_kafka_MemberAssignment_partitions(const rd_kafka_MemberAssignment_t *assignment);
typedef struct rd_kafka_DeleteGroup_s rd_kafka_DeleteGroup_t;
rd_kafka_DeleteGroup_t *rd_kafka_DeleteGroup_new(const char *group);
void rd_kafka_DeleteGroup_destroy(rd_kafka_DeleteGroup_t *del_group);
void rd_kafka_DeleteGroup_destroy_array(rd_kafka_DeleteGroup_t **del_groups, size_t del_group_cnt);
void rd_kafka_DeleteGroups(rd_kafka_t *rk, rd_kafka_DeleteGroup_t **del_groups, size_t del_group_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_DeleteGroups_result_groups(const rd_kafka_DeleteGroups_result_t *result, size_t *cntp);
typedef struct rd_kafka_ListConsumerGroupOffsets_s rd_kafka_ListConsumerGroupOffsets_t;
rd_kafka_ListConsumerGroupOffsets_t *rd_kafka_ListConsumerGroupOffsets_new(const char *group_id, const rd_kafka_topic_partition_list_t *partitions);
void rd_kafka_ListConsumerGroupOffsets_destroy(rd_kafka_ListConsumerGroupOffsets_t *list_grpoffsets);
void rd_kafka_ListConsumerGroupOffsets_destroy_array(rd_kafka_ListConsumerGroupOffsets_t **list_grpoffsets, size_t list_grpoffset_cnt);
void rd_kafka_ListConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_ListConsumerGroupOffsets_t **list_grpoffsets, size_t list_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_ListConsumerGroupOffsets_result_groups(const rd_kafka_ListConsumerGroupOffsets_result_t *result, size_t *cntp);
typedef struct rd_kafka_AlterConsumerGroupOffsets_s rd_kafka_AlterConsumerGroupOffsets_t;
rd_kafka_AlterConsumerGroupOffsets_t *rd_kafka_AlterConsumerGroupOffsets_new(const char *group_id, const rd_kafka_topic_partition_list_t *partitions);
void rd_kafka_AlterConsumerGroupOffsets_destroy(rd_kafka_AlterConsumerGroupOffsets_t *alter_grpoffsets);
void rd_kafka_AlterConsumerGroupOffsets_destroy_array(rd_kafka_AlterConsumerGroupOffsets_t **alter_grpoffsets, size_t alter_grpoffset_cnt);
void rd_kafka_AlterConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_AlterConsumerGroupOffsets_t **alter_grpoffsets, size_t alter_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_AlterConsumerGroupOffsets_result_groups(const rd_kafka_AlterConsumerGroupOffsets_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteConsumerGroupOffsets_s rd_kafka_DeleteConsumerGroupOffsets_t;
rd_kafka_DeleteConsumerGroupOffsets_t *rd_kafka_DeleteConsumerGroupOffsets_new(const char *group, const rd_kafka_topic_partition_list_t *partitions);
void rd_kafka_DeleteConsumerGroupOffsets_destroy(rd_kafka_DeleteConsumerGroupOffsets_t *del_grpoffsets);
void rd_kafka_DeleteConsumerGroupOffsets_destroy_array(rd_kafka_DeleteConsumerGroupOffsets_t **del_grpoffsets, size_t del_grpoffset_cnt);
void rd_kafka_DeleteConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_DeleteConsumerGroupOffsets_t **del_grpoffsets, size_t del_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_DeleteConsumerGroupOffsets_result_groups(const rd_kafka_DeleteConsumerGroupOffsets_result_t *result, size_t *cntp);
typedef struct rd_kafka_AclBinding_s rd_kafka_AclBinding_t;
typedef rd_kafka_AclBinding_t rd_kafka_AclBindingFilter_t;
const rd_kafka_error_t *rd_kafka_acl_result_error(const rd_kafka_acl_result_t *aclres);
typedef enum rd_kafka_AclOperation_t {
  RD_KAFKA_ACL_OPERATION_UNKNOWN = 0,
  RD_KAFKA_ACL_OPERATION_ANY = 1,
  RD_KAFKA_ACL_OPERATION_ALL = 2,
  RD_KAFKA_ACL_OPERATION_READ = 3,
  RD_KAFKA_ACL_OPERATION_WRITE = 4,
  RD_KAFKA_ACL_OPERATION_CREATE = 5,
  RD_KAFKA_ACL_OPERATION_DELETE = 6,
  RD_KAFKA_ACL_OPERATION_ALTER = 7,
  RD_KAFKA_ACL_OPERATION_DESCRIBE = 8,
  RD_KAFKA_ACL_OPERATION_CLUSTER_ACTION = 9,
  RD_KAFKA_ACL_OPERATION_DESCRIBE_CONFIGS = 10,
  RD_KAFKA_ACL_OPERATION_ALTER_CONFIGS = 11,
  RD_KAFKA_ACL_OPERATION_IDEMPOTENT_WRITE = 12,
  RD_KAFKA_ACL_OPERATION__CNT,
} rd_kafka_AclOperation_t;
const char *rd_kafka_AclOperation_name(rd_kafka_AclOperation_t acl_operation);
typedef enum rd_kafka_AclPermissionType_t {
  RD_KAFKA_ACL_PERMISSION_TYPE_UNKNOWN = 0,
  RD_KAFKA_ACL_PERMISSION_TYPE_ANY = 1,
  RD_KAFKA_ACL_PERMISSION_TYPE_DENY = 2,
  RD_KAFKA_ACL_PERMISSION_TYPE_ALLOW = 3,
  RD_KAFKA_ACL_PERMISSION_TYPE__CNT,
} rd_kafka_AclPermissionType_t;
const char *rd_kafka_AclPermissionType_name(rd_kafka_AclPermissionType_t acl_permission_type);
rd_kafka_AclBinding_t *rd_kafka_AclBinding_new(rd_kafka_ResourceType_t restype, const char *name, rd_kafka_ResourcePatternType_t resource_pattern_type, const char *principal, const char *host, rd_kafka_AclOperation_t operation, rd_kafka_AclPermissionType_t permission_type, char *errstr, size_t errstr_size);
rd_kafka_AclBindingFilter_t *rd_kafka_AclBindingFilter_new(rd_kafka_ResourceType_t restype, const char *name, rd_kafka_ResourcePatternType_t resource_pattern_type, const char *principal, const char *host, rd_kafka_AclOperation_t operation, rd_kafka_AclPermissionType_t permission_type, char *errstr, size_t errstr_size);
rd_kafka_ResourceType_t rd_kafka_AclBinding_restype(const rd_kafka_AclBinding_t *acl);
const char *rd_kafka_AclBinding_name(const rd_kafka_AclBinding_t *acl);
const char *rd_kafka_AclBinding_principal(const rd_kafka_AclBinding_t *acl);
const char *rd_kafka_AclBinding_host(const rd_kafka_AclBinding_t *acl);
rd_kafka_AclOperation_t rd_kafka_AclBinding_operation(const rd_kafka_AclBinding_t *acl);
rd_kafka_AclPermissionType_t rd_kafka_AclBinding_permission_type(const rd_kafka_AclBinding_t *acl);
rd_kafka_ResourcePatternType_t rd_kafka_AclBinding_resource_pattern_type(const rd_kafka_AclBinding_t *acl);
const rd_kafka_error_t *rd_kafka_AclBinding_error(const rd_kafka_AclBinding_t *acl);
void rd_kafka_AclBinding_destroy(rd_kafka_AclBinding_t *acl_binding);
void rd_kafka_AclBinding_destroy_array(rd_kafka_AclBinding_t **acl_bindings, size_t acl_bindings_cnt);
const rd_kafka_acl_result_t **rd_kafka_CreateAcls_result_acls(const rd_kafka_CreateAcls_result_t *result, size_t *cntp);
void rd_kafka_CreateAcls(rd_kafka_t *rk, rd_kafka_AclBinding_t **new_acls, size_t new_acls_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_AclBinding_t **rd_kafka_DescribeAcls_result_acls(const rd_kafka_DescribeAcls_result_t *result, size_t *cntp);
void rd_kafka_DescribeAcls(rd_kafka_t *rk, rd_kafka_AclBindingFilter_t *acl_filter, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
typedef struct rd_kafka_DeleteAcls_result_response_s rd_kafka_DeleteAcls_result_response_t;
const rd_kafka_DeleteAcls_result_response_t **rd_kafka_DeleteAcls_result_responses(const rd_kafka_DeleteAcls_result_t *result, size_t *cntp);
const rd_kafka_error_t *rd_kafka_DeleteAcls_result_response_error(const rd_kafka_DeleteAcls_result_response_t *result_response);
const rd_kafka_AclBinding_t **rd_kafka_DeleteAcls_result_response_matching_acls(const rd_kafka_DeleteAcls_result_response_t *result_response, size_t *matching_acls_cntp);
void rd_kafka_DeleteAcls(rd_kafka_t *rk, rd_kafka_AclBindingFilter_t **del_acls, size_t del_acls_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token(rd_kafka_t *rk, const char *token_value, int64_t md_lifetime_ms, const char *md_principal_name, const char **extensions, size_t extension_size, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token_failure(rd_kafka_t *rk, const char *errstr);
rd_kafka_error_t *rd_kafka_init_transactions(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_begin_transaction(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_send_offsets_to_transaction(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, const rd_kafka_consumer_group_metadata_t *cgmetadata, int timeout_ms);
rd_kafka_error_t *rd_kafka_commit_transaction(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_abort_transaction(rd_kafka_t *rk, int timeout_ms);
typedef struct rd_kafka_mock_cluster_s rd_kafka_mock_cluster_t;
rd_kafka_mock_cluster_t *rd_kafka_mock_cluster_new(rd_kafka_t *rk, int broker_cnt);
void rd_kafka_mock_cluster_destroy(rd_kafka_mock_cluster_t *mcluster);
rd_kafka_t *rd_kafka_mock_cluster_handle(const rd_kafka_mock_cluster_t *mcluster);
rd_kafka_mock_cluster_t *rd_kafka_handle_mock_cluster(const rd_kafka_t *rk);
const char *rd_kafka_mock_cluster_bootstraps(const rd_kafka_mock_cluster_t *mcluster);
void rd_kafka_mock_clear_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey);
void rd_kafka_mock_push_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, ...);
void rd_kafka_mock_push_request_errors_array(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, const rd_kafka_resp_err_t *errors);
rd_kafka_resp_err_t rd_kafka_mock_broker_push_request_error_rtts(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int16_t ApiKey, size_t cnt, ...);
rd_kafka_resp_err_t rd_kafka_mock_broker_error_stack_cnt(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int16_t ApiKey, size_t *cntp);
void rd_kafka_mock_topic_set_error(rd_kafka_mock_cluster_t *mcluster, const char *topic, rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_mock_topic_create(rd_kafka_mock_cluster_t *mcluster, const char *topic, int partition_cnt, int replication_factor);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_leader(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower_wmarks(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int64_t lo, int64_t hi);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_down(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_up(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rtt(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int rtt_ms);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rack(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, const char *rack);
rd_kafka_resp_err_t rd_kafka_mock_coordinator_set(rd_kafka_mock_cluster_t *mcluster, const char *key_type, const char *key, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_set_apiversion(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, int16_t MinVersion, int16_t MaxVersion);
'
rdkafka.h, rdkafka_mock.h

RD_KAFKA_VERSION

public RD_KAFKA_VERSION = 33554687

librdkafka version

Interpreted as hex MM.mm.rr.xx:

  • MM = Major
  • mm = minor
  • rr = revision
  • xx = pre-release id (0xff is the final release)

E.g.: 0x000801ff = 0.8.1

Remarks
This value should only be used during compile time, for runtime checks of version use rd_kafka_version()

RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE

public RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76

Unsupported compression type

RD_KAFKA_RESP_ERR_END_ALL

public RD_KAFKA_RESP_ERR_END_ALL = 98
enum rd_kafka_resp_err_t

RD_KAFKA_ADMIN_OP__CNT

public RD_KAFKA_ADMIN_OP__CNT = 16

Number of ops defined

RD_KAFKA_CDEF

public RD_KAFKA_CDEF = 'typedef long int ssize_t;
typedef struct _IO_FILE FILE;
typedef long int mode_t;
typedef signed int int16_t;
typedef unsigned int uint16_t;
typedef signed int int32_t;
typedef signed long int int64_t;
int rd_kafka_version(void);
const char *rd_kafka_version_str(void);
typedef enum rd_kafka_type_t {
  RD_KAFKA_PRODUCER,
  RD_KAFKA_CONSUMER,
} rd_kafka_type_t;
typedef enum rd_kafka_timestamp_type_t {
  RD_KAFKA_TIMESTAMP_NOT_AVAILABLE,
  RD_KAFKA_TIMESTAMP_CREATE_TIME,
  RD_KAFKA_TIMESTAMP_LOG_APPEND_TIME,
} rd_kafka_timestamp_type_t;
const char *rd_kafka_get_debug_contexts(void);
typedef struct rd_kafka_s rd_kafka_t;
typedef struct rd_kafka_topic_s rd_kafka_topic_t;
typedef struct rd_kafka_conf_s rd_kafka_conf_t;
typedef struct rd_kafka_topic_conf_s rd_kafka_topic_conf_t;
typedef struct rd_kafka_queue_s rd_kafka_queue_t;
typedef struct rd_kafka_op_s rd_kafka_event_t;
typedef struct rd_kafka_topic_result_s rd_kafka_topic_result_t;
typedef struct rd_kafka_consumer_group_metadata_s rd_kafka_consumer_group_metadata_t;
typedef struct rd_kafka_error_s {
  unsigned int code;
  char *errstr;
  unsigned char fatal;
  unsigned char retriable;
  unsigned char txn_requires_abort;
} rd_kafka_error_t;
typedef struct rd_kafka_headers_s rd_kafka_headers_t;
typedef struct rd_kafka_group_result_s rd_kafka_group_result_t;
typedef struct rd_kafka_acl_result_s rd_kafka_acl_result_t;
typedef enum {
  RD_KAFKA_RESP_ERR__BEGIN = (- 200),
  RD_KAFKA_RESP_ERR__BAD_MSG = (- 199),
  RD_KAFKA_RESP_ERR__BAD_COMPRESSION = (- 198),
  RD_KAFKA_RESP_ERR__DESTROY = (- 197),
  RD_KAFKA_RESP_ERR__FAIL = (- 196),
  RD_KAFKA_RESP_ERR__TRANSPORT = (- 195),
  RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE = (- 194),
  RD_KAFKA_RESP_ERR__RESOLVE = (- 193),
  RD_KAFKA_RESP_ERR__MSG_TIMED_OUT = (- 192),
  RD_KAFKA_RESP_ERR__PARTITION_EOF = (- 191),
  RD_KAFKA_RESP_ERR__UNKNOWN_PARTITION = (- 190),
  RD_KAFKA_RESP_ERR__FS = (- 189),
  RD_KAFKA_RESP_ERR__UNKNOWN_TOPIC = (- 188),
  RD_KAFKA_RESP_ERR__ALL_BROKERS_DOWN = (- 187),
  RD_KAFKA_RESP_ERR__INVALID_ARG = (- 186),
  RD_KAFKA_RESP_ERR__TIMED_OUT = (- 185),
  RD_KAFKA_RESP_ERR__QUEUE_FULL = (- 184),
  RD_KAFKA_RESP_ERR__ISR_INSUFF = (- 183),
  RD_KAFKA_RESP_ERR__NODE_UPDATE = (- 182),
  RD_KAFKA_RESP_ERR__SSL = (- 181),
  RD_KAFKA_RESP_ERR__WAIT_COORD = (- 180),
  RD_KAFKA_RESP_ERR__UNKNOWN_GROUP = (- 179),
  RD_KAFKA_RESP_ERR__IN_PROGRESS = (- 178),
  RD_KAFKA_RESP_ERR__PREV_IN_PROGRESS = (- 177),
  RD_KAFKA_RESP_ERR__EXISTING_SUBSCRIPTION = (- 176),
  RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS = (- 175),
  RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS = (- 174),
  RD_KAFKA_RESP_ERR__CONFLICT = (- 173),
  RD_KAFKA_RESP_ERR__STATE = (- 172),
  RD_KAFKA_RESP_ERR__UNKNOWN_PROTOCOL = (- 171),
  RD_KAFKA_RESP_ERR__NOT_IMPLEMENTED = (- 170),
  RD_KAFKA_RESP_ERR__AUTHENTICATION = (- 169),
  RD_KAFKA_RESP_ERR__NO_OFFSET = (- 168),
  RD_KAFKA_RESP_ERR__OUTDATED = (- 167),
  RD_KAFKA_RESP_ERR__TIMED_OUT_QUEUE = (- 166),
  RD_KAFKA_RESP_ERR__UNSUPPORTED_FEATURE = (- 165),
  RD_KAFKA_RESP_ERR__WAIT_CACHE = (- 164),
  RD_KAFKA_RESP_ERR__INTR = (- 163),
  RD_KAFKA_RESP_ERR__KEY_SERIALIZATION = (- 162),
  RD_KAFKA_RESP_ERR__VALUE_SERIALIZATION = (- 161),
  RD_KAFKA_RESP_ERR__KEY_DESERIALIZATION = (- 160),
  RD_KAFKA_RESP_ERR__VALUE_DESERIALIZATION = (- 159),
  RD_KAFKA_RESP_ERR__PARTIAL = (- 158),
  RD_KAFKA_RESP_ERR__READ_ONLY = (- 157),
  RD_KAFKA_RESP_ERR__NOENT = (- 156),
  RD_KAFKA_RESP_ERR__UNDERFLOW = (- 155),
  RD_KAFKA_RESP_ERR__INVALID_TYPE = (- 154),
  RD_KAFKA_RESP_ERR__RETRY = (- 153),
  RD_KAFKA_RESP_ERR__PURGE_QUEUE = (- 152),
  RD_KAFKA_RESP_ERR__PURGE_INFLIGHT = (- 151),
  RD_KAFKA_RESP_ERR__FATAL = (- 150),
  RD_KAFKA_RESP_ERR__INCONSISTENT = (- 149),
  RD_KAFKA_RESP_ERR__GAPLESS_GUARANTEE = (- 148),
  RD_KAFKA_RESP_ERR__MAX_POLL_EXCEEDED = (- 147),
  RD_KAFKA_RESP_ERR__UNKNOWN_BROKER = (- 146),
  RD_KAFKA_RESP_ERR__NOT_CONFIGURED = (- 145),
  RD_KAFKA_RESP_ERR__FENCED = (- 144),
  RD_KAFKA_RESP_ERR__APPLICATION = (- 143),
  RD_KAFKA_RESP_ERR__ASSIGNMENT_LOST = (- 142),
  RD_KAFKA_RESP_ERR__NOOP = (- 141),
  RD_KAFKA_RESP_ERR__AUTO_OFFSET_RESET = (- 140),
  RD_KAFKA_RESP_ERR__END = (- 100),
  RD_KAFKA_RESP_ERR_UNKNOWN = (- 1),
  RD_KAFKA_RESP_ERR_NO_ERROR = 0,
  RD_KAFKA_RESP_ERR_OFFSET_OUT_OF_RANGE = 1,
  RD_KAFKA_RESP_ERR_INVALID_MSG = 2,
  RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_OR_PART = 3,
  RD_KAFKA_RESP_ERR_INVALID_MSG_SIZE = 4,
  RD_KAFKA_RESP_ERR_LEADER_NOT_AVAILABLE = 5,
  RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION = 6,
  RD_KAFKA_RESP_ERR_REQUEST_TIMED_OUT = 7,
  RD_KAFKA_RESP_ERR_BROKER_NOT_AVAILABLE = 8,
  RD_KAFKA_RESP_ERR_REPLICA_NOT_AVAILABLE = 9,
  RD_KAFKA_RESP_ERR_MSG_SIZE_TOO_LARGE = 10,
  RD_KAFKA_RESP_ERR_STALE_CTRL_EPOCH = 11,
  RD_KAFKA_RESP_ERR_OFFSET_METADATA_TOO_LARGE = 12,
  RD_KAFKA_RESP_ERR_NETWORK_EXCEPTION = 13,
  RD_KAFKA_RESP_ERR_COORDINATOR_LOAD_IN_PROGRESS = 14,
  RD_KAFKA_RESP_ERR_COORDINATOR_NOT_AVAILABLE = 15,
  RD_KAFKA_RESP_ERR_NOT_COORDINATOR = 16,
  RD_KAFKA_RESP_ERR_TOPIC_EXCEPTION = 17,
  RD_KAFKA_RESP_ERR_RECORD_LIST_TOO_LARGE = 18,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS = 19,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS_AFTER_APPEND = 20,
  RD_KAFKA_RESP_ERR_INVALID_REQUIRED_ACKS = 21,
  RD_KAFKA_RESP_ERR_ILLEGAL_GENERATION = 22,
  RD_KAFKA_RESP_ERR_INCONSISTENT_GROUP_PROTOCOL = 23,
  RD_KAFKA_RESP_ERR_INVALID_GROUP_ID = 24,
  RD_KAFKA_RESP_ERR_UNKNOWN_MEMBER_ID = 25,
  RD_KAFKA_RESP_ERR_INVALID_SESSION_TIMEOUT = 26,
  RD_KAFKA_RESP_ERR_REBALANCE_IN_PROGRESS = 27,
  RD_KAFKA_RESP_ERR_INVALID_COMMIT_OFFSET_SIZE = 28,
  RD_KAFKA_RESP_ERR_TOPIC_AUTHORIZATION_FAILED = 29,
  RD_KAFKA_RESP_ERR_GROUP_AUTHORIZATION_FAILED = 30,
  RD_KAFKA_RESP_ERR_CLUSTER_AUTHORIZATION_FAILED = 31,
  RD_KAFKA_RESP_ERR_INVALID_TIMESTAMP = 32,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_SASL_MECHANISM = 33,
  RD_KAFKA_RESP_ERR_ILLEGAL_SASL_STATE = 34,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_VERSION = 35,
  RD_KAFKA_RESP_ERR_TOPIC_ALREADY_EXISTS = 36,
  RD_KAFKA_RESP_ERR_INVALID_PARTITIONS = 37,
  RD_KAFKA_RESP_ERR_INVALID_REPLICATION_FACTOR = 38,
  RD_KAFKA_RESP_ERR_INVALID_REPLICA_ASSIGNMENT = 39,
  RD_KAFKA_RESP_ERR_INVALID_CONFIG = 40,
  RD_KAFKA_RESP_ERR_NOT_CONTROLLER = 41,
  RD_KAFKA_RESP_ERR_INVALID_REQUEST = 42,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_FOR_MESSAGE_FORMAT = 43,
  RD_KAFKA_RESP_ERR_POLICY_VIOLATION = 44,
  RD_KAFKA_RESP_ERR_OUT_OF_ORDER_SEQUENCE_NUMBER = 45,
  RD_KAFKA_RESP_ERR_DUPLICATE_SEQUENCE_NUMBER = 46,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_EPOCH = 47,
  RD_KAFKA_RESP_ERR_INVALID_TXN_STATE = 48,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_ID_MAPPING = 49,
  RD_KAFKA_RESP_ERR_INVALID_TRANSACTION_TIMEOUT = 50,
  RD_KAFKA_RESP_ERR_CONCURRENT_TRANSACTIONS = 51,
  RD_KAFKA_RESP_ERR_TRANSACTION_COORDINATOR_FENCED = 52,
  RD_KAFKA_RESP_ERR_TRANSACTIONAL_ID_AUTHORIZATION_FAILED = 53,
  RD_KAFKA_RESP_ERR_SECURITY_DISABLED = 54,
  RD_KAFKA_RESP_ERR_OPERATION_NOT_ATTEMPTED = 55,
  RD_KAFKA_RESP_ERR_KAFKA_STORAGE_ERROR = 56,
  RD_KAFKA_RESP_ERR_LOG_DIR_NOT_FOUND = 57,
  RD_KAFKA_RESP_ERR_SASL_AUTHENTICATION_FAILED = 58,
  RD_KAFKA_RESP_ERR_UNKNOWN_PRODUCER_ID = 59,
  RD_KAFKA_RESP_ERR_REASSIGNMENT_IN_PROGRESS = 60,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTH_DISABLED = 61,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_NOT_FOUND = 62,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_OWNER_MISMATCH = 63,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_REQUEST_NOT_ALLOWED = 64,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTHORIZATION_FAILED = 65,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_EXPIRED = 66,
  RD_KAFKA_RESP_ERR_INVALID_PRINCIPAL_TYPE = 67,
  RD_KAFKA_RESP_ERR_NON_EMPTY_GROUP = 68,
  RD_KAFKA_RESP_ERR_GROUP_ID_NOT_FOUND = 69,
  RD_KAFKA_RESP_ERR_FETCH_SESSION_ID_NOT_FOUND = 70,
  RD_KAFKA_RESP_ERR_INVALID_FETCH_SESSION_EPOCH = 71,
  RD_KAFKA_RESP_ERR_LISTENER_NOT_FOUND = 72,
  RD_KAFKA_RESP_ERR_TOPIC_DELETION_DISABLED = 73,
  RD_KAFKA_RESP_ERR_FENCED_LEADER_EPOCH = 74,
  RD_KAFKA_RESP_ERR_UNKNOWN_LEADER_EPOCH = 75,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76,
  RD_KAFKA_RESP_ERR_STALE_BROKER_EPOCH = 77,
  RD_KAFKA_RESP_ERR_OFFSET_NOT_AVAILABLE = 78,
  RD_KAFKA_RESP_ERR_MEMBER_ID_REQUIRED = 79,
  RD_KAFKA_RESP_ERR_PREFERRED_LEADER_NOT_AVAILABLE = 80,
  RD_KAFKA_RESP_ERR_GROUP_MAX_SIZE_REACHED = 81,
  RD_KAFKA_RESP_ERR_FENCED_INSTANCE_ID = 82,
  RD_KAFKA_RESP_ERR_ELIGIBLE_LEADERS_NOT_AVAILABLE = 83,
  RD_KAFKA_RESP_ERR_ELECTION_NOT_NEEDED = 84,
  RD_KAFKA_RESP_ERR_NO_REASSIGNMENT_IN_PROGRESS = 85,
  RD_KAFKA_RESP_ERR_GROUP_SUBSCRIBED_TO_TOPIC = 86,
  RD_KAFKA_RESP_ERR_INVALID_RECORD = 87,
  RD_KAFKA_RESP_ERR_UNSTABLE_OFFSET_COMMIT = 88,
  RD_KAFKA_RESP_ERR_THROTTLING_QUOTA_EXCEEDED = 89,
  RD_KAFKA_RESP_ERR_PRODUCER_FENCED = 90,
  RD_KAFKA_RESP_ERR_RESOURCE_NOT_FOUND = 91,
  RD_KAFKA_RESP_ERR_DUPLICATE_RESOURCE = 92,
  RD_KAFKA_RESP_ERR_UNACCEPTABLE_CREDENTIAL = 93,
  RD_KAFKA_RESP_ERR_INCONSISTENT_VOTER_SET = 94,
  RD_KAFKA_RESP_ERR_INVALID_UPDATE_VERSION = 95,
  RD_KAFKA_RESP_ERR_FEATURE_UPDATE_FAILED = 96,
  RD_KAFKA_RESP_ERR_PRINCIPAL_DESERIALIZATION_FAILURE = 97,
  RD_KAFKA_RESP_ERR_END_ALL,
} rd_kafka_resp_err_t;
struct rd_kafka_err_desc {
  rd_kafka_resp_err_t code;
  char *name;
  char *desc;
};
void rd_kafka_get_err_descs(const struct rd_kafka_err_desc **errdescs, size_t *cntp);
const char *rd_kafka_err2str(rd_kafka_resp_err_t err);
const char *rd_kafka_err2name(rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_last_error(void);
rd_kafka_resp_err_t rd_kafka_errno2err(int errnox);
int rd_kafka_errno(void);
rd_kafka_resp_err_t rd_kafka_fatal_error(rd_kafka_t *rk, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_test_fatal_error(rd_kafka_t *rk, rd_kafka_resp_err_t err, const char *reason);
rd_kafka_resp_err_t rd_kafka_error_code(const rd_kafka_error_t *error);
const char *rd_kafka_error_name(const rd_kafka_error_t *error);
const char *rd_kafka_error_string(const rd_kafka_error_t *error);
int rd_kafka_error_is_fatal(const rd_kafka_error_t *error);
int rd_kafka_error_is_retriable(const rd_kafka_error_t *error);
int rd_kafka_error_txn_requires_abort(const rd_kafka_error_t *error);
void rd_kafka_error_destroy(rd_kafka_error_t *error);
rd_kafka_error_t *rd_kafka_error_new(rd_kafka_resp_err_t code, const char *fmt, ...);
typedef struct rd_kafka_topic_partition_s {
  char *topic;
  int32_t partition;
  int64_t offset;
  void *metadata;
  size_t metadata_size;
  void *opaque;
  rd_kafka_resp_err_t err;
  void *_private;
} rd_kafka_topic_partition_t;
void rd_kafka_topic_partition_destroy(rd_kafka_topic_partition_t *rktpar);
typedef struct rd_kafka_topic_partition_list_s {
  int cnt;
  int size;
  rd_kafka_topic_partition_t *elems;
} rd_kafka_topic_partition_list_t;
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_new(int size);
void rd_kafka_topic_partition_list_destroy(rd_kafka_topic_partition_list_t *rkparlist);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_add(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_add_range(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t start, int32_t stop);
int rd_kafka_topic_partition_list_del(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
int rd_kafka_topic_partition_list_del_by_idx(rd_kafka_topic_partition_list_t *rktparlist, int idx);
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_copy(const rd_kafka_topic_partition_list_t *src);
rd_kafka_resp_err_t rd_kafka_topic_partition_list_set_offset(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition, int64_t offset);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_find(const rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_sort(rd_kafka_topic_partition_list_t *rktparlist, int (*cmp)(const void *a, const void *b, void *cmp_opaque), void *cmp_opaque);
typedef enum rd_kafka_vtype_t {
  RD_KAFKA_VTYPE_END,
  RD_KAFKA_VTYPE_TOPIC,
  RD_KAFKA_VTYPE_RKT,
  RD_KAFKA_VTYPE_PARTITION,
  RD_KAFKA_VTYPE_VALUE,
  RD_KAFKA_VTYPE_KEY,
  RD_KAFKA_VTYPE_OPAQUE,
  RD_KAFKA_VTYPE_MSGFLAGS,
  RD_KAFKA_VTYPE_TIMESTAMP,
  RD_KAFKA_VTYPE_HEADER,
  RD_KAFKA_VTYPE_HEADERS,
} rd_kafka_vtype_t;
typedef struct rd_kafka_vu_s {
  rd_kafka_vtype_t vtype;
  union {
    char *cstr;
    rd_kafka_topic_t *rkt;
    int i;
    int32_t i32;
    int64_t i64;
    struct {
      void *ptr;
      size_t size;
    } mem;
    struct {
      char *name;
      void *val;
      ssize_t size;
    } header;
    rd_kafka_headers_t *headers;
    void *ptr;
    char _pad[64];
  } u;
} rd_kafka_vu_t;
rd_kafka_headers_t *rd_kafka_headers_new(size_t initial_count);
void rd_kafka_headers_destroy(rd_kafka_headers_t *hdrs);
rd_kafka_headers_t *rd_kafka_headers_copy(const rd_kafka_headers_t *src);
rd_kafka_resp_err_t rd_kafka_header_add(rd_kafka_headers_t *hdrs, const char *name, ssize_t name_size, const void *value, ssize_t value_size);
rd_kafka_resp_err_t rd_kafka_header_remove(rd_kafka_headers_t *hdrs, const char *name);
rd_kafka_resp_err_t rd_kafka_header_get_last(const rd_kafka_headers_t *hdrs, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get(const rd_kafka_headers_t *hdrs, size_t idx, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get_all(const rd_kafka_headers_t *hdrs, size_t idx, const char **namep, const void **valuep, size_t *sizep);
typedef struct rd_kafka_message_s {
  rd_kafka_resp_err_t err;
  rd_kafka_topic_t *rkt;
  int32_t partition;
  void *payload;
  size_t len;
  void *key;
  size_t key_len;
  int64_t offset;
  void *_private;
} rd_kafka_message_t;
void rd_kafka_message_destroy(rd_kafka_message_t *rkmessage);
const char *rd_kafka_message_errstr(const rd_kafka_message_t *rkmessage);
int64_t rd_kafka_message_timestamp(const rd_kafka_message_t *rkmessage, rd_kafka_timestamp_type_t *tstype);
int64_t rd_kafka_message_latency(const rd_kafka_message_t *rkmessage);
int32_t rd_kafka_message_broker_id(const rd_kafka_message_t *rkmessage);
rd_kafka_resp_err_t rd_kafka_message_headers(const rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
rd_kafka_resp_err_t rd_kafka_message_detach_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
void rd_kafka_message_set_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t *hdrs);
size_t rd_kafka_header_cnt(const rd_kafka_headers_t *hdrs);
typedef enum {
  RD_KAFKA_MSG_STATUS_NOT_PERSISTED = 0,
  RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED = 1,
  RD_KAFKA_MSG_STATUS_PERSISTED = 2,
} rd_kafka_msg_status_t;
rd_kafka_msg_status_t rd_kafka_message_status(const rd_kafka_message_t *rkmessage);
typedef enum {
  RD_KAFKA_CONF_UNKNOWN = (- 2),
  RD_KAFKA_CONF_INVALID = (- 1),
  RD_KAFKA_CONF_OK = 0,
} rd_kafka_conf_res_t;
rd_kafka_conf_t *rd_kafka_conf_new(void);
void rd_kafka_conf_destroy(rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup(const rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup_filter(const rd_kafka_conf_t *conf, size_t filter_cnt, const char **filter);
const rd_kafka_conf_t *rd_kafka_conf(rd_kafka_t *rk);
rd_kafka_conf_res_t rd_kafka_conf_set(rd_kafka_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_events(rd_kafka_conf_t *conf, int events);
void rd_kafka_conf_set_background_event_cb(rd_kafka_conf_t *conf, void (*event_cb)(rd_kafka_t *rk, rd_kafka_event_t *rkev, void *opaque));
void rd_kafka_conf_set_dr_cb(rd_kafka_conf_t *conf, void (*dr_cb)(rd_kafka_t *rk, void *payload, size_t len, rd_kafka_resp_err_t err, void *opaque, void *msg_opaque));
void rd_kafka_conf_set_dr_msg_cb(rd_kafka_conf_t *conf, void (*dr_msg_cb)(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_consume_cb(rd_kafka_conf_t *conf, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_rebalance_cb(rd_kafka_conf_t *conf, void (*rebalance_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *partitions, void *opaque));
void rd_kafka_conf_set_offset_commit_cb(rd_kafka_conf_t *conf, void (*offset_commit_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *opaque));
void rd_kafka_conf_set_error_cb(rd_kafka_conf_t *conf, void (*error_cb)(rd_kafka_t *rk, int err, const char *reason, void *opaque));
void rd_kafka_conf_set_throttle_cb(rd_kafka_conf_t *conf, void (*throttle_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int throttle_time_ms, void *opaque));
void rd_kafka_conf_set_log_cb(rd_kafka_conf_t *conf, void (*log_cb)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_conf_set_stats_cb(rd_kafka_conf_t *conf, int (*stats_cb)(rd_kafka_t *rk, char *json, size_t json_len, void *opaque));
void rd_kafka_conf_set_oauthbearer_token_refresh_cb(rd_kafka_conf_t *conf, void (*oauthbearer_token_refresh_cb)(rd_kafka_t *rk, const char *oauthbearer_config, void *opaque));
void rd_kafka_conf_enable_sasl_queue(rd_kafka_conf_t *conf, int enable);
void rd_kafka_conf_set_socket_cb(rd_kafka_conf_t *conf, int (*socket_cb)(int domain, int type, int protocol, void *opaque));
void rd_kafka_conf_set_connect_cb(rd_kafka_conf_t *conf, int (*connect_cb)(int sockfd, const struct sockaddr *addr, int addrlen, const char *id, void *opaque));
void rd_kafka_conf_set_closesocket_cb(rd_kafka_conf_t *conf, int (*closesocket_cb)(int sockfd, void *opaque));
struct addrinfo;
void rd_kafka_conf_set_resolve_cb(rd_kafka_conf_t *conf, int (*resolve_cb)(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res, void *opaque));
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert_verify_cb(rd_kafka_conf_t *conf, int (*ssl_cert_verify_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int *x509_error, int depth, const char *buf, size_t size, char *errstr, size_t errstr_size, void *opaque));
typedef enum rd_kafka_cert_type_t {
  RD_KAFKA_CERT_PUBLIC_KEY,
  RD_KAFKA_CERT_PRIVATE_KEY,
  RD_KAFKA_CERT_CA,
  RD_KAFKA_CERT__CNT,
} rd_kafka_cert_type_t;
typedef enum rd_kafka_cert_enc_t {
  RD_KAFKA_CERT_ENC_PKCS12,
  RD_KAFKA_CERT_ENC_DER,
  RD_KAFKA_CERT_ENC_PEM,
  RD_KAFKA_CERT_ENC__CNT,
} rd_kafka_cert_enc_t;
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert(rd_kafka_conf_t *conf, rd_kafka_cert_type_t cert_type, rd_kafka_cert_enc_t cert_enc, const void *buffer, size_t size, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_engine_callback_data(rd_kafka_conf_t *conf, void *callback_data);
void rd_kafka_conf_set_opaque(rd_kafka_conf_t *conf, void *opaque);
void *rd_kafka_opaque(const rd_kafka_t *rk);
void rd_kafka_conf_set_default_topic_conf(rd_kafka_conf_t *conf, rd_kafka_topic_conf_t *tconf);
rd_kafka_topic_conf_t *rd_kafka_conf_get_default_topic_conf(rd_kafka_conf_t *conf);
rd_kafka_conf_res_t rd_kafka_conf_get(const rd_kafka_conf_t *conf, const char *name, char *dest, size_t *dest_size);
rd_kafka_conf_res_t rd_kafka_topic_conf_get(const rd_kafka_topic_conf_t *conf, const char *name, char *dest, size_t *dest_size);
const char **rd_kafka_conf_dump(rd_kafka_conf_t *conf, size_t *cntp);
const char **rd_kafka_topic_conf_dump(rd_kafka_topic_conf_t *conf, size_t *cntp);
void rd_kafka_conf_dump_free(const char **arr, size_t cnt);
void rd_kafka_conf_properties_show(FILE *fp);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_new(void);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_dup(const rd_kafka_topic_conf_t *conf);
rd_kafka_topic_conf_t *rd_kafka_default_topic_conf_dup(rd_kafka_t *rk);
void rd_kafka_topic_conf_destroy(rd_kafka_topic_conf_t *topic_conf);
rd_kafka_conf_res_t rd_kafka_topic_conf_set(rd_kafka_topic_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_topic_conf_set_opaque(rd_kafka_topic_conf_t *conf, void *rkt_opaque);
void rd_kafka_topic_conf_set_partitioner_cb(rd_kafka_topic_conf_t *topic_conf, int32_t (*partitioner)(const rd_kafka_topic_t *rkt, const void *keydata, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque));
void rd_kafka_topic_conf_set_msg_order_cmp(rd_kafka_topic_conf_t *topic_conf, int (*msg_order_cmp)(const rd_kafka_message_t *a, const rd_kafka_message_t *b));
int rd_kafka_topic_partition_available(const rd_kafka_topic_t *rkt, int32_t partition);
int32_t rd_kafka_msg_partitioner_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
rd_kafka_t *rd_kafka_new(rd_kafka_type_t type, rd_kafka_conf_t *conf, char *errstr, size_t errstr_size);
void rd_kafka_destroy(rd_kafka_t *rk);
void rd_kafka_destroy_flags(rd_kafka_t *rk, int flags);
const char *rd_kafka_name(const rd_kafka_t *rk);
rd_kafka_type_t rd_kafka_type(const rd_kafka_t *rk);
char *rd_kafka_memberid(const rd_kafka_t *rk);
char *rd_kafka_clusterid(rd_kafka_t *rk, int timeout_ms);
int32_t rd_kafka_controllerid(rd_kafka_t *rk, int timeout_ms);
rd_kafka_topic_t *rd_kafka_topic_new(rd_kafka_t *rk, const char *topic, rd_kafka_topic_conf_t *conf);
void rd_kafka_topic_destroy(rd_kafka_topic_t *rkt);
const char *rd_kafka_topic_name(const rd_kafka_topic_t *rkt);
void *rd_kafka_topic_opaque(const rd_kafka_topic_t *rkt);
int rd_kafka_poll(rd_kafka_t *rk, int timeout_ms);
void rd_kafka_yield(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_pause_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_resume_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_query_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_get_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high);
rd_kafka_resp_err_t rd_kafka_offsets_for_times(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets, int timeout_ms);
void *rd_kafka_mem_calloc(rd_kafka_t *rk, size_t num, size_t size);
void *rd_kafka_mem_malloc(rd_kafka_t *rk, size_t size);
void rd_kafka_mem_free(rd_kafka_t *rk, void *ptr);
rd_kafka_queue_t *rd_kafka_queue_new(rd_kafka_t *rk);
void rd_kafka_queue_destroy(rd_kafka_queue_t *rkqu);
rd_kafka_queue_t *rd_kafka_queue_get_main(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_sasl(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_sasl_background_callbacks_enable(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_sasl_set_credentials(rd_kafka_t *rk, const char *username, const char *password);
rd_kafka_queue_t *rd_kafka_queue_get_consumer(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_partition(rd_kafka_t *rk, const char *topic, int32_t partition);
rd_kafka_queue_t *rd_kafka_queue_get_background(rd_kafka_t *rk);
void rd_kafka_queue_forward(rd_kafka_queue_t *src, rd_kafka_queue_t *dst);
rd_kafka_resp_err_t rd_kafka_set_log_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu);
size_t rd_kafka_queue_length(rd_kafka_queue_t *rkqu);
void rd_kafka_queue_io_event_enable(rd_kafka_queue_t *rkqu, int fd, const void *payload, size_t size);
void rd_kafka_queue_cb_event_enable(rd_kafka_queue_t *rkqu, void (*event_cb)(rd_kafka_t *rk, void *qev_opaque), void *qev_opaque);
void rd_kafka_queue_yield(rd_kafka_queue_t *rkqu);
int rd_kafka_consume_start(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
int rd_kafka_consume_start_queue(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, rd_kafka_queue_t *rkqu);
int rd_kafka_consume_stop(rd_kafka_topic_t *rkt, int32_t partition);
rd_kafka_resp_err_t rd_kafka_seek(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, int timeout_ms);
rd_kafka_error_t *rd_kafka_seek_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_message_t *rd_kafka_consume(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms);
ssize_t rd_kafka_consume_batch(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_message_t *rd_kafka_consume_queue(rd_kafka_queue_t *rkqu, int timeout_ms);
ssize_t rd_kafka_consume_batch_queue(rd_kafka_queue_t *rkqu, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback_queue(rd_kafka_queue_t *rkqu, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_offset_store(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
rd_kafka_resp_err_t rd_kafka_offsets_store(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets);
rd_kafka_resp_err_t rd_kafka_subscribe(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *topics);
rd_kafka_resp_err_t rd_kafka_unsubscribe(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_subscription(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **topics);
rd_kafka_message_t *rd_kafka_consumer_poll(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_consumer_close(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_consumer_close_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu);
int rd_kafka_consumer_closed(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_incremental_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_error_t *rd_kafka_incremental_unassign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
const char *rd_kafka_rebalance_protocol(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_assignment(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **partitions);
int rd_kafka_assignment_lost(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_commit(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, int async);
rd_kafka_resp_err_t rd_kafka_commit_message(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, int async);
rd_kafka_resp_err_t rd_kafka_commit_queue(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_queue_t *rkqu, void (*cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_committed(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_position(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata(rd_kafka_t *rk);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new(const char *group_id);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new_with_genid(const char *group_id, int32_t generation_id, const char *member_id, const char *group_instance_id);
void rd_kafka_consumer_group_metadata_destroy(rd_kafka_consumer_group_metadata_t *);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_write(const rd_kafka_consumer_group_metadata_t *cgmd, void **bufferp, size_t *sizep);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_read(rd_kafka_consumer_group_metadata_t **cgmdp, const void *buffer, size_t size);
int rd_kafka_produce(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, void *payload, size_t len, const void *key, size_t keylen, void *msg_opaque);
rd_kafka_resp_err_t rd_kafka_producev(rd_kafka_t *rk, ...);
rd_kafka_error_t *rd_kafka_produceva(rd_kafka_t *rk, const rd_kafka_vu_t *vus, size_t cnt);
int rd_kafka_produce_batch(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, rd_kafka_message_t *rkmessages, int message_cnt);
rd_kafka_resp_err_t rd_kafka_flush(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_purge(rd_kafka_t *rk, int purge_flags);
typedef struct rd_kafka_metadata_broker {
  int32_t id;
  char *host;
  int port;
} rd_kafka_metadata_broker_t;
typedef struct rd_kafka_metadata_partition {
  int32_t id;
  rd_kafka_resp_err_t err;
  int32_t leader;
  int replica_cnt;
  int32_t *replicas;
  int isr_cnt;
  int32_t *isrs;
} rd_kafka_metadata_partition_t;
typedef struct rd_kafka_metadata_topic {
  char *topic;
  int partition_cnt;
  struct rd_kafka_metadata_partition *partitions;
  rd_kafka_resp_err_t err;
} rd_kafka_metadata_topic_t;
typedef struct rd_kafka_metadata {
  int broker_cnt;
  struct rd_kafka_metadata_broker *brokers;
  int topic_cnt;
  struct rd_kafka_metadata_topic *topics;
  int32_t orig_broker_id;
  char *orig_broker_name;
} rd_kafka_metadata_t;
rd_kafka_resp_err_t rd_kafka_metadata(rd_kafka_t *rk, int all_topics, rd_kafka_topic_t *only_rkt, const struct rd_kafka_metadata **metadatap, int timeout_ms);
void rd_kafka_metadata_destroy(const struct rd_kafka_metadata *metadata);
typedef struct rd_kafka_Node_s rd_kafka_Node_t;
int rd_kafka_Node_id(const rd_kafka_Node_t *node);
const char *rd_kafka_Node_host(const rd_kafka_Node_t *node);
uint16_t rd_kafka_Node_port(const rd_kafka_Node_t *node);
struct rd_kafka_group_member_info {
  char *member_id;
  char *client_id;
  char *client_host;
  void *member_metadata;
  int member_metadata_size;
  void *member_assignment;
  int member_assignment_size;
};
typedef enum {
  RD_KAFKA_CONSUMER_GROUP_STATE_UNKNOWN = 0,
  RD_KAFKA_CONSUMER_GROUP_STATE_PREPARING_REBALANCE = 1,
  RD_KAFKA_CONSUMER_GROUP_STATE_COMPLETING_REBALANCE = 2,
  RD_KAFKA_CONSUMER_GROUP_STATE_STABLE = 3,
  RD_KAFKA_CONSUMER_GROUP_STATE_DEAD = 4,
  RD_KAFKA_CONSUMER_GROUP_STATE_EMPTY = 5,
  RD_KAFKA_CONSUMER_GROUP_STATE__CNT,
} rd_kafka_consumer_group_state_t;
struct rd_kafka_group_info {
  struct rd_kafka_metadata_broker broker;
  char *group;
  rd_kafka_resp_err_t err;
  char *state;
  char *protocol_type;
  char *protocol;
  struct rd_kafka_group_member_info *members;
  int member_cnt;
};
struct rd_kafka_group_list {
  struct rd_kafka_group_info *groups;
  int group_cnt;
};
rd_kafka_resp_err_t rd_kafka_list_groups(rd_kafka_t *rk, const char *group, const struct rd_kafka_group_list **grplistp, int timeout_ms);
const char *rd_kafka_consumer_group_state_name(rd_kafka_consumer_group_state_t state);
rd_kafka_consumer_group_state_t rd_kafka_consumer_group_state_code(const char *name);
void rd_kafka_group_list_destroy(const struct rd_kafka_group_list *grplist);
int rd_kafka_brokers_add(rd_kafka_t *rk, const char *brokerlist);
void rd_kafka_set_logger(rd_kafka_t *rk, void (*func)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_set_log_level(rd_kafka_t *rk, int level);
void rd_kafka_log_print(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
void rd_kafka_log_syslog(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
int rd_kafka_outq_len(rd_kafka_t *rk);
void rd_kafka_dump(FILE *fp, rd_kafka_t *rk);
int rd_kafka_thread_cnt(void);
typedef enum rd_kafka_thread_type_t {
  RD_KAFKA_THREAD_MAIN,
  RD_KAFKA_THREAD_BACKGROUND,
  RD_KAFKA_THREAD_BROKER,
} rd_kafka_thread_type_t;
int rd_kafka_wait_destroyed(int timeout_ms);
int rd_kafka_unittest(void);
rd_kafka_resp_err_t rd_kafka_poll_set_consumer(rd_kafka_t *rk);
typedef int rd_kafka_event_type_t;
rd_kafka_event_type_t rd_kafka_event_type(const rd_kafka_event_t *rkev);
const char *rd_kafka_event_name(const rd_kafka_event_t *rkev);
void rd_kafka_event_destroy(rd_kafka_event_t *rkev);
const rd_kafka_message_t *rd_kafka_event_message_next(rd_kafka_event_t *rkev);
size_t rd_kafka_event_message_array(rd_kafka_event_t *rkev, const rd_kafka_message_t **rkmessages, size_t size);
size_t rd_kafka_event_message_count(rd_kafka_event_t *rkev);
const char *rd_kafka_event_config_string(rd_kafka_event_t *rkev);
rd_kafka_resp_err_t rd_kafka_event_error(rd_kafka_event_t *rkev);
const char *rd_kafka_event_error_string(rd_kafka_event_t *rkev);
int rd_kafka_event_error_is_fatal(rd_kafka_event_t *rkev);
void *rd_kafka_event_opaque(rd_kafka_event_t *rkev);
int rd_kafka_event_log(rd_kafka_event_t *rkev, const char **fac, const char **str, int *level);
int rd_kafka_event_debug_contexts(rd_kafka_event_t *rkev, char *dst, size_t dstsize);
const char *rd_kafka_event_stats(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_list_t *rd_kafka_event_topic_partition_list(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_t *rd_kafka_event_topic_partition(rd_kafka_event_t *rkev);
typedef rd_kafka_event_t rd_kafka_CreateTopics_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteTopics_result_t;
typedef rd_kafka_event_t rd_kafka_CreateAcls_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeAcls_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteAcls_result_t;
typedef rd_kafka_event_t rd_kafka_CreatePartitions_result_t;
typedef rd_kafka_event_t rd_kafka_AlterConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteRecords_result_t;
typedef rd_kafka_event_t rd_kafka_ListConsumerGroups_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeConsumerGroups_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteGroups_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteConsumerGroupOffsets_result_t;
typedef rd_kafka_event_t rd_kafka_AlterConsumerGroupOffsets_result_t;
typedef rd_kafka_event_t rd_kafka_ListConsumerGroupOffsets_result_t;
const rd_kafka_CreateTopics_result_t *rd_kafka_event_CreateTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteTopics_result_t *rd_kafka_event_DeleteTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_CreatePartitions_result_t *rd_kafka_event_CreatePartitions_result(rd_kafka_event_t *rkev);
const rd_kafka_AlterConfigs_result_t *rd_kafka_event_AlterConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeConfigs_result_t *rd_kafka_event_DescribeConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteRecords_result_t *rd_kafka_event_DeleteRecords_result(rd_kafka_event_t *rkev);
const rd_kafka_ListConsumerGroups_result_t *rd_kafka_event_ListConsumerGroups_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeConsumerGroups_result_t *rd_kafka_event_DescribeConsumerGroups_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteGroups_result_t *rd_kafka_event_DeleteGroups_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteConsumerGroupOffsets_result_t *rd_kafka_event_DeleteConsumerGroupOffsets_result(rd_kafka_event_t *rkev);
const rd_kafka_CreateAcls_result_t *rd_kafka_event_CreateAcls_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeAcls_result_t *rd_kafka_event_DescribeAcls_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteAcls_result_t *rd_kafka_event_DeleteAcls_result(rd_kafka_event_t *rkev);
const rd_kafka_AlterConsumerGroupOffsets_result_t *rd_kafka_event_AlterConsumerGroupOffsets_result(rd_kafka_event_t *rkev);
const rd_kafka_ListConsumerGroupOffsets_result_t *rd_kafka_event_ListConsumerGroupOffsets_result(rd_kafka_event_t *rkev);
rd_kafka_event_t *rd_kafka_queue_poll(rd_kafka_queue_t *rkqu, int timeout_ms);
int rd_kafka_queue_poll_callback(rd_kafka_queue_t *rkqu, int timeout_ms);
typedef rd_kafka_resp_err_t (rd_kafka_plugin_f_conf_init_t)(rd_kafka_conf_t *conf, void **plug_opaquep, char *errstr, size_t errstr_size);
typedef rd_kafka_conf_res_t (rd_kafka_interceptor_f_on_conf_set_t)(rd_kafka_conf_t *conf, const char *name, const char *val, char *errstr, size_t errstr_size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_dup_t)(rd_kafka_conf_t *new_conf, const rd_kafka_conf_t *old_conf, size_t filter_cnt, const char **filter, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_destroy_t)(void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_new_t)(rd_kafka_t *rk, const rd_kafka_conf_t *conf, void *ic_opaque, char *errstr, size_t errstr_size);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_destroy_t)(rd_kafka_t *rk, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_send_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_acknowledgement_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_consume_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_commit_t)(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_request_sent_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_response_received_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, int64_t rtt, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_start_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_exit_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_broker_state_change_t)(rd_kafka_t *rk, int32_t broker_id, const char *secproto, const char *name, int port, const char *state, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_set(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_set_t *on_conf_set, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_dup(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_dup_t *on_conf_dup, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_destroy(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_destroy_t *on_conf_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_new(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_new_t *on_new, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_destroy(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_destroy_t *on_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_send(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_send_t *on_send, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_acknowledgement(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_acknowledgement_t *on_acknowledgement, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_consume(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_consume_t *on_consume, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_commit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_commit_t *on_commit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_request_sent(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_request_sent_t *on_request_sent, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_response_received(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_response_received_t *on_response_received, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_start(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_start_t *on_thread_start, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_exit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_exit_t *on_thread_exit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_broker_state_change(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_broker_state_change_t *on_broker_state_change, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_topic_result_error(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_error_string(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_name(const rd_kafka_topic_result_t *topicres);
const rd_kafka_error_t *rd_kafka_group_result_error(const rd_kafka_group_result_t *groupres);
const char *rd_kafka_group_result_name(const rd_kafka_group_result_t *groupres);
const rd_kafka_topic_partition_list_t *rd_kafka_group_result_partitions(const rd_kafka_group_result_t *groupres);
typedef enum rd_kafka_admin_op_t {
  RD_KAFKA_ADMIN_OP_ANY = 0,
  RD_KAFKA_ADMIN_OP_CREATETOPICS,
  RD_KAFKA_ADMIN_OP_DELETETOPICS,
  RD_KAFKA_ADMIN_OP_CREATEPARTITIONS,
  RD_KAFKA_ADMIN_OP_ALTERCONFIGS,
  RD_KAFKA_ADMIN_OP_DESCRIBECONFIGS,
  RD_KAFKA_ADMIN_OP_DELETERECORDS,
  RD_KAFKA_ADMIN_OP_DELETEGROUPS,
  RD_KAFKA_ADMIN_OP_DELETECONSUMERGROUPOFFSETS,
  RD_KAFKA_ADMIN_OP_CREATEACLS,
  RD_KAFKA_ADMIN_OP_DESCRIBEACLS,
  RD_KAFKA_ADMIN_OP_DELETEACLS,
  RD_KAFKA_ADMIN_OP_LISTCONSUMERGROUPS,
  RD_KAFKA_ADMIN_OP_DESCRIBECONSUMERGROUPS,
  RD_KAFKA_ADMIN_OP_LISTCONSUMERGROUPOFFSETS,
  RD_KAFKA_ADMIN_OP_ALTERCONSUMERGROUPOFFSETS,
  RD_KAFKA_ADMIN_OP__CNT,
} rd_kafka_admin_op_t;
typedef struct rd_kafka_AdminOptions_s rd_kafka_AdminOptions_t;
rd_kafka_AdminOptions_t *rd_kafka_AdminOptions_new(rd_kafka_t *rk, rd_kafka_admin_op_t for_api);
void rd_kafka_AdminOptions_destroy(rd_kafka_AdminOptions_t *options);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_request_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_operation_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_validate_only(rd_kafka_AdminOptions_t *options, int true_or_false, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_broker(rd_kafka_AdminOptions_t *options, int32_t broker_id, char *errstr, size_t errstr_size);
rd_kafka_error_t *rd_kafka_AdminOptions_set_require_stable_offsets(rd_kafka_AdminOptions_t *options, int true_or_false);
rd_kafka_error_t *rd_kafka_AdminOptions_set_match_consumer_group_states(rd_kafka_AdminOptions_t *options, const rd_kafka_consumer_group_state_t *consumer_group_states, size_t consumer_group_states_cnt);
void rd_kafka_AdminOptions_set_opaque(rd_kafka_AdminOptions_t *options, void *ev_opaque);
typedef struct rd_kafka_NewTopic_s rd_kafka_NewTopic_t;
rd_kafka_NewTopic_t *rd_kafka_NewTopic_new(const char *topic, int num_partitions, int replication_factor, char *errstr, size_t errstr_size);
void rd_kafka_NewTopic_destroy(rd_kafka_NewTopic_t *new_topic);
void rd_kafka_NewTopic_destroy_array(rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_replica_assignment(rd_kafka_NewTopic_t *new_topic, int32_t partition, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_config(rd_kafka_NewTopic_t *new_topic, const char *name, const char *value);
void rd_kafka_CreateTopics(rd_kafka_t *rk, rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreateTopics_result_topics(const rd_kafka_CreateTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteTopic_s rd_kafka_DeleteTopic_t;
rd_kafka_DeleteTopic_t *rd_kafka_DeleteTopic_new(const char *topic);
void rd_kafka_DeleteTopic_destroy(rd_kafka_DeleteTopic_t *del_topic);
void rd_kafka_DeleteTopic_destroy_array(rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt);
void rd_kafka_DeleteTopics(rd_kafka_t *rk, rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_DeleteTopics_result_topics(const rd_kafka_DeleteTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_NewPartitions_s rd_kafka_NewPartitions_t;
rd_kafka_NewPartitions_t *rd_kafka_NewPartitions_new(const char *topic, size_t new_total_cnt, char *errstr, size_t errstr_size);
void rd_kafka_NewPartitions_destroy(rd_kafka_NewPartitions_t *new_parts);
void rd_kafka_NewPartitions_destroy_array(rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt);
rd_kafka_resp_err_t rd_kafka_NewPartitions_set_replica_assignment(rd_kafka_NewPartitions_t *new_parts, int32_t new_partition_idx, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
void rd_kafka_CreatePartitions(rd_kafka_t *rk, rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreatePartitions_result_topics(const rd_kafka_CreatePartitions_result_t *result, size_t *cntp);
typedef enum rd_kafka_ConfigSource_t {
  RD_KAFKA_CONFIG_SOURCE_UNKNOWN_CONFIG = 0,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG = 1,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG = 2,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG = 3,
  RD_KAFKA_CONFIG_SOURCE_STATIC_BROKER_CONFIG = 4,
  RD_KAFKA_CONFIG_SOURCE_DEFAULT_CONFIG = 5,
  RD_KAFKA_CONFIG_SOURCE__CNT,
} rd_kafka_ConfigSource_t;
const char *rd_kafka_ConfigSource_name(rd_kafka_ConfigSource_t confsource);
typedef struct rd_kafka_ConfigEntry_s rd_kafka_ConfigEntry_t;
const char *rd_kafka_ConfigEntry_name(const rd_kafka_ConfigEntry_t *entry);
const char *rd_kafka_ConfigEntry_value(const rd_kafka_ConfigEntry_t *entry);
rd_kafka_ConfigSource_t rd_kafka_ConfigEntry_source(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_read_only(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_default(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_sensitive(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_synonym(const rd_kafka_ConfigEntry_t *entry);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigEntry_synonyms(const rd_kafka_ConfigEntry_t *entry, size_t *cntp);
typedef enum rd_kafka_ResourceType_t {
  RD_KAFKA_RESOURCE_UNKNOWN = 0,
  RD_KAFKA_RESOURCE_ANY = 1,
  RD_KAFKA_RESOURCE_TOPIC = 2,
  RD_KAFKA_RESOURCE_GROUP = 3,
  RD_KAFKA_RESOURCE_BROKER = 4,
  RD_KAFKA_RESOURCE__CNT,
} rd_kafka_ResourceType_t;
typedef enum rd_kafka_ResourcePatternType_t {
  RD_KAFKA_RESOURCE_PATTERN_UNKNOWN = 0,
  RD_KAFKA_RESOURCE_PATTERN_ANY = 1,
  RD_KAFKA_RESOURCE_PATTERN_MATCH = 2,
  RD_KAFKA_RESOURCE_PATTERN_LITERAL = 3,
  RD_KAFKA_RESOURCE_PATTERN_PREFIXED = 4,
  RD_KAFKA_RESOURCE_PATTERN_TYPE__CNT,
} rd_kafka_ResourcePatternType_t;
const char *rd_kafka_ResourcePatternType_name(rd_kafka_ResourcePatternType_t resource_pattern_type);
const char *rd_kafka_ResourceType_name(rd_kafka_ResourceType_t restype);
typedef struct rd_kafka_ConfigResource_s rd_kafka_ConfigResource_t;
rd_kafka_ConfigResource_t *rd_kafka_ConfigResource_new(rd_kafka_ResourceType_t restype, const char *resname);
void rd_kafka_ConfigResource_destroy(rd_kafka_ConfigResource_t *config);
void rd_kafka_ConfigResource_destroy_array(rd_kafka_ConfigResource_t **config, size_t config_cnt);
rd_kafka_resp_err_t rd_kafka_ConfigResource_set_config(rd_kafka_ConfigResource_t *config, const char *name, const char *value);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigResource_configs(const rd_kafka_ConfigResource_t *config, size_t *cntp);
rd_kafka_ResourceType_t rd_kafka_ConfigResource_type(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_name(const rd_kafka_ConfigResource_t *config);
rd_kafka_resp_err_t rd_kafka_ConfigResource_error(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_error_string(const rd_kafka_ConfigResource_t *config);
void rd_kafka_AlterConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_AlterConfigs_result_resources(const rd_kafka_AlterConfigs_result_t *result, size_t *cntp);
void rd_kafka_DescribeConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_DescribeConfigs_result_resources(const rd_kafka_DescribeConfigs_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteRecords_s rd_kafka_DeleteRecords_t;
rd_kafka_DeleteRecords_t *rd_kafka_DeleteRecords_new(const rd_kafka_topic_partition_list_t *before_offsets);
void rd_kafka_DeleteRecords_destroy(rd_kafka_DeleteRecords_t *del_records);
void rd_kafka_DeleteRecords_destroy_array(rd_kafka_DeleteRecords_t **del_records, size_t del_record_cnt);
void rd_kafka_DeleteRecords(rd_kafka_t *rk, rd_kafka_DeleteRecords_t **del_records, size_t del_record_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_partition_list_t *rd_kafka_DeleteRecords_result_offsets(const rd_kafka_DeleteRecords_result_t *result);
typedef struct rd_kafka_ConsumerGroupListing_s rd_kafka_ConsumerGroupListing_t;
typedef struct rd_kafka_ListConsumerGroupsResult_s rd_kafka_ListConsumerGroupsResult_t;
void rd_kafka_ListConsumerGroups(rd_kafka_t *rk, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const char *rd_kafka_ConsumerGroupListing_group_id(const rd_kafka_ConsumerGroupListing_t *grplist);
int rd_kafka_ConsumerGroupListing_is_simple_consumer_group(const rd_kafka_ConsumerGroupListing_t *grplist);
rd_kafka_consumer_group_state_t rd_kafka_ConsumerGroupListing_state(const rd_kafka_ConsumerGroupListing_t *grplist);
const rd_kafka_ConsumerGroupListing_t **rd_kafka_ListConsumerGroups_result_valid(const rd_kafka_ListConsumerGroups_result_t *result, size_t *cntp);
const rd_kafka_error_t **rd_kafka_ListConsumerGroups_result_errors(const rd_kafka_ListConsumerGroups_result_t *result, size_t *cntp);
typedef struct rd_kafka_ConsumerGroupDescription_s rd_kafka_ConsumerGroupDescription_t;
typedef struct rd_kafka_MemberDescription_s rd_kafka_MemberDescription_t;
typedef struct rd_kafka_MemberAssignment_s rd_kafka_MemberAssignment_t;
void rd_kafka_DescribeConsumerGroups(rd_kafka_t *rk, const char **groups, size_t groups_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConsumerGroupDescription_t **rd_kafka_DescribeConsumerGroups_result_groups(const rd_kafka_DescribeConsumerGroups_result_t *result, size_t *cntp);
const char *rd_kafka_ConsumerGroupDescription_group_id(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
const rd_kafka_error_t *rd_kafka_ConsumerGroupDescription_error(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
int rd_kafka_ConsumerGroupDescription_is_simple_consumer_group(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
const char *rd_kafka_ConsumerGroupDescription_partition_assignor(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
rd_kafka_consumer_group_state_t rd_kafka_ConsumerGroupDescription_state(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
const rd_kafka_Node_t *rd_kafka_ConsumerGroupDescription_coordinator(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
size_t rd_kafka_ConsumerGroupDescription_member_count(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
const rd_kafka_MemberDescription_t *rd_kafka_ConsumerGroupDescription_member(const rd_kafka_ConsumerGroupDescription_t *grpdesc, size_t idx);
const char *rd_kafka_MemberDescription_client_id(const rd_kafka_MemberDescription_t *member);
const char *rd_kafka_MemberDescription_group_instance_id(const rd_kafka_MemberDescription_t *member);
const char *rd_kafka_MemberDescription_consumer_id(const rd_kafka_MemberDescription_t *member);
const char *rd_kafka_MemberDescription_host(const rd_kafka_MemberDescription_t *member);
const rd_kafka_MemberAssignment_t *rd_kafka_MemberDescription_assignment(const rd_kafka_MemberDescription_t *member);
const rd_kafka_topic_partition_list_t *rd_kafka_MemberAssignment_partitions(const rd_kafka_MemberAssignment_t *assignment);
typedef struct rd_kafka_DeleteGroup_s rd_kafka_DeleteGroup_t;
rd_kafka_DeleteGroup_t *rd_kafka_DeleteGroup_new(const char *group);
void rd_kafka_DeleteGroup_destroy(rd_kafka_DeleteGroup_t *del_group);
void rd_kafka_DeleteGroup_destroy_array(rd_kafka_DeleteGroup_t **del_groups, size_t del_group_cnt);
void rd_kafka_DeleteGroups(rd_kafka_t *rk, rd_kafka_DeleteGroup_t **del_groups, size_t del_group_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_DeleteGroups_result_groups(const rd_kafka_DeleteGroups_result_t *result, size_t *cntp);
typedef struct rd_kafka_ListConsumerGroupOffsets_s rd_kafka_ListConsumerGroupOffsets_t;
rd_kafka_ListConsumerGroupOffsets_t *rd_kafka_ListConsumerGroupOffsets_new(const char *group_id, const rd_kafka_topic_partition_list_t *partitions);
void rd_kafka_ListConsumerGroupOffsets_destroy(rd_kafka_ListConsumerGroupOffsets_t *list_grpoffsets);
void rd_kafka_ListConsumerGroupOffsets_destroy_array(rd_kafka_ListConsumerGroupOffsets_t **list_grpoffsets, size_t list_grpoffset_cnt);
void rd_kafka_ListConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_ListConsumerGroupOffsets_t **list_grpoffsets, size_t list_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_ListConsumerGroupOffsets_result_groups(const rd_kafka_ListConsumerGroupOffsets_result_t *result, size_t *cntp);
typedef struct rd_kafka_AlterConsumerGroupOffsets_s rd_kafka_AlterConsumerGroupOffsets_t;
rd_kafka_AlterConsumerGroupOffsets_t *rd_kafka_AlterConsumerGroupOffsets_new(const char *group_id, const rd_kafka_topic_partition_list_t *partitions);
void rd_kafka_AlterConsumerGroupOffsets_destroy(rd_kafka_AlterConsumerGroupOffsets_t *alter_grpoffsets);
void rd_kafka_AlterConsumerGroupOffsets_destroy_array(rd_kafka_AlterConsumerGroupOffsets_t **alter_grpoffsets, size_t alter_grpoffset_cnt);
void rd_kafka_AlterConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_AlterConsumerGroupOffsets_t **alter_grpoffsets, size_t alter_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_AlterConsumerGroupOffsets_result_groups(const rd_kafka_AlterConsumerGroupOffsets_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteConsumerGroupOffsets_s rd_kafka_DeleteConsumerGroupOffsets_t;
rd_kafka_DeleteConsumerGroupOffsets_t *rd_kafka_DeleteConsumerGroupOffsets_new(const char *group, const rd_kafka_topic_partition_list_t *partitions);
void rd_kafka_DeleteConsumerGroupOffsets_destroy(rd_kafka_DeleteConsumerGroupOffsets_t *del_grpoffsets);
void rd_kafka_DeleteConsumerGroupOffsets_destroy_array(rd_kafka_DeleteConsumerGroupOffsets_t **del_grpoffsets, size_t del_grpoffset_cnt);
void rd_kafka_DeleteConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_DeleteConsumerGroupOffsets_t **del_grpoffsets, size_t del_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_DeleteConsumerGroupOffsets_result_groups(const rd_kafka_DeleteConsumerGroupOffsets_result_t *result, size_t *cntp);
typedef struct rd_kafka_AclBinding_s rd_kafka_AclBinding_t;
typedef rd_kafka_AclBinding_t rd_kafka_AclBindingFilter_t;
const rd_kafka_error_t *rd_kafka_acl_result_error(const rd_kafka_acl_result_t *aclres);
typedef enum rd_kafka_AclOperation_t {
  RD_KAFKA_ACL_OPERATION_UNKNOWN = 0,
  RD_KAFKA_ACL_OPERATION_ANY = 1,
  RD_KAFKA_ACL_OPERATION_ALL = 2,
  RD_KAFKA_ACL_OPERATION_READ = 3,
  RD_KAFKA_ACL_OPERATION_WRITE = 4,
  RD_KAFKA_ACL_OPERATION_CREATE = 5,
  RD_KAFKA_ACL_OPERATION_DELETE = 6,
  RD_KAFKA_ACL_OPERATION_ALTER = 7,
  RD_KAFKA_ACL_OPERATION_DESCRIBE = 8,
  RD_KAFKA_ACL_OPERATION_CLUSTER_ACTION = 9,
  RD_KAFKA_ACL_OPERATION_DESCRIBE_CONFIGS = 10,
  RD_KAFKA_ACL_OPERATION_ALTER_CONFIGS = 11,
  RD_KAFKA_ACL_OPERATION_IDEMPOTENT_WRITE = 12,
  RD_KAFKA_ACL_OPERATION__CNT,
} rd_kafka_AclOperation_t;
const char *rd_kafka_AclOperation_name(rd_kafka_AclOperation_t acl_operation);
typedef enum rd_kafka_AclPermissionType_t {
  RD_KAFKA_ACL_PERMISSION_TYPE_UNKNOWN = 0,
  RD_KAFKA_ACL_PERMISSION_TYPE_ANY = 1,
  RD_KAFKA_ACL_PERMISSION_TYPE_DENY = 2,
  RD_KAFKA_ACL_PERMISSION_TYPE_ALLOW = 3,
  RD_KAFKA_ACL_PERMISSION_TYPE__CNT,
} rd_kafka_AclPermissionType_t;
const char *rd_kafka_AclPermissionType_name(rd_kafka_AclPermissionType_t acl_permission_type);
rd_kafka_AclBinding_t *rd_kafka_AclBinding_new(rd_kafka_ResourceType_t restype, const char *name, rd_kafka_ResourcePatternType_t resource_pattern_type, const char *principal, const char *host, rd_kafka_AclOperation_t operation, rd_kafka_AclPermissionType_t permission_type, char *errstr, size_t errstr_size);
rd_kafka_AclBindingFilter_t *rd_kafka_AclBindingFilter_new(rd_kafka_ResourceType_t restype, const char *name, rd_kafka_ResourcePatternType_t resource_pattern_type, const char *principal, const char *host, rd_kafka_AclOperation_t operation, rd_kafka_AclPermissionType_t permission_type, char *errstr, size_t errstr_size);
rd_kafka_ResourceType_t rd_kafka_AclBinding_restype(const rd_kafka_AclBinding_t *acl);
const char *rd_kafka_AclBinding_name(const rd_kafka_AclBinding_t *acl);
const char *rd_kafka_AclBinding_principal(const rd_kafka_AclBinding_t *acl);
const char *rd_kafka_AclBinding_host(const rd_kafka_AclBinding_t *acl);
rd_kafka_AclOperation_t rd_kafka_AclBinding_operation(const rd_kafka_AclBinding_t *acl);
rd_kafka_AclPermissionType_t rd_kafka_AclBinding_permission_type(const rd_kafka_AclBinding_t *acl);
rd_kafka_ResourcePatternType_t rd_kafka_AclBinding_resource_pattern_type(const rd_kafka_AclBinding_t *acl);
const rd_kafka_error_t *rd_kafka_AclBinding_error(const rd_kafka_AclBinding_t *acl);
void rd_kafka_AclBinding_destroy(rd_kafka_AclBinding_t *acl_binding);
void rd_kafka_AclBinding_destroy_array(rd_kafka_AclBinding_t **acl_bindings, size_t acl_bindings_cnt);
const rd_kafka_acl_result_t **rd_kafka_CreateAcls_result_acls(const rd_kafka_CreateAcls_result_t *result, size_t *cntp);
void rd_kafka_CreateAcls(rd_kafka_t *rk, rd_kafka_AclBinding_t **new_acls, size_t new_acls_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_AclBinding_t **rd_kafka_DescribeAcls_result_acls(const rd_kafka_DescribeAcls_result_t *result, size_t *cntp);
void rd_kafka_DescribeAcls(rd_kafka_t *rk, rd_kafka_AclBindingFilter_t *acl_filter, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
typedef struct rd_kafka_DeleteAcls_result_response_s rd_kafka_DeleteAcls_result_response_t;
const rd_kafka_DeleteAcls_result_response_t **rd_kafka_DeleteAcls_result_responses(const rd_kafka_DeleteAcls_result_t *result, size_t *cntp);
const rd_kafka_error_t *rd_kafka_DeleteAcls_result_response_error(const rd_kafka_DeleteAcls_result_response_t *result_response);
const rd_kafka_AclBinding_t **rd_kafka_DeleteAcls_result_response_matching_acls(const rd_kafka_DeleteAcls_result_response_t *result_response, size_t *matching_acls_cntp);
void rd_kafka_DeleteAcls(rd_kafka_t *rk, rd_kafka_AclBindingFilter_t **del_acls, size_t del_acls_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token(rd_kafka_t *rk, const char *token_value, int64_t md_lifetime_ms, const char *md_principal_name, const char **extensions, size_t extension_size, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token_failure(rd_kafka_t *rk, const char *errstr);
rd_kafka_error_t *rd_kafka_init_transactions(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_begin_transaction(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_send_offsets_to_transaction(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, const rd_kafka_consumer_group_metadata_t *cgmetadata, int timeout_ms);
rd_kafka_error_t *rd_kafka_commit_transaction(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_abort_transaction(rd_kafka_t *rk, int timeout_ms);
typedef struct rd_kafka_mock_cluster_s rd_kafka_mock_cluster_t;
rd_kafka_mock_cluster_t *rd_kafka_mock_cluster_new(rd_kafka_t *rk, int broker_cnt);
void rd_kafka_mock_cluster_destroy(rd_kafka_mock_cluster_t *mcluster);
rd_kafka_t *rd_kafka_mock_cluster_handle(const rd_kafka_mock_cluster_t *mcluster);
rd_kafka_mock_cluster_t *rd_kafka_handle_mock_cluster(const rd_kafka_t *rk);
const char *rd_kafka_mock_cluster_bootstraps(const rd_kafka_mock_cluster_t *mcluster);
void rd_kafka_mock_clear_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey);
void rd_kafka_mock_push_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, ...);
void rd_kafka_mock_push_request_errors_array(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, const rd_kafka_resp_err_t *errors);
rd_kafka_resp_err_t rd_kafka_mock_broker_push_request_error_rtts(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int16_t ApiKey, size_t cnt, ...);
rd_kafka_resp_err_t rd_kafka_mock_broker_error_stack_cnt(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int16_t ApiKey, size_t *cntp);
void rd_kafka_mock_topic_set_error(rd_kafka_mock_cluster_t *mcluster, const char *topic, rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_mock_topic_create(rd_kafka_mock_cluster_t *mcluster, const char *topic, int partition_cnt, int replication_factor);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_leader(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower_wmarks(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int64_t lo, int64_t hi);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_down(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_up(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rtt(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int rtt_ms);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rack(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, const char *rack);
rd_kafka_resp_err_t rd_kafka_mock_coordinator_set(rd_kafka_mock_cluster_t *mcluster, const char *key_type, const char *key, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_set_apiversion(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, int16_t MinVersion, int16_t MaxVersion);
'
rdkafka.h, rdkafka_mock.h

RD_KAFKA_VERSION

public RD_KAFKA_VERSION = 33555199

librdkafka version

Interpreted as hex MM.mm.rr.xx:

  • MM = Major
  • mm = minor
  • rr = revision
  • xx = pre-release id (0xff is the final release)

E.g.: 0x000801ff = 0.8.1

Remarks
This value should only be used during compile time, for runtime checks of version use rd_kafka_version()

RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE

public RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76

Unsupported compression type

RD_KAFKA_RESP_ERR_END_ALL

public RD_KAFKA_RESP_ERR_END_ALL = 98
enum rd_kafka_resp_err_t

RD_KAFKA_ADMIN_OP__CNT

public RD_KAFKA_ADMIN_OP__CNT = 16

Number of ops defined

RD_KAFKA_CDEF

public RD_KAFKA_CDEF = 'typedef long int ssize_t;
typedef struct _IO_FILE FILE;
typedef long int mode_t;
typedef signed int int16_t;
typedef unsigned int uint16_t;
typedef signed int int32_t;
typedef signed long int int64_t;
int rd_kafka_version(void);
const char *rd_kafka_version_str(void);
typedef enum rd_kafka_type_t {
  RD_KAFKA_PRODUCER,
  RD_KAFKA_CONSUMER,
} rd_kafka_type_t;
typedef enum rd_kafka_timestamp_type_t {
  RD_KAFKA_TIMESTAMP_NOT_AVAILABLE,
  RD_KAFKA_TIMESTAMP_CREATE_TIME,
  RD_KAFKA_TIMESTAMP_LOG_APPEND_TIME,
} rd_kafka_timestamp_type_t;
const char *rd_kafka_get_debug_contexts(void);
typedef struct rd_kafka_s rd_kafka_t;
typedef struct rd_kafka_topic_s rd_kafka_topic_t;
typedef struct rd_kafka_conf_s rd_kafka_conf_t;
typedef struct rd_kafka_topic_conf_s rd_kafka_topic_conf_t;
typedef struct rd_kafka_queue_s rd_kafka_queue_t;
typedef struct rd_kafka_op_s rd_kafka_event_t;
typedef struct rd_kafka_topic_result_s rd_kafka_topic_result_t;
typedef struct rd_kafka_consumer_group_metadata_s rd_kafka_consumer_group_metadata_t;
typedef struct rd_kafka_error_s {
  unsigned int code;
  char *errstr;
  unsigned char fatal;
  unsigned char retriable;
  unsigned char txn_requires_abort;
} rd_kafka_error_t;
typedef struct rd_kafka_headers_s rd_kafka_headers_t;
typedef struct rd_kafka_group_result_s rd_kafka_group_result_t;
typedef struct rd_kafka_acl_result_s rd_kafka_acl_result_t;
typedef enum {
  RD_KAFKA_RESP_ERR__BEGIN = (- 200),
  RD_KAFKA_RESP_ERR__BAD_MSG = (- 199),
  RD_KAFKA_RESP_ERR__BAD_COMPRESSION = (- 198),
  RD_KAFKA_RESP_ERR__DESTROY = (- 197),
  RD_KAFKA_RESP_ERR__FAIL = (- 196),
  RD_KAFKA_RESP_ERR__TRANSPORT = (- 195),
  RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE = (- 194),
  RD_KAFKA_RESP_ERR__RESOLVE = (- 193),
  RD_KAFKA_RESP_ERR__MSG_TIMED_OUT = (- 192),
  RD_KAFKA_RESP_ERR__PARTITION_EOF = (- 191),
  RD_KAFKA_RESP_ERR__UNKNOWN_PARTITION = (- 190),
  RD_KAFKA_RESP_ERR__FS = (- 189),
  RD_KAFKA_RESP_ERR__UNKNOWN_TOPIC = (- 188),
  RD_KAFKA_RESP_ERR__ALL_BROKERS_DOWN = (- 187),
  RD_KAFKA_RESP_ERR__INVALID_ARG = (- 186),
  RD_KAFKA_RESP_ERR__TIMED_OUT = (- 185),
  RD_KAFKA_RESP_ERR__QUEUE_FULL = (- 184),
  RD_KAFKA_RESP_ERR__ISR_INSUFF = (- 183),
  RD_KAFKA_RESP_ERR__NODE_UPDATE = (- 182),
  RD_KAFKA_RESP_ERR__SSL = (- 181),
  RD_KAFKA_RESP_ERR__WAIT_COORD = (- 180),
  RD_KAFKA_RESP_ERR__UNKNOWN_GROUP = (- 179),
  RD_KAFKA_RESP_ERR__IN_PROGRESS = (- 178),
  RD_KAFKA_RESP_ERR__PREV_IN_PROGRESS = (- 177),
  RD_KAFKA_RESP_ERR__EXISTING_SUBSCRIPTION = (- 176),
  RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS = (- 175),
  RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS = (- 174),
  RD_KAFKA_RESP_ERR__CONFLICT = (- 173),
  RD_KAFKA_RESP_ERR__STATE = (- 172),
  RD_KAFKA_RESP_ERR__UNKNOWN_PROTOCOL = (- 171),
  RD_KAFKA_RESP_ERR__NOT_IMPLEMENTED = (- 170),
  RD_KAFKA_RESP_ERR__AUTHENTICATION = (- 169),
  RD_KAFKA_RESP_ERR__NO_OFFSET = (- 168),
  RD_KAFKA_RESP_ERR__OUTDATED = (- 167),
  RD_KAFKA_RESP_ERR__TIMED_OUT_QUEUE = (- 166),
  RD_KAFKA_RESP_ERR__UNSUPPORTED_FEATURE = (- 165),
  RD_KAFKA_RESP_ERR__WAIT_CACHE = (- 164),
  RD_KAFKA_RESP_ERR__INTR = (- 163),
  RD_KAFKA_RESP_ERR__KEY_SERIALIZATION = (- 162),
  RD_KAFKA_RESP_ERR__VALUE_SERIALIZATION = (- 161),
  RD_KAFKA_RESP_ERR__KEY_DESERIALIZATION = (- 160),
  RD_KAFKA_RESP_ERR__VALUE_DESERIALIZATION = (- 159),
  RD_KAFKA_RESP_ERR__PARTIAL = (- 158),
  RD_KAFKA_RESP_ERR__READ_ONLY = (- 157),
  RD_KAFKA_RESP_ERR__NOENT = (- 156),
  RD_KAFKA_RESP_ERR__UNDERFLOW = (- 155),
  RD_KAFKA_RESP_ERR__INVALID_TYPE = (- 154),
  RD_KAFKA_RESP_ERR__RETRY = (- 153),
  RD_KAFKA_RESP_ERR__PURGE_QUEUE = (- 152),
  RD_KAFKA_RESP_ERR__PURGE_INFLIGHT = (- 151),
  RD_KAFKA_RESP_ERR__FATAL = (- 150),
  RD_KAFKA_RESP_ERR__INCONSISTENT = (- 149),
  RD_KAFKA_RESP_ERR__GAPLESS_GUARANTEE = (- 148),
  RD_KAFKA_RESP_ERR__MAX_POLL_EXCEEDED = (- 147),
  RD_KAFKA_RESP_ERR__UNKNOWN_BROKER = (- 146),
  RD_KAFKA_RESP_ERR__NOT_CONFIGURED = (- 145),
  RD_KAFKA_RESP_ERR__FENCED = (- 144),
  RD_KAFKA_RESP_ERR__APPLICATION = (- 143),
  RD_KAFKA_RESP_ERR__ASSIGNMENT_LOST = (- 142),
  RD_KAFKA_RESP_ERR__NOOP = (- 141),
  RD_KAFKA_RESP_ERR__AUTO_OFFSET_RESET = (- 140),
  RD_KAFKA_RESP_ERR__END = (- 100),
  RD_KAFKA_RESP_ERR_UNKNOWN = (- 1),
  RD_KAFKA_RESP_ERR_NO_ERROR = 0,
  RD_KAFKA_RESP_ERR_OFFSET_OUT_OF_RANGE = 1,
  RD_KAFKA_RESP_ERR_INVALID_MSG = 2,
  RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_OR_PART = 3,
  RD_KAFKA_RESP_ERR_INVALID_MSG_SIZE = 4,
  RD_KAFKA_RESP_ERR_LEADER_NOT_AVAILABLE = 5,
  RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION = 6,
  RD_KAFKA_RESP_ERR_REQUEST_TIMED_OUT = 7,
  RD_KAFKA_RESP_ERR_BROKER_NOT_AVAILABLE = 8,
  RD_KAFKA_RESP_ERR_REPLICA_NOT_AVAILABLE = 9,
  RD_KAFKA_RESP_ERR_MSG_SIZE_TOO_LARGE = 10,
  RD_KAFKA_RESP_ERR_STALE_CTRL_EPOCH = 11,
  RD_KAFKA_RESP_ERR_OFFSET_METADATA_TOO_LARGE = 12,
  RD_KAFKA_RESP_ERR_NETWORK_EXCEPTION = 13,
  RD_KAFKA_RESP_ERR_COORDINATOR_LOAD_IN_PROGRESS = 14,
  RD_KAFKA_RESP_ERR_COORDINATOR_NOT_AVAILABLE = 15,
  RD_KAFKA_RESP_ERR_NOT_COORDINATOR = 16,
  RD_KAFKA_RESP_ERR_TOPIC_EXCEPTION = 17,
  RD_KAFKA_RESP_ERR_RECORD_LIST_TOO_LARGE = 18,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS = 19,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS_AFTER_APPEND = 20,
  RD_KAFKA_RESP_ERR_INVALID_REQUIRED_ACKS = 21,
  RD_KAFKA_RESP_ERR_ILLEGAL_GENERATION = 22,
  RD_KAFKA_RESP_ERR_INCONSISTENT_GROUP_PROTOCOL = 23,
  RD_KAFKA_RESP_ERR_INVALID_GROUP_ID = 24,
  RD_KAFKA_RESP_ERR_UNKNOWN_MEMBER_ID = 25,
  RD_KAFKA_RESP_ERR_INVALID_SESSION_TIMEOUT = 26,
  RD_KAFKA_RESP_ERR_REBALANCE_IN_PROGRESS = 27,
  RD_KAFKA_RESP_ERR_INVALID_COMMIT_OFFSET_SIZE = 28,
  RD_KAFKA_RESP_ERR_TOPIC_AUTHORIZATION_FAILED = 29,
  RD_KAFKA_RESP_ERR_GROUP_AUTHORIZATION_FAILED = 30,
  RD_KAFKA_RESP_ERR_CLUSTER_AUTHORIZATION_FAILED = 31,
  RD_KAFKA_RESP_ERR_INVALID_TIMESTAMP = 32,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_SASL_MECHANISM = 33,
  RD_KAFKA_RESP_ERR_ILLEGAL_SASL_STATE = 34,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_VERSION = 35,
  RD_KAFKA_RESP_ERR_TOPIC_ALREADY_EXISTS = 36,
  RD_KAFKA_RESP_ERR_INVALID_PARTITIONS = 37,
  RD_KAFKA_RESP_ERR_INVALID_REPLICATION_FACTOR = 38,
  RD_KAFKA_RESP_ERR_INVALID_REPLICA_ASSIGNMENT = 39,
  RD_KAFKA_RESP_ERR_INVALID_CONFIG = 40,
  RD_KAFKA_RESP_ERR_NOT_CONTROLLER = 41,
  RD_KAFKA_RESP_ERR_INVALID_REQUEST = 42,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_FOR_MESSAGE_FORMAT = 43,
  RD_KAFKA_RESP_ERR_POLICY_VIOLATION = 44,
  RD_KAFKA_RESP_ERR_OUT_OF_ORDER_SEQUENCE_NUMBER = 45,
  RD_KAFKA_RESP_ERR_DUPLICATE_SEQUENCE_NUMBER = 46,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_EPOCH = 47,
  RD_KAFKA_RESP_ERR_INVALID_TXN_STATE = 48,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_ID_MAPPING = 49,
  RD_KAFKA_RESP_ERR_INVALID_TRANSACTION_TIMEOUT = 50,
  RD_KAFKA_RESP_ERR_CONCURRENT_TRANSACTIONS = 51,
  RD_KAFKA_RESP_ERR_TRANSACTION_COORDINATOR_FENCED = 52,
  RD_KAFKA_RESP_ERR_TRANSACTIONAL_ID_AUTHORIZATION_FAILED = 53,
  RD_KAFKA_RESP_ERR_SECURITY_DISABLED = 54,
  RD_KAFKA_RESP_ERR_OPERATION_NOT_ATTEMPTED = 55,
  RD_KAFKA_RESP_ERR_KAFKA_STORAGE_ERROR = 56,
  RD_KAFKA_RESP_ERR_LOG_DIR_NOT_FOUND = 57,
  RD_KAFKA_RESP_ERR_SASL_AUTHENTICATION_FAILED = 58,
  RD_KAFKA_RESP_ERR_UNKNOWN_PRODUCER_ID = 59,
  RD_KAFKA_RESP_ERR_REASSIGNMENT_IN_PROGRESS = 60,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTH_DISABLED = 61,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_NOT_FOUND = 62,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_OWNER_MISMATCH = 63,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_REQUEST_NOT_ALLOWED = 64,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTHORIZATION_FAILED = 65,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_EXPIRED = 66,
  RD_KAFKA_RESP_ERR_INVALID_PRINCIPAL_TYPE = 67,
  RD_KAFKA_RESP_ERR_NON_EMPTY_GROUP = 68,
  RD_KAFKA_RESP_ERR_GROUP_ID_NOT_FOUND = 69,
  RD_KAFKA_RESP_ERR_FETCH_SESSION_ID_NOT_FOUND = 70,
  RD_KAFKA_RESP_ERR_INVALID_FETCH_SESSION_EPOCH = 71,
  RD_KAFKA_RESP_ERR_LISTENER_NOT_FOUND = 72,
  RD_KAFKA_RESP_ERR_TOPIC_DELETION_DISABLED = 73,
  RD_KAFKA_RESP_ERR_FENCED_LEADER_EPOCH = 74,
  RD_KAFKA_RESP_ERR_UNKNOWN_LEADER_EPOCH = 75,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76,
  RD_KAFKA_RESP_ERR_STALE_BROKER_EPOCH = 77,
  RD_KAFKA_RESP_ERR_OFFSET_NOT_AVAILABLE = 78,
  RD_KAFKA_RESP_ERR_MEMBER_ID_REQUIRED = 79,
  RD_KAFKA_RESP_ERR_PREFERRED_LEADER_NOT_AVAILABLE = 80,
  RD_KAFKA_RESP_ERR_GROUP_MAX_SIZE_REACHED = 81,
  RD_KAFKA_RESP_ERR_FENCED_INSTANCE_ID = 82,
  RD_KAFKA_RESP_ERR_ELIGIBLE_LEADERS_NOT_AVAILABLE = 83,
  RD_KAFKA_RESP_ERR_ELECTION_NOT_NEEDED = 84,
  RD_KAFKA_RESP_ERR_NO_REASSIGNMENT_IN_PROGRESS = 85,
  RD_KAFKA_RESP_ERR_GROUP_SUBSCRIBED_TO_TOPIC = 86,
  RD_KAFKA_RESP_ERR_INVALID_RECORD = 87,
  RD_KAFKA_RESP_ERR_UNSTABLE_OFFSET_COMMIT = 88,
  RD_KAFKA_RESP_ERR_THROTTLING_QUOTA_EXCEEDED = 89,
  RD_KAFKA_RESP_ERR_PRODUCER_FENCED = 90,
  RD_KAFKA_RESP_ERR_RESOURCE_NOT_FOUND = 91,
  RD_KAFKA_RESP_ERR_DUPLICATE_RESOURCE = 92,
  RD_KAFKA_RESP_ERR_UNACCEPTABLE_CREDENTIAL = 93,
  RD_KAFKA_RESP_ERR_INCONSISTENT_VOTER_SET = 94,
  RD_KAFKA_RESP_ERR_INVALID_UPDATE_VERSION = 95,
  RD_KAFKA_RESP_ERR_FEATURE_UPDATE_FAILED = 96,
  RD_KAFKA_RESP_ERR_PRINCIPAL_DESERIALIZATION_FAILURE = 97,
  RD_KAFKA_RESP_ERR_END_ALL,
} rd_kafka_resp_err_t;
struct rd_kafka_err_desc {
  rd_kafka_resp_err_t code;
  char *name;
  char *desc;
};
void rd_kafka_get_err_descs(const struct rd_kafka_err_desc **errdescs, size_t *cntp);
const char *rd_kafka_err2str(rd_kafka_resp_err_t err);
const char *rd_kafka_err2name(rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_last_error(void);
rd_kafka_resp_err_t rd_kafka_errno2err(int errnox);
int rd_kafka_errno(void);
rd_kafka_resp_err_t rd_kafka_fatal_error(rd_kafka_t *rk, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_test_fatal_error(rd_kafka_t *rk, rd_kafka_resp_err_t err, const char *reason);
rd_kafka_resp_err_t rd_kafka_error_code(const rd_kafka_error_t *error);
const char *rd_kafka_error_name(const rd_kafka_error_t *error);
const char *rd_kafka_error_string(const rd_kafka_error_t *error);
int rd_kafka_error_is_fatal(const rd_kafka_error_t *error);
int rd_kafka_error_is_retriable(const rd_kafka_error_t *error);
int rd_kafka_error_txn_requires_abort(const rd_kafka_error_t *error);
void rd_kafka_error_destroy(rd_kafka_error_t *error);
rd_kafka_error_t *rd_kafka_error_new(rd_kafka_resp_err_t code, const char *fmt, ...);
typedef struct rd_kafka_topic_partition_s {
  char *topic;
  int32_t partition;
  int64_t offset;
  void *metadata;
  size_t metadata_size;
  void *opaque;
  rd_kafka_resp_err_t err;
  void *_private;
} rd_kafka_topic_partition_t;
void rd_kafka_topic_partition_destroy(rd_kafka_topic_partition_t *rktpar);
typedef struct rd_kafka_topic_partition_list_s {
  int cnt;
  int size;
  rd_kafka_topic_partition_t *elems;
} rd_kafka_topic_partition_list_t;
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_new(int size);
void rd_kafka_topic_partition_list_destroy(rd_kafka_topic_partition_list_t *rkparlist);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_add(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_add_range(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t start, int32_t stop);
int rd_kafka_topic_partition_list_del(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
int rd_kafka_topic_partition_list_del_by_idx(rd_kafka_topic_partition_list_t *rktparlist, int idx);
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_copy(const rd_kafka_topic_partition_list_t *src);
rd_kafka_resp_err_t rd_kafka_topic_partition_list_set_offset(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition, int64_t offset);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_find(const rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_sort(rd_kafka_topic_partition_list_t *rktparlist, int (*cmp)(const void *a, const void *b, void *cmp_opaque), void *cmp_opaque);
typedef enum rd_kafka_vtype_t {
  RD_KAFKA_VTYPE_END,
  RD_KAFKA_VTYPE_TOPIC,
  RD_KAFKA_VTYPE_RKT,
  RD_KAFKA_VTYPE_PARTITION,
  RD_KAFKA_VTYPE_VALUE,
  RD_KAFKA_VTYPE_KEY,
  RD_KAFKA_VTYPE_OPAQUE,
  RD_KAFKA_VTYPE_MSGFLAGS,
  RD_KAFKA_VTYPE_TIMESTAMP,
  RD_KAFKA_VTYPE_HEADER,
  RD_KAFKA_VTYPE_HEADERS,
} rd_kafka_vtype_t;
typedef struct rd_kafka_vu_s {
  rd_kafka_vtype_t vtype;
  union {
    char *cstr;
    rd_kafka_topic_t *rkt;
    int i;
    int32_t i32;
    int64_t i64;
    struct {
      void *ptr;
      size_t size;
    } mem;
    struct {
      char *name;
      void *val;
      ssize_t size;
    } header;
    rd_kafka_headers_t *headers;
    void *ptr;
    char _pad[64];
  } u;
} rd_kafka_vu_t;
rd_kafka_headers_t *rd_kafka_headers_new(size_t initial_count);
void rd_kafka_headers_destroy(rd_kafka_headers_t *hdrs);
rd_kafka_headers_t *rd_kafka_headers_copy(const rd_kafka_headers_t *src);
rd_kafka_resp_err_t rd_kafka_header_add(rd_kafka_headers_t *hdrs, const char *name, ssize_t name_size, const void *value, ssize_t value_size);
rd_kafka_resp_err_t rd_kafka_header_remove(rd_kafka_headers_t *hdrs, const char *name);
rd_kafka_resp_err_t rd_kafka_header_get_last(const rd_kafka_headers_t *hdrs, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get(const rd_kafka_headers_t *hdrs, size_t idx, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get_all(const rd_kafka_headers_t *hdrs, size_t idx, const char **namep, const void **valuep, size_t *sizep);
typedef struct rd_kafka_message_s {
  rd_kafka_resp_err_t err;
  rd_kafka_topic_t *rkt;
  int32_t partition;
  void *payload;
  size_t len;
  void *key;
  size_t key_len;
  int64_t offset;
  void *_private;
} rd_kafka_message_t;
void rd_kafka_message_destroy(rd_kafka_message_t *rkmessage);
const char *rd_kafka_message_errstr(const rd_kafka_message_t *rkmessage);
int64_t rd_kafka_message_timestamp(const rd_kafka_message_t *rkmessage, rd_kafka_timestamp_type_t *tstype);
int64_t rd_kafka_message_latency(const rd_kafka_message_t *rkmessage);
int32_t rd_kafka_message_broker_id(const rd_kafka_message_t *rkmessage);
rd_kafka_resp_err_t rd_kafka_message_headers(const rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
rd_kafka_resp_err_t rd_kafka_message_detach_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
void rd_kafka_message_set_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t *hdrs);
size_t rd_kafka_header_cnt(const rd_kafka_headers_t *hdrs);
typedef enum {
  RD_KAFKA_MSG_STATUS_NOT_PERSISTED = 0,
  RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED = 1,
  RD_KAFKA_MSG_STATUS_PERSISTED = 2,
} rd_kafka_msg_status_t;
rd_kafka_msg_status_t rd_kafka_message_status(const rd_kafka_message_t *rkmessage);
typedef enum {
  RD_KAFKA_CONF_UNKNOWN = (- 2),
  RD_KAFKA_CONF_INVALID = (- 1),
  RD_KAFKA_CONF_OK = 0,
} rd_kafka_conf_res_t;
rd_kafka_conf_t *rd_kafka_conf_new(void);
void rd_kafka_conf_destroy(rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup(const rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup_filter(const rd_kafka_conf_t *conf, size_t filter_cnt, const char **filter);
const rd_kafka_conf_t *rd_kafka_conf(rd_kafka_t *rk);
rd_kafka_conf_res_t rd_kafka_conf_set(rd_kafka_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_events(rd_kafka_conf_t *conf, int events);
void rd_kafka_conf_set_background_event_cb(rd_kafka_conf_t *conf, void (*event_cb)(rd_kafka_t *rk, rd_kafka_event_t *rkev, void *opaque));
void rd_kafka_conf_set_dr_cb(rd_kafka_conf_t *conf, void (*dr_cb)(rd_kafka_t *rk, void *payload, size_t len, rd_kafka_resp_err_t err, void *opaque, void *msg_opaque));
void rd_kafka_conf_set_dr_msg_cb(rd_kafka_conf_t *conf, void (*dr_msg_cb)(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_consume_cb(rd_kafka_conf_t *conf, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_rebalance_cb(rd_kafka_conf_t *conf, void (*rebalance_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *partitions, void *opaque));
void rd_kafka_conf_set_offset_commit_cb(rd_kafka_conf_t *conf, void (*offset_commit_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *opaque));
void rd_kafka_conf_set_error_cb(rd_kafka_conf_t *conf, void (*error_cb)(rd_kafka_t *rk, int err, const char *reason, void *opaque));
void rd_kafka_conf_set_throttle_cb(rd_kafka_conf_t *conf, void (*throttle_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int throttle_time_ms, void *opaque));
void rd_kafka_conf_set_log_cb(rd_kafka_conf_t *conf, void (*log_cb)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_conf_set_stats_cb(rd_kafka_conf_t *conf, int (*stats_cb)(rd_kafka_t *rk, char *json, size_t json_len, void *opaque));
void rd_kafka_conf_set_oauthbearer_token_refresh_cb(rd_kafka_conf_t *conf, void (*oauthbearer_token_refresh_cb)(rd_kafka_t *rk, const char *oauthbearer_config, void *opaque));
void rd_kafka_conf_enable_sasl_queue(rd_kafka_conf_t *conf, int enable);
void rd_kafka_conf_set_socket_cb(rd_kafka_conf_t *conf, int (*socket_cb)(int domain, int type, int protocol, void *opaque));
void rd_kafka_conf_set_connect_cb(rd_kafka_conf_t *conf, int (*connect_cb)(int sockfd, const struct sockaddr *addr, int addrlen, const char *id, void *opaque));
void rd_kafka_conf_set_closesocket_cb(rd_kafka_conf_t *conf, int (*closesocket_cb)(int sockfd, void *opaque));
struct addrinfo;
void rd_kafka_conf_set_resolve_cb(rd_kafka_conf_t *conf, int (*resolve_cb)(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res, void *opaque));
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert_verify_cb(rd_kafka_conf_t *conf, int (*ssl_cert_verify_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int *x509_error, int depth, const char *buf, size_t size, char *errstr, size_t errstr_size, void *opaque));
typedef enum rd_kafka_cert_type_t {
  RD_KAFKA_CERT_PUBLIC_KEY,
  RD_KAFKA_CERT_PRIVATE_KEY,
  RD_KAFKA_CERT_CA,
  RD_KAFKA_CERT__CNT,
} rd_kafka_cert_type_t;
typedef enum rd_kafka_cert_enc_t {
  RD_KAFKA_CERT_ENC_PKCS12,
  RD_KAFKA_CERT_ENC_DER,
  RD_KAFKA_CERT_ENC_PEM,
  RD_KAFKA_CERT_ENC__CNT,
} rd_kafka_cert_enc_t;
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert(rd_kafka_conf_t *conf, rd_kafka_cert_type_t cert_type, rd_kafka_cert_enc_t cert_enc, const void *buffer, size_t size, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_engine_callback_data(rd_kafka_conf_t *conf, void *callback_data);
void rd_kafka_conf_set_opaque(rd_kafka_conf_t *conf, void *opaque);
void *rd_kafka_opaque(const rd_kafka_t *rk);
void rd_kafka_conf_set_default_topic_conf(rd_kafka_conf_t *conf, rd_kafka_topic_conf_t *tconf);
rd_kafka_topic_conf_t *rd_kafka_conf_get_default_topic_conf(rd_kafka_conf_t *conf);
rd_kafka_conf_res_t rd_kafka_conf_get(const rd_kafka_conf_t *conf, const char *name, char *dest, size_t *dest_size);
rd_kafka_conf_res_t rd_kafka_topic_conf_get(const rd_kafka_topic_conf_t *conf, const char *name, char *dest, size_t *dest_size);
const char **rd_kafka_conf_dump(rd_kafka_conf_t *conf, size_t *cntp);
const char **rd_kafka_topic_conf_dump(rd_kafka_topic_conf_t *conf, size_t *cntp);
void rd_kafka_conf_dump_free(const char **arr, size_t cnt);
void rd_kafka_conf_properties_show(FILE *fp);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_new(void);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_dup(const rd_kafka_topic_conf_t *conf);
rd_kafka_topic_conf_t *rd_kafka_default_topic_conf_dup(rd_kafka_t *rk);
void rd_kafka_topic_conf_destroy(rd_kafka_topic_conf_t *topic_conf);
rd_kafka_conf_res_t rd_kafka_topic_conf_set(rd_kafka_topic_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_topic_conf_set_opaque(rd_kafka_topic_conf_t *conf, void *rkt_opaque);
void rd_kafka_topic_conf_set_partitioner_cb(rd_kafka_topic_conf_t *topic_conf, int32_t (*partitioner)(const rd_kafka_topic_t *rkt, const void *keydata, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque));
void rd_kafka_topic_conf_set_msg_order_cmp(rd_kafka_topic_conf_t *topic_conf, int (*msg_order_cmp)(const rd_kafka_message_t *a, const rd_kafka_message_t *b));
int rd_kafka_topic_partition_available(const rd_kafka_topic_t *rkt, int32_t partition);
int32_t rd_kafka_msg_partitioner_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
rd_kafka_t *rd_kafka_new(rd_kafka_type_t type, rd_kafka_conf_t *conf, char *errstr, size_t errstr_size);
void rd_kafka_destroy(rd_kafka_t *rk);
void rd_kafka_destroy_flags(rd_kafka_t *rk, int flags);
const char *rd_kafka_name(const rd_kafka_t *rk);
rd_kafka_type_t rd_kafka_type(const rd_kafka_t *rk);
char *rd_kafka_memberid(const rd_kafka_t *rk);
char *rd_kafka_clusterid(rd_kafka_t *rk, int timeout_ms);
int32_t rd_kafka_controllerid(rd_kafka_t *rk, int timeout_ms);
rd_kafka_topic_t *rd_kafka_topic_new(rd_kafka_t *rk, const char *topic, rd_kafka_topic_conf_t *conf);
void rd_kafka_topic_destroy(rd_kafka_topic_t *rkt);
const char *rd_kafka_topic_name(const rd_kafka_topic_t *rkt);
void *rd_kafka_topic_opaque(const rd_kafka_topic_t *rkt);
int rd_kafka_poll(rd_kafka_t *rk, int timeout_ms);
void rd_kafka_yield(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_pause_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_resume_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_query_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_get_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high);
rd_kafka_resp_err_t rd_kafka_offsets_for_times(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets, int timeout_ms);
void *rd_kafka_mem_calloc(rd_kafka_t *rk, size_t num, size_t size);
void *rd_kafka_mem_malloc(rd_kafka_t *rk, size_t size);
void rd_kafka_mem_free(rd_kafka_t *rk, void *ptr);
rd_kafka_queue_t *rd_kafka_queue_new(rd_kafka_t *rk);
void rd_kafka_queue_destroy(rd_kafka_queue_t *rkqu);
rd_kafka_queue_t *rd_kafka_queue_get_main(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_sasl(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_sasl_background_callbacks_enable(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_sasl_set_credentials(rd_kafka_t *rk, const char *username, const char *password);
rd_kafka_queue_t *rd_kafka_queue_get_consumer(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_partition(rd_kafka_t *rk, const char *topic, int32_t partition);
rd_kafka_queue_t *rd_kafka_queue_get_background(rd_kafka_t *rk);
void rd_kafka_queue_forward(rd_kafka_queue_t *src, rd_kafka_queue_t *dst);
rd_kafka_resp_err_t rd_kafka_set_log_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu);
size_t rd_kafka_queue_length(rd_kafka_queue_t *rkqu);
void rd_kafka_queue_io_event_enable(rd_kafka_queue_t *rkqu, int fd, const void *payload, size_t size);
void rd_kafka_queue_cb_event_enable(rd_kafka_queue_t *rkqu, void (*event_cb)(rd_kafka_t *rk, void *qev_opaque), void *qev_opaque);
void rd_kafka_queue_yield(rd_kafka_queue_t *rkqu);
int rd_kafka_consume_start(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
int rd_kafka_consume_start_queue(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, rd_kafka_queue_t *rkqu);
int rd_kafka_consume_stop(rd_kafka_topic_t *rkt, int32_t partition);
rd_kafka_resp_err_t rd_kafka_seek(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, int timeout_ms);
rd_kafka_error_t *rd_kafka_seek_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_message_t *rd_kafka_consume(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms);
ssize_t rd_kafka_consume_batch(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_message_t *rd_kafka_consume_queue(rd_kafka_queue_t *rkqu, int timeout_ms);
ssize_t rd_kafka_consume_batch_queue(rd_kafka_queue_t *rkqu, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback_queue(rd_kafka_queue_t *rkqu, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_offset_store(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
rd_kafka_resp_err_t rd_kafka_offsets_store(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets);
rd_kafka_resp_err_t rd_kafka_subscribe(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *topics);
rd_kafka_resp_err_t rd_kafka_unsubscribe(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_subscription(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **topics);
rd_kafka_message_t *rd_kafka_consumer_poll(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_consumer_close(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_consumer_close_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu);
int rd_kafka_consumer_closed(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_incremental_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_error_t *rd_kafka_incremental_unassign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
const char *rd_kafka_rebalance_protocol(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_assignment(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **partitions);
int rd_kafka_assignment_lost(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_commit(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, int async);
rd_kafka_resp_err_t rd_kafka_commit_message(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, int async);
rd_kafka_resp_err_t rd_kafka_commit_queue(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_queue_t *rkqu, void (*cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_committed(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_position(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata(rd_kafka_t *rk);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new(const char *group_id);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new_with_genid(const char *group_id, int32_t generation_id, const char *member_id, const char *group_instance_id);
void rd_kafka_consumer_group_metadata_destroy(rd_kafka_consumer_group_metadata_t *);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_write(const rd_kafka_consumer_group_metadata_t *cgmd, void **bufferp, size_t *sizep);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_read(rd_kafka_consumer_group_metadata_t **cgmdp, const void *buffer, size_t size);
int rd_kafka_produce(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, void *payload, size_t len, const void *key, size_t keylen, void *msg_opaque);
rd_kafka_resp_err_t rd_kafka_producev(rd_kafka_t *rk, ...);
rd_kafka_error_t *rd_kafka_produceva(rd_kafka_t *rk, const rd_kafka_vu_t *vus, size_t cnt);
int rd_kafka_produce_batch(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, rd_kafka_message_t *rkmessages, int message_cnt);
rd_kafka_resp_err_t rd_kafka_flush(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_purge(rd_kafka_t *rk, int purge_flags);
typedef struct rd_kafka_metadata_broker {
  int32_t id;
  char *host;
  int port;
} rd_kafka_metadata_broker_t;
typedef struct rd_kafka_metadata_partition {
  int32_t id;
  rd_kafka_resp_err_t err;
  int32_t leader;
  int replica_cnt;
  int32_t *replicas;
  int isr_cnt;
  int32_t *isrs;
} rd_kafka_metadata_partition_t;
typedef struct rd_kafka_metadata_topic {
  char *topic;
  int partition_cnt;
  struct rd_kafka_metadata_partition *partitions;
  rd_kafka_resp_err_t err;
} rd_kafka_metadata_topic_t;
typedef struct rd_kafka_metadata {
  int broker_cnt;
  struct rd_kafka_metadata_broker *brokers;
  int topic_cnt;
  struct rd_kafka_metadata_topic *topics;
  int32_t orig_broker_id;
  char *orig_broker_name;
} rd_kafka_metadata_t;
rd_kafka_resp_err_t rd_kafka_metadata(rd_kafka_t *rk, int all_topics, rd_kafka_topic_t *only_rkt, const struct rd_kafka_metadata **metadatap, int timeout_ms);
void rd_kafka_metadata_destroy(const struct rd_kafka_metadata *metadata);
typedef struct rd_kafka_Node_s rd_kafka_Node_t;
int rd_kafka_Node_id(const rd_kafka_Node_t *node);
const char *rd_kafka_Node_host(const rd_kafka_Node_t *node);
uint16_t rd_kafka_Node_port(const rd_kafka_Node_t *node);
struct rd_kafka_group_member_info {
  char *member_id;
  char *client_id;
  char *client_host;
  void *member_metadata;
  int member_metadata_size;
  void *member_assignment;
  int member_assignment_size;
};
typedef enum {
  RD_KAFKA_CONSUMER_GROUP_STATE_UNKNOWN = 0,
  RD_KAFKA_CONSUMER_GROUP_STATE_PREPARING_REBALANCE = 1,
  RD_KAFKA_CONSUMER_GROUP_STATE_COMPLETING_REBALANCE = 2,
  RD_KAFKA_CONSUMER_GROUP_STATE_STABLE = 3,
  RD_KAFKA_CONSUMER_GROUP_STATE_DEAD = 4,
  RD_KAFKA_CONSUMER_GROUP_STATE_EMPTY = 5,
  RD_KAFKA_CONSUMER_GROUP_STATE__CNT,
} rd_kafka_consumer_group_state_t;
struct rd_kafka_group_info {
  struct rd_kafka_metadata_broker broker;
  char *group;
  rd_kafka_resp_err_t err;
  char *state;
  char *protocol_type;
  char *protocol;
  struct rd_kafka_group_member_info *members;
  int member_cnt;
};
struct rd_kafka_group_list {
  struct rd_kafka_group_info *groups;
  int group_cnt;
};
rd_kafka_resp_err_t rd_kafka_list_groups(rd_kafka_t *rk, const char *group, const struct rd_kafka_group_list **grplistp, int timeout_ms);
const char *rd_kafka_consumer_group_state_name(rd_kafka_consumer_group_state_t state);
rd_kafka_consumer_group_state_t rd_kafka_consumer_group_state_code(const char *name);
void rd_kafka_group_list_destroy(const struct rd_kafka_group_list *grplist);
int rd_kafka_brokers_add(rd_kafka_t *rk, const char *brokerlist);
void rd_kafka_set_logger(rd_kafka_t *rk, void (*func)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_set_log_level(rd_kafka_t *rk, int level);
void rd_kafka_log_print(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
void rd_kafka_log_syslog(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
int rd_kafka_outq_len(rd_kafka_t *rk);
void rd_kafka_dump(FILE *fp, rd_kafka_t *rk);
int rd_kafka_thread_cnt(void);
typedef enum rd_kafka_thread_type_t {
  RD_KAFKA_THREAD_MAIN,
  RD_KAFKA_THREAD_BACKGROUND,
  RD_KAFKA_THREAD_BROKER,
} rd_kafka_thread_type_t;
int rd_kafka_wait_destroyed(int timeout_ms);
int rd_kafka_unittest(void);
rd_kafka_resp_err_t rd_kafka_poll_set_consumer(rd_kafka_t *rk);
typedef int rd_kafka_event_type_t;
rd_kafka_event_type_t rd_kafka_event_type(const rd_kafka_event_t *rkev);
const char *rd_kafka_event_name(const rd_kafka_event_t *rkev);
void rd_kafka_event_destroy(rd_kafka_event_t *rkev);
const rd_kafka_message_t *rd_kafka_event_message_next(rd_kafka_event_t *rkev);
size_t rd_kafka_event_message_array(rd_kafka_event_t *rkev, const rd_kafka_message_t **rkmessages, size_t size);
size_t rd_kafka_event_message_count(rd_kafka_event_t *rkev);
const char *rd_kafka_event_config_string(rd_kafka_event_t *rkev);
rd_kafka_resp_err_t rd_kafka_event_error(rd_kafka_event_t *rkev);
const char *rd_kafka_event_error_string(rd_kafka_event_t *rkev);
int rd_kafka_event_error_is_fatal(rd_kafka_event_t *rkev);
void *rd_kafka_event_opaque(rd_kafka_event_t *rkev);
int rd_kafka_event_log(rd_kafka_event_t *rkev, const char **fac, const char **str, int *level);
int rd_kafka_event_debug_contexts(rd_kafka_event_t *rkev, char *dst, size_t dstsize);
const char *rd_kafka_event_stats(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_list_t *rd_kafka_event_topic_partition_list(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_t *rd_kafka_event_topic_partition(rd_kafka_event_t *rkev);
typedef rd_kafka_event_t rd_kafka_CreateTopics_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteTopics_result_t;
typedef rd_kafka_event_t rd_kafka_CreateAcls_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeAcls_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteAcls_result_t;
typedef rd_kafka_event_t rd_kafka_CreatePartitions_result_t;
typedef rd_kafka_event_t rd_kafka_AlterConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteRecords_result_t;
typedef rd_kafka_event_t rd_kafka_ListConsumerGroups_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeConsumerGroups_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteGroups_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteConsumerGroupOffsets_result_t;
typedef rd_kafka_event_t rd_kafka_AlterConsumerGroupOffsets_result_t;
typedef rd_kafka_event_t rd_kafka_ListConsumerGroupOffsets_result_t;
const rd_kafka_CreateTopics_result_t *rd_kafka_event_CreateTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteTopics_result_t *rd_kafka_event_DeleteTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_CreatePartitions_result_t *rd_kafka_event_CreatePartitions_result(rd_kafka_event_t *rkev);
const rd_kafka_AlterConfigs_result_t *rd_kafka_event_AlterConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeConfigs_result_t *rd_kafka_event_DescribeConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteRecords_result_t *rd_kafka_event_DeleteRecords_result(rd_kafka_event_t *rkev);
const rd_kafka_ListConsumerGroups_result_t *rd_kafka_event_ListConsumerGroups_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeConsumerGroups_result_t *rd_kafka_event_DescribeConsumerGroups_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteGroups_result_t *rd_kafka_event_DeleteGroups_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteConsumerGroupOffsets_result_t *rd_kafka_event_DeleteConsumerGroupOffsets_result(rd_kafka_event_t *rkev);
const rd_kafka_CreateAcls_result_t *rd_kafka_event_CreateAcls_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeAcls_result_t *rd_kafka_event_DescribeAcls_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteAcls_result_t *rd_kafka_event_DeleteAcls_result(rd_kafka_event_t *rkev);
const rd_kafka_AlterConsumerGroupOffsets_result_t *rd_kafka_event_AlterConsumerGroupOffsets_result(rd_kafka_event_t *rkev);
const rd_kafka_ListConsumerGroupOffsets_result_t *rd_kafka_event_ListConsumerGroupOffsets_result(rd_kafka_event_t *rkev);
rd_kafka_event_t *rd_kafka_queue_poll(rd_kafka_queue_t *rkqu, int timeout_ms);
int rd_kafka_queue_poll_callback(rd_kafka_queue_t *rkqu, int timeout_ms);
typedef rd_kafka_resp_err_t (rd_kafka_plugin_f_conf_init_t)(rd_kafka_conf_t *conf, void **plug_opaquep, char *errstr, size_t errstr_size);
typedef rd_kafka_conf_res_t (rd_kafka_interceptor_f_on_conf_set_t)(rd_kafka_conf_t *conf, const char *name, const char *val, char *errstr, size_t errstr_size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_dup_t)(rd_kafka_conf_t *new_conf, const rd_kafka_conf_t *old_conf, size_t filter_cnt, const char **filter, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_destroy_t)(void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_new_t)(rd_kafka_t *rk, const rd_kafka_conf_t *conf, void *ic_opaque, char *errstr, size_t errstr_size);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_destroy_t)(rd_kafka_t *rk, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_send_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_acknowledgement_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_consume_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_commit_t)(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_request_sent_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_response_received_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, int64_t rtt, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_start_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_exit_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_broker_state_change_t)(rd_kafka_t *rk, int32_t broker_id, const char *secproto, const char *name, int port, const char *state, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_set(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_set_t *on_conf_set, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_dup(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_dup_t *on_conf_dup, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_destroy(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_destroy_t *on_conf_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_new(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_new_t *on_new, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_destroy(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_destroy_t *on_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_send(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_send_t *on_send, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_acknowledgement(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_acknowledgement_t *on_acknowledgement, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_consume(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_consume_t *on_consume, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_commit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_commit_t *on_commit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_request_sent(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_request_sent_t *on_request_sent, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_response_received(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_response_received_t *on_response_received, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_start(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_start_t *on_thread_start, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_exit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_exit_t *on_thread_exit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_broker_state_change(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_broker_state_change_t *on_broker_state_change, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_topic_result_error(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_error_string(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_name(const rd_kafka_topic_result_t *topicres);
const rd_kafka_error_t *rd_kafka_group_result_error(const rd_kafka_group_result_t *groupres);
const char *rd_kafka_group_result_name(const rd_kafka_group_result_t *groupres);
const rd_kafka_topic_partition_list_t *rd_kafka_group_result_partitions(const rd_kafka_group_result_t *groupres);
typedef enum rd_kafka_admin_op_t {
  RD_KAFKA_ADMIN_OP_ANY = 0,
  RD_KAFKA_ADMIN_OP_CREATETOPICS,
  RD_KAFKA_ADMIN_OP_DELETETOPICS,
  RD_KAFKA_ADMIN_OP_CREATEPARTITIONS,
  RD_KAFKA_ADMIN_OP_ALTERCONFIGS,
  RD_KAFKA_ADMIN_OP_DESCRIBECONFIGS,
  RD_KAFKA_ADMIN_OP_DELETERECORDS,
  RD_KAFKA_ADMIN_OP_DELETEGROUPS,
  RD_KAFKA_ADMIN_OP_DELETECONSUMERGROUPOFFSETS,
  RD_KAFKA_ADMIN_OP_CREATEACLS,
  RD_KAFKA_ADMIN_OP_DESCRIBEACLS,
  RD_KAFKA_ADMIN_OP_DELETEACLS,
  RD_KAFKA_ADMIN_OP_LISTCONSUMERGROUPS,
  RD_KAFKA_ADMIN_OP_DESCRIBECONSUMERGROUPS,
  RD_KAFKA_ADMIN_OP_LISTCONSUMERGROUPOFFSETS,
  RD_KAFKA_ADMIN_OP_ALTERCONSUMERGROUPOFFSETS,
  RD_KAFKA_ADMIN_OP__CNT,
} rd_kafka_admin_op_t;
typedef struct rd_kafka_AdminOptions_s rd_kafka_AdminOptions_t;
rd_kafka_AdminOptions_t *rd_kafka_AdminOptions_new(rd_kafka_t *rk, rd_kafka_admin_op_t for_api);
void rd_kafka_AdminOptions_destroy(rd_kafka_AdminOptions_t *options);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_request_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_operation_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_validate_only(rd_kafka_AdminOptions_t *options, int true_or_false, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_broker(rd_kafka_AdminOptions_t *options, int32_t broker_id, char *errstr, size_t errstr_size);
rd_kafka_error_t *rd_kafka_AdminOptions_set_require_stable_offsets(rd_kafka_AdminOptions_t *options, int true_or_false);
rd_kafka_error_t *rd_kafka_AdminOptions_set_match_consumer_group_states(rd_kafka_AdminOptions_t *options, const rd_kafka_consumer_group_state_t *consumer_group_states, size_t consumer_group_states_cnt);
void rd_kafka_AdminOptions_set_opaque(rd_kafka_AdminOptions_t *options, void *ev_opaque);
typedef struct rd_kafka_NewTopic_s rd_kafka_NewTopic_t;
rd_kafka_NewTopic_t *rd_kafka_NewTopic_new(const char *topic, int num_partitions, int replication_factor, char *errstr, size_t errstr_size);
void rd_kafka_NewTopic_destroy(rd_kafka_NewTopic_t *new_topic);
void rd_kafka_NewTopic_destroy_array(rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_replica_assignment(rd_kafka_NewTopic_t *new_topic, int32_t partition, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_config(rd_kafka_NewTopic_t *new_topic, const char *name, const char *value);
void rd_kafka_CreateTopics(rd_kafka_t *rk, rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreateTopics_result_topics(const rd_kafka_CreateTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteTopic_s rd_kafka_DeleteTopic_t;
rd_kafka_DeleteTopic_t *rd_kafka_DeleteTopic_new(const char *topic);
void rd_kafka_DeleteTopic_destroy(rd_kafka_DeleteTopic_t *del_topic);
void rd_kafka_DeleteTopic_destroy_array(rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt);
void rd_kafka_DeleteTopics(rd_kafka_t *rk, rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_DeleteTopics_result_topics(const rd_kafka_DeleteTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_NewPartitions_s rd_kafka_NewPartitions_t;
rd_kafka_NewPartitions_t *rd_kafka_NewPartitions_new(const char *topic, size_t new_total_cnt, char *errstr, size_t errstr_size);
void rd_kafka_NewPartitions_destroy(rd_kafka_NewPartitions_t *new_parts);
void rd_kafka_NewPartitions_destroy_array(rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt);
rd_kafka_resp_err_t rd_kafka_NewPartitions_set_replica_assignment(rd_kafka_NewPartitions_t *new_parts, int32_t new_partition_idx, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
void rd_kafka_CreatePartitions(rd_kafka_t *rk, rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreatePartitions_result_topics(const rd_kafka_CreatePartitions_result_t *result, size_t *cntp);
typedef enum rd_kafka_ConfigSource_t {
  RD_KAFKA_CONFIG_SOURCE_UNKNOWN_CONFIG = 0,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG = 1,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG = 2,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG = 3,
  RD_KAFKA_CONFIG_SOURCE_STATIC_BROKER_CONFIG = 4,
  RD_KAFKA_CONFIG_SOURCE_DEFAULT_CONFIG = 5,
  RD_KAFKA_CONFIG_SOURCE__CNT,
} rd_kafka_ConfigSource_t;
const char *rd_kafka_ConfigSource_name(rd_kafka_ConfigSource_t confsource);
typedef struct rd_kafka_ConfigEntry_s rd_kafka_ConfigEntry_t;
const char *rd_kafka_ConfigEntry_name(const rd_kafka_ConfigEntry_t *entry);
const char *rd_kafka_ConfigEntry_value(const rd_kafka_ConfigEntry_t *entry);
rd_kafka_ConfigSource_t rd_kafka_ConfigEntry_source(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_read_only(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_default(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_sensitive(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_synonym(const rd_kafka_ConfigEntry_t *entry);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigEntry_synonyms(const rd_kafka_ConfigEntry_t *entry, size_t *cntp);
typedef enum rd_kafka_ResourceType_t {
  RD_KAFKA_RESOURCE_UNKNOWN = 0,
  RD_KAFKA_RESOURCE_ANY = 1,
  RD_KAFKA_RESOURCE_TOPIC = 2,
  RD_KAFKA_RESOURCE_GROUP = 3,
  RD_KAFKA_RESOURCE_BROKER = 4,
  RD_KAFKA_RESOURCE__CNT,
} rd_kafka_ResourceType_t;
typedef enum rd_kafka_ResourcePatternType_t {
  RD_KAFKA_RESOURCE_PATTERN_UNKNOWN = 0,
  RD_KAFKA_RESOURCE_PATTERN_ANY = 1,
  RD_KAFKA_RESOURCE_PATTERN_MATCH = 2,
  RD_KAFKA_RESOURCE_PATTERN_LITERAL = 3,
  RD_KAFKA_RESOURCE_PATTERN_PREFIXED = 4,
  RD_KAFKA_RESOURCE_PATTERN_TYPE__CNT,
} rd_kafka_ResourcePatternType_t;
const char *rd_kafka_ResourcePatternType_name(rd_kafka_ResourcePatternType_t resource_pattern_type);
const char *rd_kafka_ResourceType_name(rd_kafka_ResourceType_t restype);
typedef struct rd_kafka_ConfigResource_s rd_kafka_ConfigResource_t;
rd_kafka_ConfigResource_t *rd_kafka_ConfigResource_new(rd_kafka_ResourceType_t restype, const char *resname);
void rd_kafka_ConfigResource_destroy(rd_kafka_ConfigResource_t *config);
void rd_kafka_ConfigResource_destroy_array(rd_kafka_ConfigResource_t **config, size_t config_cnt);
rd_kafka_resp_err_t rd_kafka_ConfigResource_set_config(rd_kafka_ConfigResource_t *config, const char *name, const char *value);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigResource_configs(const rd_kafka_ConfigResource_t *config, size_t *cntp);
rd_kafka_ResourceType_t rd_kafka_ConfigResource_type(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_name(const rd_kafka_ConfigResource_t *config);
rd_kafka_resp_err_t rd_kafka_ConfigResource_error(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_error_string(const rd_kafka_ConfigResource_t *config);
void rd_kafka_AlterConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_AlterConfigs_result_resources(const rd_kafka_AlterConfigs_result_t *result, size_t *cntp);
void rd_kafka_DescribeConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_DescribeConfigs_result_resources(const rd_kafka_DescribeConfigs_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteRecords_s rd_kafka_DeleteRecords_t;
rd_kafka_DeleteRecords_t *rd_kafka_DeleteRecords_new(const rd_kafka_topic_partition_list_t *before_offsets);
void rd_kafka_DeleteRecords_destroy(rd_kafka_DeleteRecords_t *del_records);
void rd_kafka_DeleteRecords_destroy_array(rd_kafka_DeleteRecords_t **del_records, size_t del_record_cnt);
void rd_kafka_DeleteRecords(rd_kafka_t *rk, rd_kafka_DeleteRecords_t **del_records, size_t del_record_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_partition_list_t *rd_kafka_DeleteRecords_result_offsets(const rd_kafka_DeleteRecords_result_t *result);
typedef struct rd_kafka_ConsumerGroupListing_s rd_kafka_ConsumerGroupListing_t;
typedef struct rd_kafka_ListConsumerGroupsResult_s rd_kafka_ListConsumerGroupsResult_t;
void rd_kafka_ListConsumerGroups(rd_kafka_t *rk, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const char *rd_kafka_ConsumerGroupListing_group_id(const rd_kafka_ConsumerGroupListing_t *grplist);
int rd_kafka_ConsumerGroupListing_is_simple_consumer_group(const rd_kafka_ConsumerGroupListing_t *grplist);
rd_kafka_consumer_group_state_t rd_kafka_ConsumerGroupListing_state(const rd_kafka_ConsumerGroupListing_t *grplist);
const rd_kafka_ConsumerGroupListing_t **rd_kafka_ListConsumerGroups_result_valid(const rd_kafka_ListConsumerGroups_result_t *result, size_t *cntp);
const rd_kafka_error_t **rd_kafka_ListConsumerGroups_result_errors(const rd_kafka_ListConsumerGroups_result_t *result, size_t *cntp);
typedef struct rd_kafka_ConsumerGroupDescription_s rd_kafka_ConsumerGroupDescription_t;
typedef struct rd_kafka_MemberDescription_s rd_kafka_MemberDescription_t;
typedef struct rd_kafka_MemberAssignment_s rd_kafka_MemberAssignment_t;
void rd_kafka_DescribeConsumerGroups(rd_kafka_t *rk, const char **groups, size_t groups_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConsumerGroupDescription_t **rd_kafka_DescribeConsumerGroups_result_groups(const rd_kafka_DescribeConsumerGroups_result_t *result, size_t *cntp);
const char *rd_kafka_ConsumerGroupDescription_group_id(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
const rd_kafka_error_t *rd_kafka_ConsumerGroupDescription_error(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
int rd_kafka_ConsumerGroupDescription_is_simple_consumer_group(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
const char *rd_kafka_ConsumerGroupDescription_partition_assignor(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
rd_kafka_consumer_group_state_t rd_kafka_ConsumerGroupDescription_state(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
const rd_kafka_Node_t *rd_kafka_ConsumerGroupDescription_coordinator(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
size_t rd_kafka_ConsumerGroupDescription_member_count(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
const rd_kafka_MemberDescription_t *rd_kafka_ConsumerGroupDescription_member(const rd_kafka_ConsumerGroupDescription_t *grpdesc, size_t idx);
const char *rd_kafka_MemberDescription_client_id(const rd_kafka_MemberDescription_t *member);
const char *rd_kafka_MemberDescription_group_instance_id(const rd_kafka_MemberDescription_t *member);
const char *rd_kafka_MemberDescription_consumer_id(const rd_kafka_MemberDescription_t *member);
const char *rd_kafka_MemberDescription_host(const rd_kafka_MemberDescription_t *member);
const rd_kafka_MemberAssignment_t *rd_kafka_MemberDescription_assignment(const rd_kafka_MemberDescription_t *member);
const rd_kafka_topic_partition_list_t *rd_kafka_MemberAssignment_partitions(const rd_kafka_MemberAssignment_t *assignment);
typedef struct rd_kafka_DeleteGroup_s rd_kafka_DeleteGroup_t;
rd_kafka_DeleteGroup_t *rd_kafka_DeleteGroup_new(const char *group);
void rd_kafka_DeleteGroup_destroy(rd_kafka_DeleteGroup_t *del_group);
void rd_kafka_DeleteGroup_destroy_array(rd_kafka_DeleteGroup_t **del_groups, size_t del_group_cnt);
void rd_kafka_DeleteGroups(rd_kafka_t *rk, rd_kafka_DeleteGroup_t **del_groups, size_t del_group_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_DeleteGroups_result_groups(const rd_kafka_DeleteGroups_result_t *result, size_t *cntp);
typedef struct rd_kafka_ListConsumerGroupOffsets_s rd_kafka_ListConsumerGroupOffsets_t;
rd_kafka_ListConsumerGroupOffsets_t *rd_kafka_ListConsumerGroupOffsets_new(const char *group_id, const rd_kafka_topic_partition_list_t *partitions);
void rd_kafka_ListConsumerGroupOffsets_destroy(rd_kafka_ListConsumerGroupOffsets_t *list_grpoffsets);
void rd_kafka_ListConsumerGroupOffsets_destroy_array(rd_kafka_ListConsumerGroupOffsets_t **list_grpoffsets, size_t list_grpoffset_cnt);
void rd_kafka_ListConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_ListConsumerGroupOffsets_t **list_grpoffsets, size_t list_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_ListConsumerGroupOffsets_result_groups(const rd_kafka_ListConsumerGroupOffsets_result_t *result, size_t *cntp);
typedef struct rd_kafka_AlterConsumerGroupOffsets_s rd_kafka_AlterConsumerGroupOffsets_t;
rd_kafka_AlterConsumerGroupOffsets_t *rd_kafka_AlterConsumerGroupOffsets_new(const char *group_id, const rd_kafka_topic_partition_list_t *partitions);
void rd_kafka_AlterConsumerGroupOffsets_destroy(rd_kafka_AlterConsumerGroupOffsets_t *alter_grpoffsets);
void rd_kafka_AlterConsumerGroupOffsets_destroy_array(rd_kafka_AlterConsumerGroupOffsets_t **alter_grpoffsets, size_t alter_grpoffset_cnt);
void rd_kafka_AlterConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_AlterConsumerGroupOffsets_t **alter_grpoffsets, size_t alter_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_AlterConsumerGroupOffsets_result_groups(const rd_kafka_AlterConsumerGroupOffsets_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteConsumerGroupOffsets_s rd_kafka_DeleteConsumerGroupOffsets_t;
rd_kafka_DeleteConsumerGroupOffsets_t *rd_kafka_DeleteConsumerGroupOffsets_new(const char *group, const rd_kafka_topic_partition_list_t *partitions);
void rd_kafka_DeleteConsumerGroupOffsets_destroy(rd_kafka_DeleteConsumerGroupOffsets_t *del_grpoffsets);
void rd_kafka_DeleteConsumerGroupOffsets_destroy_array(rd_kafka_DeleteConsumerGroupOffsets_t **del_grpoffsets, size_t del_grpoffset_cnt);
void rd_kafka_DeleteConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_DeleteConsumerGroupOffsets_t **del_grpoffsets, size_t del_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_DeleteConsumerGroupOffsets_result_groups(const rd_kafka_DeleteConsumerGroupOffsets_result_t *result, size_t *cntp);
typedef struct rd_kafka_AclBinding_s rd_kafka_AclBinding_t;
typedef rd_kafka_AclBinding_t rd_kafka_AclBindingFilter_t;
const rd_kafka_error_t *rd_kafka_acl_result_error(const rd_kafka_acl_result_t *aclres);
typedef enum rd_kafka_AclOperation_t {
  RD_KAFKA_ACL_OPERATION_UNKNOWN = 0,
  RD_KAFKA_ACL_OPERATION_ANY = 1,
  RD_KAFKA_ACL_OPERATION_ALL = 2,
  RD_KAFKA_ACL_OPERATION_READ = 3,
  RD_KAFKA_ACL_OPERATION_WRITE = 4,
  RD_KAFKA_ACL_OPERATION_CREATE = 5,
  RD_KAFKA_ACL_OPERATION_DELETE = 6,
  RD_KAFKA_ACL_OPERATION_ALTER = 7,
  RD_KAFKA_ACL_OPERATION_DESCRIBE = 8,
  RD_KAFKA_ACL_OPERATION_CLUSTER_ACTION = 9,
  RD_KAFKA_ACL_OPERATION_DESCRIBE_CONFIGS = 10,
  RD_KAFKA_ACL_OPERATION_ALTER_CONFIGS = 11,
  RD_KAFKA_ACL_OPERATION_IDEMPOTENT_WRITE = 12,
  RD_KAFKA_ACL_OPERATION__CNT,
} rd_kafka_AclOperation_t;
const char *rd_kafka_AclOperation_name(rd_kafka_AclOperation_t acl_operation);
typedef enum rd_kafka_AclPermissionType_t {
  RD_KAFKA_ACL_PERMISSION_TYPE_UNKNOWN = 0,
  RD_KAFKA_ACL_PERMISSION_TYPE_ANY = 1,
  RD_KAFKA_ACL_PERMISSION_TYPE_DENY = 2,
  RD_KAFKA_ACL_PERMISSION_TYPE_ALLOW = 3,
  RD_KAFKA_ACL_PERMISSION_TYPE__CNT,
} rd_kafka_AclPermissionType_t;
const char *rd_kafka_AclPermissionType_name(rd_kafka_AclPermissionType_t acl_permission_type);
rd_kafka_AclBinding_t *rd_kafka_AclBinding_new(rd_kafka_ResourceType_t restype, const char *name, rd_kafka_ResourcePatternType_t resource_pattern_type, const char *principal, const char *host, rd_kafka_AclOperation_t operation, rd_kafka_AclPermissionType_t permission_type, char *errstr, size_t errstr_size);
rd_kafka_AclBindingFilter_t *rd_kafka_AclBindingFilter_new(rd_kafka_ResourceType_t restype, const char *name, rd_kafka_ResourcePatternType_t resource_pattern_type, const char *principal, const char *host, rd_kafka_AclOperation_t operation, rd_kafka_AclPermissionType_t permission_type, char *errstr, size_t errstr_size);
rd_kafka_ResourceType_t rd_kafka_AclBinding_restype(const rd_kafka_AclBinding_t *acl);
const char *rd_kafka_AclBinding_name(const rd_kafka_AclBinding_t *acl);
const char *rd_kafka_AclBinding_principal(const rd_kafka_AclBinding_t *acl);
const char *rd_kafka_AclBinding_host(const rd_kafka_AclBinding_t *acl);
rd_kafka_AclOperation_t rd_kafka_AclBinding_operation(const rd_kafka_AclBinding_t *acl);
rd_kafka_AclPermissionType_t rd_kafka_AclBinding_permission_type(const rd_kafka_AclBinding_t *acl);
rd_kafka_ResourcePatternType_t rd_kafka_AclBinding_resource_pattern_type(const rd_kafka_AclBinding_t *acl);
const rd_kafka_error_t *rd_kafka_AclBinding_error(const rd_kafka_AclBinding_t *acl);
void rd_kafka_AclBinding_destroy(rd_kafka_AclBinding_t *acl_binding);
void rd_kafka_AclBinding_destroy_array(rd_kafka_AclBinding_t **acl_bindings, size_t acl_bindings_cnt);
const rd_kafka_acl_result_t **rd_kafka_CreateAcls_result_acls(const rd_kafka_CreateAcls_result_t *result, size_t *cntp);
void rd_kafka_CreateAcls(rd_kafka_t *rk, rd_kafka_AclBinding_t **new_acls, size_t new_acls_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_AclBinding_t **rd_kafka_DescribeAcls_result_acls(const rd_kafka_DescribeAcls_result_t *result, size_t *cntp);
void rd_kafka_DescribeAcls(rd_kafka_t *rk, rd_kafka_AclBindingFilter_t *acl_filter, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
typedef struct rd_kafka_DeleteAcls_result_response_s rd_kafka_DeleteAcls_result_response_t;
const rd_kafka_DeleteAcls_result_response_t **rd_kafka_DeleteAcls_result_responses(const rd_kafka_DeleteAcls_result_t *result, size_t *cntp);
const rd_kafka_error_t *rd_kafka_DeleteAcls_result_response_error(const rd_kafka_DeleteAcls_result_response_t *result_response);
const rd_kafka_AclBinding_t **rd_kafka_DeleteAcls_result_response_matching_acls(const rd_kafka_DeleteAcls_result_response_t *result_response, size_t *matching_acls_cntp);
void rd_kafka_DeleteAcls(rd_kafka_t *rk, rd_kafka_AclBindingFilter_t **del_acls, size_t del_acls_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token(rd_kafka_t *rk, const char *token_value, int64_t md_lifetime_ms, const char *md_principal_name, const char **extensions, size_t extension_size, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token_failure(rd_kafka_t *rk, const char *errstr);
rd_kafka_error_t *rd_kafka_init_transactions(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_begin_transaction(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_send_offsets_to_transaction(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, const rd_kafka_consumer_group_metadata_t *cgmetadata, int timeout_ms);
rd_kafka_error_t *rd_kafka_commit_transaction(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_abort_transaction(rd_kafka_t *rk, int timeout_ms);
typedef struct rd_kafka_mock_cluster_s rd_kafka_mock_cluster_t;
rd_kafka_mock_cluster_t *rd_kafka_mock_cluster_new(rd_kafka_t *rk, int broker_cnt);
void rd_kafka_mock_cluster_destroy(rd_kafka_mock_cluster_t *mcluster);
rd_kafka_t *rd_kafka_mock_cluster_handle(const rd_kafka_mock_cluster_t *mcluster);
rd_kafka_mock_cluster_t *rd_kafka_handle_mock_cluster(const rd_kafka_t *rk);
const char *rd_kafka_mock_cluster_bootstraps(const rd_kafka_mock_cluster_t *mcluster);
void rd_kafka_mock_clear_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey);
void rd_kafka_mock_push_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, ...);
void rd_kafka_mock_push_request_errors_array(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, const rd_kafka_resp_err_t *errors);
rd_kafka_resp_err_t rd_kafka_mock_broker_push_request_error_rtts(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int16_t ApiKey, size_t cnt, ...);
rd_kafka_resp_err_t rd_kafka_mock_broker_error_stack_cnt(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int16_t ApiKey, size_t *cntp);
void rd_kafka_mock_topic_set_error(rd_kafka_mock_cluster_t *mcluster, const char *topic, rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_mock_topic_create(rd_kafka_mock_cluster_t *mcluster, const char *topic, int partition_cnt, int replication_factor);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_leader(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower_wmarks(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int64_t lo, int64_t hi);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_down(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_up(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rtt(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int rtt_ms);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rack(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, const char *rack);
rd_kafka_resp_err_t rd_kafka_mock_coordinator_set(rd_kafka_mock_cluster_t *mcluster, const char *key_type, const char *key, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_set_apiversion(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, int16_t MinVersion, int16_t MaxVersion);
'
rdkafka.h, rdkafka_mock.h

RD_KAFKA_VERSION

public RD_KAFKA_VERSION = 33620223

librdkafka version

Interpreted as hex MM.mm.rr.xx:

  • MM = Major
  • mm = minor
  • rr = revision
  • xx = pre-release id (0xff is the final release)

E.g.: 0x000801ff = 0.8.1

Remarks
This value should only be used during compile time, for runtime checks of version use rd_kafka_version()

RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE

public RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76

Unsupported compression type

RD_KAFKA_RESP_ERR_END_ALL

public RD_KAFKA_RESP_ERR_END_ALL = 98
enum rd_kafka_resp_err_t

RD_KAFKA_ADMIN_OP__CNT

public RD_KAFKA_ADMIN_OP__CNT = 16

Number of ops defined

RD_KAFKA_CDEF

public RD_KAFKA_CDEF = 'typedef long int ssize_t;
typedef struct _IO_FILE FILE;
typedef long int mode_t;
typedef signed int int16_t;
typedef unsigned int uint16_t;
typedef signed int int32_t;
typedef signed long int int64_t;
int rd_kafka_version(void);
const char *rd_kafka_version_str(void);
typedef enum rd_kafka_type_t {
  RD_KAFKA_PRODUCER,
  RD_KAFKA_CONSUMER,
} rd_kafka_type_t;
typedef enum rd_kafka_timestamp_type_t {
  RD_KAFKA_TIMESTAMP_NOT_AVAILABLE,
  RD_KAFKA_TIMESTAMP_CREATE_TIME,
  RD_KAFKA_TIMESTAMP_LOG_APPEND_TIME,
} rd_kafka_timestamp_type_t;
const char *rd_kafka_get_debug_contexts(void);
typedef struct rd_kafka_s rd_kafka_t;
typedef struct rd_kafka_topic_s rd_kafka_topic_t;
typedef struct rd_kafka_conf_s rd_kafka_conf_t;
typedef struct rd_kafka_topic_conf_s rd_kafka_topic_conf_t;
typedef struct rd_kafka_queue_s rd_kafka_queue_t;
typedef struct rd_kafka_op_s rd_kafka_event_t;
typedef struct rd_kafka_topic_result_s rd_kafka_topic_result_t;
typedef struct rd_kafka_consumer_group_metadata_s rd_kafka_consumer_group_metadata_t;
typedef struct rd_kafka_error_s {
  unsigned int code;
  char *errstr;
  unsigned char fatal;
  unsigned char retriable;
  unsigned char txn_requires_abort;
} rd_kafka_error_t;
typedef struct rd_kafka_headers_s rd_kafka_headers_t;
typedef struct rd_kafka_group_result_s rd_kafka_group_result_t;
typedef struct rd_kafka_acl_result_s rd_kafka_acl_result_t;
typedef enum {
  RD_KAFKA_RESP_ERR__BEGIN = (- 200),
  RD_KAFKA_RESP_ERR__BAD_MSG = (- 199),
  RD_KAFKA_RESP_ERR__BAD_COMPRESSION = (- 198),
  RD_KAFKA_RESP_ERR__DESTROY = (- 197),
  RD_KAFKA_RESP_ERR__FAIL = (- 196),
  RD_KAFKA_RESP_ERR__TRANSPORT = (- 195),
  RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE = (- 194),
  RD_KAFKA_RESP_ERR__RESOLVE = (- 193),
  RD_KAFKA_RESP_ERR__MSG_TIMED_OUT = (- 192),
  RD_KAFKA_RESP_ERR__PARTITION_EOF = (- 191),
  RD_KAFKA_RESP_ERR__UNKNOWN_PARTITION = (- 190),
  RD_KAFKA_RESP_ERR__FS = (- 189),
  RD_KAFKA_RESP_ERR__UNKNOWN_TOPIC = (- 188),
  RD_KAFKA_RESP_ERR__ALL_BROKERS_DOWN = (- 187),
  RD_KAFKA_RESP_ERR__INVALID_ARG = (- 186),
  RD_KAFKA_RESP_ERR__TIMED_OUT = (- 185),
  RD_KAFKA_RESP_ERR__QUEUE_FULL = (- 184),
  RD_KAFKA_RESP_ERR__ISR_INSUFF = (- 183),
  RD_KAFKA_RESP_ERR__NODE_UPDATE = (- 182),
  RD_KAFKA_RESP_ERR__SSL = (- 181),
  RD_KAFKA_RESP_ERR__WAIT_COORD = (- 180),
  RD_KAFKA_RESP_ERR__UNKNOWN_GROUP = (- 179),
  RD_KAFKA_RESP_ERR__IN_PROGRESS = (- 178),
  RD_KAFKA_RESP_ERR__PREV_IN_PROGRESS = (- 177),
  RD_KAFKA_RESP_ERR__EXISTING_SUBSCRIPTION = (- 176),
  RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS = (- 175),
  RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS = (- 174),
  RD_KAFKA_RESP_ERR__CONFLICT = (- 173),
  RD_KAFKA_RESP_ERR__STATE = (- 172),
  RD_KAFKA_RESP_ERR__UNKNOWN_PROTOCOL = (- 171),
  RD_KAFKA_RESP_ERR__NOT_IMPLEMENTED = (- 170),
  RD_KAFKA_RESP_ERR__AUTHENTICATION = (- 169),
  RD_KAFKA_RESP_ERR__NO_OFFSET = (- 168),
  RD_KAFKA_RESP_ERR__OUTDATED = (- 167),
  RD_KAFKA_RESP_ERR__TIMED_OUT_QUEUE = (- 166),
  RD_KAFKA_RESP_ERR__UNSUPPORTED_FEATURE = (- 165),
  RD_KAFKA_RESP_ERR__WAIT_CACHE = (- 164),
  RD_KAFKA_RESP_ERR__INTR = (- 163),
  RD_KAFKA_RESP_ERR__KEY_SERIALIZATION = (- 162),
  RD_KAFKA_RESP_ERR__VALUE_SERIALIZATION = (- 161),
  RD_KAFKA_RESP_ERR__KEY_DESERIALIZATION = (- 160),
  RD_KAFKA_RESP_ERR__VALUE_DESERIALIZATION = (- 159),
  RD_KAFKA_RESP_ERR__PARTIAL = (- 158),
  RD_KAFKA_RESP_ERR__READ_ONLY = (- 157),
  RD_KAFKA_RESP_ERR__NOENT = (- 156),
  RD_KAFKA_RESP_ERR__UNDERFLOW = (- 155),
  RD_KAFKA_RESP_ERR__INVALID_TYPE = (- 154),
  RD_KAFKA_RESP_ERR__RETRY = (- 153),
  RD_KAFKA_RESP_ERR__PURGE_QUEUE = (- 152),
  RD_KAFKA_RESP_ERR__PURGE_INFLIGHT = (- 151),
  RD_KAFKA_RESP_ERR__FATAL = (- 150),
  RD_KAFKA_RESP_ERR__INCONSISTENT = (- 149),
  RD_KAFKA_RESP_ERR__GAPLESS_GUARANTEE = (- 148),
  RD_KAFKA_RESP_ERR__MAX_POLL_EXCEEDED = (- 147),
  RD_KAFKA_RESP_ERR__UNKNOWN_BROKER = (- 146),
  RD_KAFKA_RESP_ERR__NOT_CONFIGURED = (- 145),
  RD_KAFKA_RESP_ERR__FENCED = (- 144),
  RD_KAFKA_RESP_ERR__APPLICATION = (- 143),
  RD_KAFKA_RESP_ERR__ASSIGNMENT_LOST = (- 142),
  RD_KAFKA_RESP_ERR__NOOP = (- 141),
  RD_KAFKA_RESP_ERR__AUTO_OFFSET_RESET = (- 140),
  RD_KAFKA_RESP_ERR__LOG_TRUNCATION = (- 139),
  RD_KAFKA_RESP_ERR__END = (- 100),
  RD_KAFKA_RESP_ERR_UNKNOWN = (- 1),
  RD_KAFKA_RESP_ERR_NO_ERROR = 0,
  RD_KAFKA_RESP_ERR_OFFSET_OUT_OF_RANGE = 1,
  RD_KAFKA_RESP_ERR_INVALID_MSG = 2,
  RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_OR_PART = 3,
  RD_KAFKA_RESP_ERR_INVALID_MSG_SIZE = 4,
  RD_KAFKA_RESP_ERR_LEADER_NOT_AVAILABLE = 5,
  RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION = 6,
  RD_KAFKA_RESP_ERR_REQUEST_TIMED_OUT = 7,
  RD_KAFKA_RESP_ERR_BROKER_NOT_AVAILABLE = 8,
  RD_KAFKA_RESP_ERR_REPLICA_NOT_AVAILABLE = 9,
  RD_KAFKA_RESP_ERR_MSG_SIZE_TOO_LARGE = 10,
  RD_KAFKA_RESP_ERR_STALE_CTRL_EPOCH = 11,
  RD_KAFKA_RESP_ERR_OFFSET_METADATA_TOO_LARGE = 12,
  RD_KAFKA_RESP_ERR_NETWORK_EXCEPTION = 13,
  RD_KAFKA_RESP_ERR_COORDINATOR_LOAD_IN_PROGRESS = 14,
  RD_KAFKA_RESP_ERR_COORDINATOR_NOT_AVAILABLE = 15,
  RD_KAFKA_RESP_ERR_NOT_COORDINATOR = 16,
  RD_KAFKA_RESP_ERR_TOPIC_EXCEPTION = 17,
  RD_KAFKA_RESP_ERR_RECORD_LIST_TOO_LARGE = 18,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS = 19,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS_AFTER_APPEND = 20,
  RD_KAFKA_RESP_ERR_INVALID_REQUIRED_ACKS = 21,
  RD_KAFKA_RESP_ERR_ILLEGAL_GENERATION = 22,
  RD_KAFKA_RESP_ERR_INCONSISTENT_GROUP_PROTOCOL = 23,
  RD_KAFKA_RESP_ERR_INVALID_GROUP_ID = 24,
  RD_KAFKA_RESP_ERR_UNKNOWN_MEMBER_ID = 25,
  RD_KAFKA_RESP_ERR_INVALID_SESSION_TIMEOUT = 26,
  RD_KAFKA_RESP_ERR_REBALANCE_IN_PROGRESS = 27,
  RD_KAFKA_RESP_ERR_INVALID_COMMIT_OFFSET_SIZE = 28,
  RD_KAFKA_RESP_ERR_TOPIC_AUTHORIZATION_FAILED = 29,
  RD_KAFKA_RESP_ERR_GROUP_AUTHORIZATION_FAILED = 30,
  RD_KAFKA_RESP_ERR_CLUSTER_AUTHORIZATION_FAILED = 31,
  RD_KAFKA_RESP_ERR_INVALID_TIMESTAMP = 32,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_SASL_MECHANISM = 33,
  RD_KAFKA_RESP_ERR_ILLEGAL_SASL_STATE = 34,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_VERSION = 35,
  RD_KAFKA_RESP_ERR_TOPIC_ALREADY_EXISTS = 36,
  RD_KAFKA_RESP_ERR_INVALID_PARTITIONS = 37,
  RD_KAFKA_RESP_ERR_INVALID_REPLICATION_FACTOR = 38,
  RD_KAFKA_RESP_ERR_INVALID_REPLICA_ASSIGNMENT = 39,
  RD_KAFKA_RESP_ERR_INVALID_CONFIG = 40,
  RD_KAFKA_RESP_ERR_NOT_CONTROLLER = 41,
  RD_KAFKA_RESP_ERR_INVALID_REQUEST = 42,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_FOR_MESSAGE_FORMAT = 43,
  RD_KAFKA_RESP_ERR_POLICY_VIOLATION = 44,
  RD_KAFKA_RESP_ERR_OUT_OF_ORDER_SEQUENCE_NUMBER = 45,
  RD_KAFKA_RESP_ERR_DUPLICATE_SEQUENCE_NUMBER = 46,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_EPOCH = 47,
  RD_KAFKA_RESP_ERR_INVALID_TXN_STATE = 48,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_ID_MAPPING = 49,
  RD_KAFKA_RESP_ERR_INVALID_TRANSACTION_TIMEOUT = 50,
  RD_KAFKA_RESP_ERR_CONCURRENT_TRANSACTIONS = 51,
  RD_KAFKA_RESP_ERR_TRANSACTION_COORDINATOR_FENCED = 52,
  RD_KAFKA_RESP_ERR_TRANSACTIONAL_ID_AUTHORIZATION_FAILED = 53,
  RD_KAFKA_RESP_ERR_SECURITY_DISABLED = 54,
  RD_KAFKA_RESP_ERR_OPERATION_NOT_ATTEMPTED = 55,
  RD_KAFKA_RESP_ERR_KAFKA_STORAGE_ERROR = 56,
  RD_KAFKA_RESP_ERR_LOG_DIR_NOT_FOUND = 57,
  RD_KAFKA_RESP_ERR_SASL_AUTHENTICATION_FAILED = 58,
  RD_KAFKA_RESP_ERR_UNKNOWN_PRODUCER_ID = 59,
  RD_KAFKA_RESP_ERR_REASSIGNMENT_IN_PROGRESS = 60,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTH_DISABLED = 61,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_NOT_FOUND = 62,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_OWNER_MISMATCH = 63,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_REQUEST_NOT_ALLOWED = 64,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTHORIZATION_FAILED = 65,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_EXPIRED = 66,
  RD_KAFKA_RESP_ERR_INVALID_PRINCIPAL_TYPE = 67,
  RD_KAFKA_RESP_ERR_NON_EMPTY_GROUP = 68,
  RD_KAFKA_RESP_ERR_GROUP_ID_NOT_FOUND = 69,
  RD_KAFKA_RESP_ERR_FETCH_SESSION_ID_NOT_FOUND = 70,
  RD_KAFKA_RESP_ERR_INVALID_FETCH_SESSION_EPOCH = 71,
  RD_KAFKA_RESP_ERR_LISTENER_NOT_FOUND = 72,
  RD_KAFKA_RESP_ERR_TOPIC_DELETION_DISABLED = 73,
  RD_KAFKA_RESP_ERR_FENCED_LEADER_EPOCH = 74,
  RD_KAFKA_RESP_ERR_UNKNOWN_LEADER_EPOCH = 75,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76,
  RD_KAFKA_RESP_ERR_STALE_BROKER_EPOCH = 77,
  RD_KAFKA_RESP_ERR_OFFSET_NOT_AVAILABLE = 78,
  RD_KAFKA_RESP_ERR_MEMBER_ID_REQUIRED = 79,
  RD_KAFKA_RESP_ERR_PREFERRED_LEADER_NOT_AVAILABLE = 80,
  RD_KAFKA_RESP_ERR_GROUP_MAX_SIZE_REACHED = 81,
  RD_KAFKA_RESP_ERR_FENCED_INSTANCE_ID = 82,
  RD_KAFKA_RESP_ERR_ELIGIBLE_LEADERS_NOT_AVAILABLE = 83,
  RD_KAFKA_RESP_ERR_ELECTION_NOT_NEEDED = 84,
  RD_KAFKA_RESP_ERR_NO_REASSIGNMENT_IN_PROGRESS = 85,
  RD_KAFKA_RESP_ERR_GROUP_SUBSCRIBED_TO_TOPIC = 86,
  RD_KAFKA_RESP_ERR_INVALID_RECORD = 87,
  RD_KAFKA_RESP_ERR_UNSTABLE_OFFSET_COMMIT = 88,
  RD_KAFKA_RESP_ERR_THROTTLING_QUOTA_EXCEEDED = 89,
  RD_KAFKA_RESP_ERR_PRODUCER_FENCED = 90,
  RD_KAFKA_RESP_ERR_RESOURCE_NOT_FOUND = 91,
  RD_KAFKA_RESP_ERR_DUPLICATE_RESOURCE = 92,
  RD_KAFKA_RESP_ERR_UNACCEPTABLE_CREDENTIAL = 93,
  RD_KAFKA_RESP_ERR_INCONSISTENT_VOTER_SET = 94,
  RD_KAFKA_RESP_ERR_INVALID_UPDATE_VERSION = 95,
  RD_KAFKA_RESP_ERR_FEATURE_UPDATE_FAILED = 96,
  RD_KAFKA_RESP_ERR_PRINCIPAL_DESERIALIZATION_FAILURE = 97,
  RD_KAFKA_RESP_ERR_END_ALL,
} rd_kafka_resp_err_t;
struct rd_kafka_err_desc {
  rd_kafka_resp_err_t code;
  char *name;
  char *desc;
};
void rd_kafka_get_err_descs(const struct rd_kafka_err_desc **errdescs, size_t *cntp);
const char *rd_kafka_err2str(rd_kafka_resp_err_t err);
const char *rd_kafka_err2name(rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_last_error(void);
rd_kafka_resp_err_t rd_kafka_errno2err(int errnox);
int rd_kafka_errno(void);
rd_kafka_resp_err_t rd_kafka_fatal_error(rd_kafka_t *rk, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_test_fatal_error(rd_kafka_t *rk, rd_kafka_resp_err_t err, const char *reason);
rd_kafka_resp_err_t rd_kafka_error_code(const rd_kafka_error_t *error);
const char *rd_kafka_error_name(const rd_kafka_error_t *error);
const char *rd_kafka_error_string(const rd_kafka_error_t *error);
int rd_kafka_error_is_fatal(const rd_kafka_error_t *error);
int rd_kafka_error_is_retriable(const rd_kafka_error_t *error);
int rd_kafka_error_txn_requires_abort(const rd_kafka_error_t *error);
void rd_kafka_error_destroy(rd_kafka_error_t *error);
rd_kafka_error_t *rd_kafka_error_new(rd_kafka_resp_err_t code, const char *fmt, ...);
typedef struct rd_kafka_topic_partition_s {
  char *topic;
  int32_t partition;
  int64_t offset;
  void *metadata;
  size_t metadata_size;
  void *opaque;
  rd_kafka_resp_err_t err;
  void *_private;
} rd_kafka_topic_partition_t;
void rd_kafka_topic_partition_destroy(rd_kafka_topic_partition_t *rktpar);
void rd_kafka_topic_partition_set_leader_epoch(rd_kafka_topic_partition_t *rktpar, int32_t leader_epoch);
int32_t rd_kafka_topic_partition_get_leader_epoch(const rd_kafka_topic_partition_t *rktpar);
typedef struct rd_kafka_topic_partition_list_s {
  int cnt;
  int size;
  rd_kafka_topic_partition_t *elems;
} rd_kafka_topic_partition_list_t;
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_new(int size);
void rd_kafka_topic_partition_list_destroy(rd_kafka_topic_partition_list_t *rkparlist);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_add(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_add_range(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t start, int32_t stop);
int rd_kafka_topic_partition_list_del(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
int rd_kafka_topic_partition_list_del_by_idx(rd_kafka_topic_partition_list_t *rktparlist, int idx);
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_copy(const rd_kafka_topic_partition_list_t *src);
rd_kafka_resp_err_t rd_kafka_topic_partition_list_set_offset(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition, int64_t offset);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_find(const rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_sort(rd_kafka_topic_partition_list_t *rktparlist, int (*cmp)(const void *a, const void *b, void *cmp_opaque), void *cmp_opaque);
typedef enum rd_kafka_vtype_t {
  RD_KAFKA_VTYPE_END,
  RD_KAFKA_VTYPE_TOPIC,
  RD_KAFKA_VTYPE_RKT,
  RD_KAFKA_VTYPE_PARTITION,
  RD_KAFKA_VTYPE_VALUE,
  RD_KAFKA_VTYPE_KEY,
  RD_KAFKA_VTYPE_OPAQUE,
  RD_KAFKA_VTYPE_MSGFLAGS,
  RD_KAFKA_VTYPE_TIMESTAMP,
  RD_KAFKA_VTYPE_HEADER,
  RD_KAFKA_VTYPE_HEADERS,
} rd_kafka_vtype_t;
typedef struct rd_kafka_vu_s {
  rd_kafka_vtype_t vtype;
  union {
    char *cstr;
    rd_kafka_topic_t *rkt;
    int i;
    int32_t i32;
    int64_t i64;
    struct {
      void *ptr;
      size_t size;
    } mem;
    struct {
      char *name;
      void *val;
      ssize_t size;
    } header;
    rd_kafka_headers_t *headers;
    void *ptr;
    char _pad[64];
  } u;
} rd_kafka_vu_t;
rd_kafka_headers_t *rd_kafka_headers_new(size_t initial_count);
void rd_kafka_headers_destroy(rd_kafka_headers_t *hdrs);
rd_kafka_headers_t *rd_kafka_headers_copy(const rd_kafka_headers_t *src);
rd_kafka_resp_err_t rd_kafka_header_add(rd_kafka_headers_t *hdrs, const char *name, ssize_t name_size, const void *value, ssize_t value_size);
rd_kafka_resp_err_t rd_kafka_header_remove(rd_kafka_headers_t *hdrs, const char *name);
rd_kafka_resp_err_t rd_kafka_header_get_last(const rd_kafka_headers_t *hdrs, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get(const rd_kafka_headers_t *hdrs, size_t idx, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get_all(const rd_kafka_headers_t *hdrs, size_t idx, const char **namep, const void **valuep, size_t *sizep);
typedef struct rd_kafka_message_s {
  rd_kafka_resp_err_t err;
  rd_kafka_topic_t *rkt;
  int32_t partition;
  void *payload;
  size_t len;
  void *key;
  size_t key_len;
  int64_t offset;
  void *_private;
} rd_kafka_message_t;
void rd_kafka_message_destroy(rd_kafka_message_t *rkmessage);
const char *rd_kafka_message_errstr(const rd_kafka_message_t *rkmessage);
int64_t rd_kafka_message_timestamp(const rd_kafka_message_t *rkmessage, rd_kafka_timestamp_type_t *tstype);
int64_t rd_kafka_message_latency(const rd_kafka_message_t *rkmessage);
int32_t rd_kafka_message_broker_id(const rd_kafka_message_t *rkmessage);
rd_kafka_resp_err_t rd_kafka_message_headers(const rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
rd_kafka_resp_err_t rd_kafka_message_detach_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
void rd_kafka_message_set_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t *hdrs);
size_t rd_kafka_header_cnt(const rd_kafka_headers_t *hdrs);
typedef enum {
  RD_KAFKA_MSG_STATUS_NOT_PERSISTED = 0,
  RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED = 1,
  RD_KAFKA_MSG_STATUS_PERSISTED = 2,
} rd_kafka_msg_status_t;
rd_kafka_msg_status_t rd_kafka_message_status(const rd_kafka_message_t *rkmessage);
int32_t rd_kafka_message_leader_epoch(const rd_kafka_message_t *rkmessage);
typedef enum {
  RD_KAFKA_CONF_UNKNOWN = (- 2),
  RD_KAFKA_CONF_INVALID = (- 1),
  RD_KAFKA_CONF_OK = 0,
} rd_kafka_conf_res_t;
rd_kafka_conf_t *rd_kafka_conf_new(void);
void rd_kafka_conf_destroy(rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup(const rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup_filter(const rd_kafka_conf_t *conf, size_t filter_cnt, const char **filter);
const rd_kafka_conf_t *rd_kafka_conf(rd_kafka_t *rk);
rd_kafka_conf_res_t rd_kafka_conf_set(rd_kafka_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_events(rd_kafka_conf_t *conf, int events);
void rd_kafka_conf_set_background_event_cb(rd_kafka_conf_t *conf, void (*event_cb)(rd_kafka_t *rk, rd_kafka_event_t *rkev, void *opaque));
void rd_kafka_conf_set_dr_cb(rd_kafka_conf_t *conf, void (*dr_cb)(rd_kafka_t *rk, void *payload, size_t len, rd_kafka_resp_err_t err, void *opaque, void *msg_opaque));
void rd_kafka_conf_set_dr_msg_cb(rd_kafka_conf_t *conf, void (*dr_msg_cb)(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_consume_cb(rd_kafka_conf_t *conf, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_rebalance_cb(rd_kafka_conf_t *conf, void (*rebalance_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *partitions, void *opaque));
void rd_kafka_conf_set_offset_commit_cb(rd_kafka_conf_t *conf, void (*offset_commit_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *opaque));
void rd_kafka_conf_set_error_cb(rd_kafka_conf_t *conf, void (*error_cb)(rd_kafka_t *rk, int err, const char *reason, void *opaque));
void rd_kafka_conf_set_throttle_cb(rd_kafka_conf_t *conf, void (*throttle_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int throttle_time_ms, void *opaque));
void rd_kafka_conf_set_log_cb(rd_kafka_conf_t *conf, void (*log_cb)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_conf_set_stats_cb(rd_kafka_conf_t *conf, int (*stats_cb)(rd_kafka_t *rk, char *json, size_t json_len, void *opaque));
void rd_kafka_conf_set_oauthbearer_token_refresh_cb(rd_kafka_conf_t *conf, void (*oauthbearer_token_refresh_cb)(rd_kafka_t *rk, const char *oauthbearer_config, void *opaque));
void rd_kafka_conf_enable_sasl_queue(rd_kafka_conf_t *conf, int enable);
void rd_kafka_conf_set_socket_cb(rd_kafka_conf_t *conf, int (*socket_cb)(int domain, int type, int protocol, void *opaque));
void rd_kafka_conf_set_connect_cb(rd_kafka_conf_t *conf, int (*connect_cb)(int sockfd, const struct sockaddr *addr, int addrlen, const char *id, void *opaque));
void rd_kafka_conf_set_closesocket_cb(rd_kafka_conf_t *conf, int (*closesocket_cb)(int sockfd, void *opaque));
struct addrinfo;
void rd_kafka_conf_set_resolve_cb(rd_kafka_conf_t *conf, int (*resolve_cb)(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res, void *opaque));
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert_verify_cb(rd_kafka_conf_t *conf, int (*ssl_cert_verify_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int *x509_error, int depth, const char *buf, size_t size, char *errstr, size_t errstr_size, void *opaque));
typedef enum rd_kafka_cert_type_t {
  RD_KAFKA_CERT_PUBLIC_KEY,
  RD_KAFKA_CERT_PRIVATE_KEY,
  RD_KAFKA_CERT_CA,
  RD_KAFKA_CERT__CNT,
} rd_kafka_cert_type_t;
typedef enum rd_kafka_cert_enc_t {
  RD_KAFKA_CERT_ENC_PKCS12,
  RD_KAFKA_CERT_ENC_DER,
  RD_KAFKA_CERT_ENC_PEM,
  RD_KAFKA_CERT_ENC__CNT,
} rd_kafka_cert_enc_t;
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert(rd_kafka_conf_t *conf, rd_kafka_cert_type_t cert_type, rd_kafka_cert_enc_t cert_enc, const void *buffer, size_t size, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_engine_callback_data(rd_kafka_conf_t *conf, void *callback_data);
void rd_kafka_conf_set_opaque(rd_kafka_conf_t *conf, void *opaque);
void *rd_kafka_opaque(const rd_kafka_t *rk);
void rd_kafka_conf_set_default_topic_conf(rd_kafka_conf_t *conf, rd_kafka_topic_conf_t *tconf);
rd_kafka_topic_conf_t *rd_kafka_conf_get_default_topic_conf(rd_kafka_conf_t *conf);
rd_kafka_conf_res_t rd_kafka_conf_get(const rd_kafka_conf_t *conf, const char *name, char *dest, size_t *dest_size);
rd_kafka_conf_res_t rd_kafka_topic_conf_get(const rd_kafka_topic_conf_t *conf, const char *name, char *dest, size_t *dest_size);
const char **rd_kafka_conf_dump(rd_kafka_conf_t *conf, size_t *cntp);
const char **rd_kafka_topic_conf_dump(rd_kafka_topic_conf_t *conf, size_t *cntp);
void rd_kafka_conf_dump_free(const char **arr, size_t cnt);
void rd_kafka_conf_properties_show(FILE *fp);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_new(void);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_dup(const rd_kafka_topic_conf_t *conf);
rd_kafka_topic_conf_t *rd_kafka_default_topic_conf_dup(rd_kafka_t *rk);
void rd_kafka_topic_conf_destroy(rd_kafka_topic_conf_t *topic_conf);
rd_kafka_conf_res_t rd_kafka_topic_conf_set(rd_kafka_topic_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_topic_conf_set_opaque(rd_kafka_topic_conf_t *conf, void *rkt_opaque);
void rd_kafka_topic_conf_set_partitioner_cb(rd_kafka_topic_conf_t *topic_conf, int32_t (*partitioner)(const rd_kafka_topic_t *rkt, const void *keydata, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque));
void rd_kafka_topic_conf_set_msg_order_cmp(rd_kafka_topic_conf_t *topic_conf, int (*msg_order_cmp)(const rd_kafka_message_t *a, const rd_kafka_message_t *b));
int rd_kafka_topic_partition_available(const rd_kafka_topic_t *rkt, int32_t partition);
int32_t rd_kafka_msg_partitioner_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
rd_kafka_t *rd_kafka_new(rd_kafka_type_t type, rd_kafka_conf_t *conf, char *errstr, size_t errstr_size);
void rd_kafka_destroy(rd_kafka_t *rk);
void rd_kafka_destroy_flags(rd_kafka_t *rk, int flags);
const char *rd_kafka_name(const rd_kafka_t *rk);
rd_kafka_type_t rd_kafka_type(const rd_kafka_t *rk);
char *rd_kafka_memberid(const rd_kafka_t *rk);
char *rd_kafka_clusterid(rd_kafka_t *rk, int timeout_ms);
int32_t rd_kafka_controllerid(rd_kafka_t *rk, int timeout_ms);
rd_kafka_topic_t *rd_kafka_topic_new(rd_kafka_t *rk, const char *topic, rd_kafka_topic_conf_t *conf);
void rd_kafka_topic_destroy(rd_kafka_topic_t *rkt);
const char *rd_kafka_topic_name(const rd_kafka_topic_t *rkt);
void *rd_kafka_topic_opaque(const rd_kafka_topic_t *rkt);
int rd_kafka_poll(rd_kafka_t *rk, int timeout_ms);
void rd_kafka_yield(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_pause_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_resume_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_query_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_get_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high);
rd_kafka_resp_err_t rd_kafka_offsets_for_times(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets, int timeout_ms);
void *rd_kafka_mem_calloc(rd_kafka_t *rk, size_t num, size_t size);
void *rd_kafka_mem_malloc(rd_kafka_t *rk, size_t size);
void rd_kafka_mem_free(rd_kafka_t *rk, void *ptr);
rd_kafka_queue_t *rd_kafka_queue_new(rd_kafka_t *rk);
void rd_kafka_queue_destroy(rd_kafka_queue_t *rkqu);
rd_kafka_queue_t *rd_kafka_queue_get_main(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_sasl(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_sasl_background_callbacks_enable(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_sasl_set_credentials(rd_kafka_t *rk, const char *username, const char *password);
rd_kafka_queue_t *rd_kafka_queue_get_consumer(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_partition(rd_kafka_t *rk, const char *topic, int32_t partition);
rd_kafka_queue_t *rd_kafka_queue_get_background(rd_kafka_t *rk);
void rd_kafka_queue_forward(rd_kafka_queue_t *src, rd_kafka_queue_t *dst);
rd_kafka_resp_err_t rd_kafka_set_log_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu);
size_t rd_kafka_queue_length(rd_kafka_queue_t *rkqu);
void rd_kafka_queue_io_event_enable(rd_kafka_queue_t *rkqu, int fd, const void *payload, size_t size);
void rd_kafka_queue_cb_event_enable(rd_kafka_queue_t *rkqu, void (*event_cb)(rd_kafka_t *rk, void *qev_opaque), void *qev_opaque);
void rd_kafka_queue_yield(rd_kafka_queue_t *rkqu);
int rd_kafka_consume_start(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
int rd_kafka_consume_start_queue(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, rd_kafka_queue_t *rkqu);
int rd_kafka_consume_stop(rd_kafka_topic_t *rkt, int32_t partition);
rd_kafka_resp_err_t rd_kafka_seek(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, int timeout_ms);
rd_kafka_error_t *rd_kafka_seek_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_message_t *rd_kafka_consume(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms);
ssize_t rd_kafka_consume_batch(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_message_t *rd_kafka_consume_queue(rd_kafka_queue_t *rkqu, int timeout_ms);
ssize_t rd_kafka_consume_batch_queue(rd_kafka_queue_t *rkqu, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback_queue(rd_kafka_queue_t *rkqu, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_offset_store(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
rd_kafka_resp_err_t rd_kafka_offsets_store(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets);
rd_kafka_error_t *rd_kafka_offset_store_message(rd_kafka_message_t *rkmessage);
rd_kafka_resp_err_t rd_kafka_subscribe(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *topics);
rd_kafka_resp_err_t rd_kafka_unsubscribe(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_subscription(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **topics);
rd_kafka_message_t *rd_kafka_consumer_poll(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_consumer_close(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_consumer_close_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu);
int rd_kafka_consumer_closed(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_incremental_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_error_t *rd_kafka_incremental_unassign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
const char *rd_kafka_rebalance_protocol(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_assignment(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **partitions);
int rd_kafka_assignment_lost(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_commit(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, int async);
rd_kafka_resp_err_t rd_kafka_commit_message(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, int async);
rd_kafka_resp_err_t rd_kafka_commit_queue(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_queue_t *rkqu, void (*cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_committed(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_position(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata(rd_kafka_t *rk);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new(const char *group_id);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new_with_genid(const char *group_id, int32_t generation_id, const char *member_id, const char *group_instance_id);
void rd_kafka_consumer_group_metadata_destroy(rd_kafka_consumer_group_metadata_t *);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_write(const rd_kafka_consumer_group_metadata_t *cgmd, void **bufferp, size_t *sizep);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_read(rd_kafka_consumer_group_metadata_t **cgmdp, const void *buffer, size_t size);
int rd_kafka_produce(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, void *payload, size_t len, const void *key, size_t keylen, void *msg_opaque);
rd_kafka_resp_err_t rd_kafka_producev(rd_kafka_t *rk, ...);
rd_kafka_error_t *rd_kafka_produceva(rd_kafka_t *rk, const rd_kafka_vu_t *vus, size_t cnt);
int rd_kafka_produce_batch(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, rd_kafka_message_t *rkmessages, int message_cnt);
rd_kafka_resp_err_t rd_kafka_flush(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_purge(rd_kafka_t *rk, int purge_flags);
typedef struct rd_kafka_metadata_broker {
  int32_t id;
  char *host;
  int port;
} rd_kafka_metadata_broker_t;
typedef struct rd_kafka_metadata_partition {
  int32_t id;
  rd_kafka_resp_err_t err;
  int32_t leader;
  int replica_cnt;
  int32_t *replicas;
  int isr_cnt;
  int32_t *isrs;
} rd_kafka_metadata_partition_t;
typedef struct rd_kafka_metadata_topic {
  char *topic;
  int partition_cnt;
  struct rd_kafka_metadata_partition *partitions;
  rd_kafka_resp_err_t err;
} rd_kafka_metadata_topic_t;
typedef struct rd_kafka_metadata {
  int broker_cnt;
  struct rd_kafka_metadata_broker *brokers;
  int topic_cnt;
  struct rd_kafka_metadata_topic *topics;
  int32_t orig_broker_id;
  char *orig_broker_name;
} rd_kafka_metadata_t;
rd_kafka_resp_err_t rd_kafka_metadata(rd_kafka_t *rk, int all_topics, rd_kafka_topic_t *only_rkt, const struct rd_kafka_metadata **metadatap, int timeout_ms);
void rd_kafka_metadata_destroy(const struct rd_kafka_metadata *metadata);
typedef struct rd_kafka_Node_s rd_kafka_Node_t;
int rd_kafka_Node_id(const rd_kafka_Node_t *node);
const char *rd_kafka_Node_host(const rd_kafka_Node_t *node);
uint16_t rd_kafka_Node_port(const rd_kafka_Node_t *node);
struct rd_kafka_group_member_info {
  char *member_id;
  char *client_id;
  char *client_host;
  void *member_metadata;
  int member_metadata_size;
  void *member_assignment;
  int member_assignment_size;
};
typedef enum {
  RD_KAFKA_CONSUMER_GROUP_STATE_UNKNOWN = 0,
  RD_KAFKA_CONSUMER_GROUP_STATE_PREPARING_REBALANCE = 1,
  RD_KAFKA_CONSUMER_GROUP_STATE_COMPLETING_REBALANCE = 2,
  RD_KAFKA_CONSUMER_GROUP_STATE_STABLE = 3,
  RD_KAFKA_CONSUMER_GROUP_STATE_DEAD = 4,
  RD_KAFKA_CONSUMER_GROUP_STATE_EMPTY = 5,
  RD_KAFKA_CONSUMER_GROUP_STATE__CNT,
} rd_kafka_consumer_group_state_t;
struct rd_kafka_group_info {
  struct rd_kafka_metadata_broker broker;
  char *group;
  rd_kafka_resp_err_t err;
  char *state;
  char *protocol_type;
  char *protocol;
  struct rd_kafka_group_member_info *members;
  int member_cnt;
};
struct rd_kafka_group_list {
  struct rd_kafka_group_info *groups;
  int group_cnt;
};
rd_kafka_resp_err_t rd_kafka_list_groups(rd_kafka_t *rk, const char *group, const struct rd_kafka_group_list **grplistp, int timeout_ms);
const char *rd_kafka_consumer_group_state_name(rd_kafka_consumer_group_state_t state);
rd_kafka_consumer_group_state_t rd_kafka_consumer_group_state_code(const char *name);
void rd_kafka_group_list_destroy(const struct rd_kafka_group_list *grplist);
int rd_kafka_brokers_add(rd_kafka_t *rk, const char *brokerlist);
void rd_kafka_set_logger(rd_kafka_t *rk, void (*func)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_set_log_level(rd_kafka_t *rk, int level);
void rd_kafka_log_print(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
void rd_kafka_log_syslog(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
int rd_kafka_outq_len(rd_kafka_t *rk);
void rd_kafka_dump(FILE *fp, rd_kafka_t *rk);
int rd_kafka_thread_cnt(void);
typedef enum rd_kafka_thread_type_t {
  RD_KAFKA_THREAD_MAIN,
  RD_KAFKA_THREAD_BACKGROUND,
  RD_KAFKA_THREAD_BROKER,
} rd_kafka_thread_type_t;
int rd_kafka_wait_destroyed(int timeout_ms);
int rd_kafka_unittest(void);
rd_kafka_resp_err_t rd_kafka_poll_set_consumer(rd_kafka_t *rk);
typedef int rd_kafka_event_type_t;
rd_kafka_event_type_t rd_kafka_event_type(const rd_kafka_event_t *rkev);
const char *rd_kafka_event_name(const rd_kafka_event_t *rkev);
void rd_kafka_event_destroy(rd_kafka_event_t *rkev);
const rd_kafka_message_t *rd_kafka_event_message_next(rd_kafka_event_t *rkev);
size_t rd_kafka_event_message_array(rd_kafka_event_t *rkev, const rd_kafka_message_t **rkmessages, size_t size);
size_t rd_kafka_event_message_count(rd_kafka_event_t *rkev);
const char *rd_kafka_event_config_string(rd_kafka_event_t *rkev);
rd_kafka_resp_err_t rd_kafka_event_error(rd_kafka_event_t *rkev);
const char *rd_kafka_event_error_string(rd_kafka_event_t *rkev);
int rd_kafka_event_error_is_fatal(rd_kafka_event_t *rkev);
void *rd_kafka_event_opaque(rd_kafka_event_t *rkev);
int rd_kafka_event_log(rd_kafka_event_t *rkev, const char **fac, const char **str, int *level);
int rd_kafka_event_debug_contexts(rd_kafka_event_t *rkev, char *dst, size_t dstsize);
const char *rd_kafka_event_stats(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_list_t *rd_kafka_event_topic_partition_list(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_t *rd_kafka_event_topic_partition(rd_kafka_event_t *rkev);
typedef rd_kafka_event_t rd_kafka_CreateTopics_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteTopics_result_t;
typedef rd_kafka_event_t rd_kafka_CreateAcls_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeAcls_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteAcls_result_t;
typedef rd_kafka_event_t rd_kafka_CreatePartitions_result_t;
typedef rd_kafka_event_t rd_kafka_AlterConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteRecords_result_t;
typedef rd_kafka_event_t rd_kafka_ListConsumerGroups_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeConsumerGroups_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteGroups_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteConsumerGroupOffsets_result_t;
typedef rd_kafka_event_t rd_kafka_AlterConsumerGroupOffsets_result_t;
typedef rd_kafka_event_t rd_kafka_ListConsumerGroupOffsets_result_t;
const rd_kafka_CreateTopics_result_t *rd_kafka_event_CreateTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteTopics_result_t *rd_kafka_event_DeleteTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_CreatePartitions_result_t *rd_kafka_event_CreatePartitions_result(rd_kafka_event_t *rkev);
const rd_kafka_AlterConfigs_result_t *rd_kafka_event_AlterConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeConfigs_result_t *rd_kafka_event_DescribeConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteRecords_result_t *rd_kafka_event_DeleteRecords_result(rd_kafka_event_t *rkev);
const rd_kafka_ListConsumerGroups_result_t *rd_kafka_event_ListConsumerGroups_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeConsumerGroups_result_t *rd_kafka_event_DescribeConsumerGroups_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteGroups_result_t *rd_kafka_event_DeleteGroups_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteConsumerGroupOffsets_result_t *rd_kafka_event_DeleteConsumerGroupOffsets_result(rd_kafka_event_t *rkev);
const rd_kafka_CreateAcls_result_t *rd_kafka_event_CreateAcls_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeAcls_result_t *rd_kafka_event_DescribeAcls_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteAcls_result_t *rd_kafka_event_DeleteAcls_result(rd_kafka_event_t *rkev);
const rd_kafka_AlterConsumerGroupOffsets_result_t *rd_kafka_event_AlterConsumerGroupOffsets_result(rd_kafka_event_t *rkev);
const rd_kafka_ListConsumerGroupOffsets_result_t *rd_kafka_event_ListConsumerGroupOffsets_result(rd_kafka_event_t *rkev);
rd_kafka_event_t *rd_kafka_queue_poll(rd_kafka_queue_t *rkqu, int timeout_ms);
int rd_kafka_queue_poll_callback(rd_kafka_queue_t *rkqu, int timeout_ms);
typedef rd_kafka_resp_err_t (rd_kafka_plugin_f_conf_init_t)(rd_kafka_conf_t *conf, void **plug_opaquep, char *errstr, size_t errstr_size);
typedef rd_kafka_conf_res_t (rd_kafka_interceptor_f_on_conf_set_t)(rd_kafka_conf_t *conf, const char *name, const char *val, char *errstr, size_t errstr_size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_dup_t)(rd_kafka_conf_t *new_conf, const rd_kafka_conf_t *old_conf, size_t filter_cnt, const char **filter, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_destroy_t)(void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_new_t)(rd_kafka_t *rk, const rd_kafka_conf_t *conf, void *ic_opaque, char *errstr, size_t errstr_size);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_destroy_t)(rd_kafka_t *rk, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_send_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_acknowledgement_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_consume_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_commit_t)(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_request_sent_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_response_received_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, int64_t rtt, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_start_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_exit_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_broker_state_change_t)(rd_kafka_t *rk, int32_t broker_id, const char *secproto, const char *name, int port, const char *state, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_set(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_set_t *on_conf_set, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_dup(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_dup_t *on_conf_dup, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_destroy(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_destroy_t *on_conf_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_new(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_new_t *on_new, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_destroy(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_destroy_t *on_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_send(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_send_t *on_send, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_acknowledgement(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_acknowledgement_t *on_acknowledgement, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_consume(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_consume_t *on_consume, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_commit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_commit_t *on_commit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_request_sent(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_request_sent_t *on_request_sent, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_response_received(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_response_received_t *on_response_received, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_start(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_start_t *on_thread_start, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_exit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_exit_t *on_thread_exit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_broker_state_change(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_broker_state_change_t *on_broker_state_change, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_topic_result_error(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_error_string(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_name(const rd_kafka_topic_result_t *topicres);
const rd_kafka_error_t *rd_kafka_group_result_error(const rd_kafka_group_result_t *groupres);
const char *rd_kafka_group_result_name(const rd_kafka_group_result_t *groupres);
const rd_kafka_topic_partition_list_t *rd_kafka_group_result_partitions(const rd_kafka_group_result_t *groupres);
typedef enum rd_kafka_admin_op_t {
  RD_KAFKA_ADMIN_OP_ANY = 0,
  RD_KAFKA_ADMIN_OP_CREATETOPICS,
  RD_KAFKA_ADMIN_OP_DELETETOPICS,
  RD_KAFKA_ADMIN_OP_CREATEPARTITIONS,
  RD_KAFKA_ADMIN_OP_ALTERCONFIGS,
  RD_KAFKA_ADMIN_OP_DESCRIBECONFIGS,
  RD_KAFKA_ADMIN_OP_DELETERECORDS,
  RD_KAFKA_ADMIN_OP_DELETEGROUPS,
  RD_KAFKA_ADMIN_OP_DELETECONSUMERGROUPOFFSETS,
  RD_KAFKA_ADMIN_OP_CREATEACLS,
  RD_KAFKA_ADMIN_OP_DESCRIBEACLS,
  RD_KAFKA_ADMIN_OP_DELETEACLS,
  RD_KAFKA_ADMIN_OP_LISTCONSUMERGROUPS,
  RD_KAFKA_ADMIN_OP_DESCRIBECONSUMERGROUPS,
  RD_KAFKA_ADMIN_OP_LISTCONSUMERGROUPOFFSETS,
  RD_KAFKA_ADMIN_OP_ALTERCONSUMERGROUPOFFSETS,
  RD_KAFKA_ADMIN_OP__CNT,
} rd_kafka_admin_op_t;
typedef struct rd_kafka_AdminOptions_s rd_kafka_AdminOptions_t;
rd_kafka_AdminOptions_t *rd_kafka_AdminOptions_new(rd_kafka_t *rk, rd_kafka_admin_op_t for_api);
void rd_kafka_AdminOptions_destroy(rd_kafka_AdminOptions_t *options);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_request_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_operation_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_validate_only(rd_kafka_AdminOptions_t *options, int true_or_false, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_broker(rd_kafka_AdminOptions_t *options, int32_t broker_id, char *errstr, size_t errstr_size);
rd_kafka_error_t *rd_kafka_AdminOptions_set_require_stable_offsets(rd_kafka_AdminOptions_t *options, int true_or_false);
rd_kafka_error_t *rd_kafka_AdminOptions_set_match_consumer_group_states(rd_kafka_AdminOptions_t *options, const rd_kafka_consumer_group_state_t *consumer_group_states, size_t consumer_group_states_cnt);
void rd_kafka_AdminOptions_set_opaque(rd_kafka_AdminOptions_t *options, void *ev_opaque);
typedef struct rd_kafka_NewTopic_s rd_kafka_NewTopic_t;
rd_kafka_NewTopic_t *rd_kafka_NewTopic_new(const char *topic, int num_partitions, int replication_factor, char *errstr, size_t errstr_size);
void rd_kafka_NewTopic_destroy(rd_kafka_NewTopic_t *new_topic);
void rd_kafka_NewTopic_destroy_array(rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_replica_assignment(rd_kafka_NewTopic_t *new_topic, int32_t partition, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_config(rd_kafka_NewTopic_t *new_topic, const char *name, const char *value);
void rd_kafka_CreateTopics(rd_kafka_t *rk, rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreateTopics_result_topics(const rd_kafka_CreateTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteTopic_s rd_kafka_DeleteTopic_t;
rd_kafka_DeleteTopic_t *rd_kafka_DeleteTopic_new(const char *topic);
void rd_kafka_DeleteTopic_destroy(rd_kafka_DeleteTopic_t *del_topic);
void rd_kafka_DeleteTopic_destroy_array(rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt);
void rd_kafka_DeleteTopics(rd_kafka_t *rk, rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_DeleteTopics_result_topics(const rd_kafka_DeleteTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_NewPartitions_s rd_kafka_NewPartitions_t;
rd_kafka_NewPartitions_t *rd_kafka_NewPartitions_new(const char *topic, size_t new_total_cnt, char *errstr, size_t errstr_size);
void rd_kafka_NewPartitions_destroy(rd_kafka_NewPartitions_t *new_parts);
void rd_kafka_NewPartitions_destroy_array(rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt);
rd_kafka_resp_err_t rd_kafka_NewPartitions_set_replica_assignment(rd_kafka_NewPartitions_t *new_parts, int32_t new_partition_idx, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
void rd_kafka_CreatePartitions(rd_kafka_t *rk, rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreatePartitions_result_topics(const rd_kafka_CreatePartitions_result_t *result, size_t *cntp);
typedef enum rd_kafka_ConfigSource_t {
  RD_KAFKA_CONFIG_SOURCE_UNKNOWN_CONFIG = 0,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG = 1,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG = 2,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG = 3,
  RD_KAFKA_CONFIG_SOURCE_STATIC_BROKER_CONFIG = 4,
  RD_KAFKA_CONFIG_SOURCE_DEFAULT_CONFIG = 5,
  RD_KAFKA_CONFIG_SOURCE__CNT,
} rd_kafka_ConfigSource_t;
const char *rd_kafka_ConfigSource_name(rd_kafka_ConfigSource_t confsource);
typedef struct rd_kafka_ConfigEntry_s rd_kafka_ConfigEntry_t;
const char *rd_kafka_ConfigEntry_name(const rd_kafka_ConfigEntry_t *entry);
const char *rd_kafka_ConfigEntry_value(const rd_kafka_ConfigEntry_t *entry);
rd_kafka_ConfigSource_t rd_kafka_ConfigEntry_source(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_read_only(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_default(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_sensitive(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_synonym(const rd_kafka_ConfigEntry_t *entry);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigEntry_synonyms(const rd_kafka_ConfigEntry_t *entry, size_t *cntp);
typedef enum rd_kafka_ResourceType_t {
  RD_KAFKA_RESOURCE_UNKNOWN = 0,
  RD_KAFKA_RESOURCE_ANY = 1,
  RD_KAFKA_RESOURCE_TOPIC = 2,
  RD_KAFKA_RESOURCE_GROUP = 3,
  RD_KAFKA_RESOURCE_BROKER = 4,
  RD_KAFKA_RESOURCE__CNT,
} rd_kafka_ResourceType_t;
typedef enum rd_kafka_ResourcePatternType_t {
  RD_KAFKA_RESOURCE_PATTERN_UNKNOWN = 0,
  RD_KAFKA_RESOURCE_PATTERN_ANY = 1,
  RD_KAFKA_RESOURCE_PATTERN_MATCH = 2,
  RD_KAFKA_RESOURCE_PATTERN_LITERAL = 3,
  RD_KAFKA_RESOURCE_PATTERN_PREFIXED = 4,
  RD_KAFKA_RESOURCE_PATTERN_TYPE__CNT,
} rd_kafka_ResourcePatternType_t;
const char *rd_kafka_ResourcePatternType_name(rd_kafka_ResourcePatternType_t resource_pattern_type);
const char *rd_kafka_ResourceType_name(rd_kafka_ResourceType_t restype);
typedef struct rd_kafka_ConfigResource_s rd_kafka_ConfigResource_t;
rd_kafka_ConfigResource_t *rd_kafka_ConfigResource_new(rd_kafka_ResourceType_t restype, const char *resname);
void rd_kafka_ConfigResource_destroy(rd_kafka_ConfigResource_t *config);
void rd_kafka_ConfigResource_destroy_array(rd_kafka_ConfigResource_t **config, size_t config_cnt);
rd_kafka_resp_err_t rd_kafka_ConfigResource_set_config(rd_kafka_ConfigResource_t *config, const char *name, const char *value);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigResource_configs(const rd_kafka_ConfigResource_t *config, size_t *cntp);
rd_kafka_ResourceType_t rd_kafka_ConfigResource_type(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_name(const rd_kafka_ConfigResource_t *config);
rd_kafka_resp_err_t rd_kafka_ConfigResource_error(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_error_string(const rd_kafka_ConfigResource_t *config);
void rd_kafka_AlterConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_AlterConfigs_result_resources(const rd_kafka_AlterConfigs_result_t *result, size_t *cntp);
void rd_kafka_DescribeConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_DescribeConfigs_result_resources(const rd_kafka_DescribeConfigs_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteRecords_s rd_kafka_DeleteRecords_t;
rd_kafka_DeleteRecords_t *rd_kafka_DeleteRecords_new(const rd_kafka_topic_partition_list_t *before_offsets);
void rd_kafka_DeleteRecords_destroy(rd_kafka_DeleteRecords_t *del_records);
void rd_kafka_DeleteRecords_destroy_array(rd_kafka_DeleteRecords_t **del_records, size_t del_record_cnt);
void rd_kafka_DeleteRecords(rd_kafka_t *rk, rd_kafka_DeleteRecords_t **del_records, size_t del_record_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_partition_list_t *rd_kafka_DeleteRecords_result_offsets(const rd_kafka_DeleteRecords_result_t *result);
typedef struct rd_kafka_ConsumerGroupListing_s rd_kafka_ConsumerGroupListing_t;
typedef struct rd_kafka_ListConsumerGroupsResult_s rd_kafka_ListConsumerGroupsResult_t;
void rd_kafka_ListConsumerGroups(rd_kafka_t *rk, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const char *rd_kafka_ConsumerGroupListing_group_id(const rd_kafka_ConsumerGroupListing_t *grplist);
int rd_kafka_ConsumerGroupListing_is_simple_consumer_group(const rd_kafka_ConsumerGroupListing_t *grplist);
rd_kafka_consumer_group_state_t rd_kafka_ConsumerGroupListing_state(const rd_kafka_ConsumerGroupListing_t *grplist);
const rd_kafka_ConsumerGroupListing_t **rd_kafka_ListConsumerGroups_result_valid(const rd_kafka_ListConsumerGroups_result_t *result, size_t *cntp);
const rd_kafka_error_t **rd_kafka_ListConsumerGroups_result_errors(const rd_kafka_ListConsumerGroups_result_t *result, size_t *cntp);
typedef struct rd_kafka_ConsumerGroupDescription_s rd_kafka_ConsumerGroupDescription_t;
typedef struct rd_kafka_MemberDescription_s rd_kafka_MemberDescription_t;
typedef struct rd_kafka_MemberAssignment_s rd_kafka_MemberAssignment_t;
void rd_kafka_DescribeConsumerGroups(rd_kafka_t *rk, const char **groups, size_t groups_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConsumerGroupDescription_t **rd_kafka_DescribeConsumerGroups_result_groups(const rd_kafka_DescribeConsumerGroups_result_t *result, size_t *cntp);
const char *rd_kafka_ConsumerGroupDescription_group_id(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
const rd_kafka_error_t *rd_kafka_ConsumerGroupDescription_error(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
int rd_kafka_ConsumerGroupDescription_is_simple_consumer_group(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
const char *rd_kafka_ConsumerGroupDescription_partition_assignor(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
rd_kafka_consumer_group_state_t rd_kafka_ConsumerGroupDescription_state(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
const rd_kafka_Node_t *rd_kafka_ConsumerGroupDescription_coordinator(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
size_t rd_kafka_ConsumerGroupDescription_member_count(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
const rd_kafka_MemberDescription_t *rd_kafka_ConsumerGroupDescription_member(const rd_kafka_ConsumerGroupDescription_t *grpdesc, size_t idx);
const char *rd_kafka_MemberDescription_client_id(const rd_kafka_MemberDescription_t *member);
const char *rd_kafka_MemberDescription_group_instance_id(const rd_kafka_MemberDescription_t *member);
const char *rd_kafka_MemberDescription_consumer_id(const rd_kafka_MemberDescription_t *member);
const char *rd_kafka_MemberDescription_host(const rd_kafka_MemberDescription_t *member);
const rd_kafka_MemberAssignment_t *rd_kafka_MemberDescription_assignment(const rd_kafka_MemberDescription_t *member);
const rd_kafka_topic_partition_list_t *rd_kafka_MemberAssignment_partitions(const rd_kafka_MemberAssignment_t *assignment);
typedef struct rd_kafka_DeleteGroup_s rd_kafka_DeleteGroup_t;
rd_kafka_DeleteGroup_t *rd_kafka_DeleteGroup_new(const char *group);
void rd_kafka_DeleteGroup_destroy(rd_kafka_DeleteGroup_t *del_group);
void rd_kafka_DeleteGroup_destroy_array(rd_kafka_DeleteGroup_t **del_groups, size_t del_group_cnt);
void rd_kafka_DeleteGroups(rd_kafka_t *rk, rd_kafka_DeleteGroup_t **del_groups, size_t del_group_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_DeleteGroups_result_groups(const rd_kafka_DeleteGroups_result_t *result, size_t *cntp);
typedef struct rd_kafka_ListConsumerGroupOffsets_s rd_kafka_ListConsumerGroupOffsets_t;
rd_kafka_ListConsumerGroupOffsets_t *rd_kafka_ListConsumerGroupOffsets_new(const char *group_id, const rd_kafka_topic_partition_list_t *partitions);
void rd_kafka_ListConsumerGroupOffsets_destroy(rd_kafka_ListConsumerGroupOffsets_t *list_grpoffsets);
void rd_kafka_ListConsumerGroupOffsets_destroy_array(rd_kafka_ListConsumerGroupOffsets_t **list_grpoffsets, size_t list_grpoffset_cnt);
void rd_kafka_ListConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_ListConsumerGroupOffsets_t **list_grpoffsets, size_t list_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_ListConsumerGroupOffsets_result_groups(const rd_kafka_ListConsumerGroupOffsets_result_t *result, size_t *cntp);
typedef struct rd_kafka_AlterConsumerGroupOffsets_s rd_kafka_AlterConsumerGroupOffsets_t;
rd_kafka_AlterConsumerGroupOffsets_t *rd_kafka_AlterConsumerGroupOffsets_new(const char *group_id, const rd_kafka_topic_partition_list_t *partitions);
void rd_kafka_AlterConsumerGroupOffsets_destroy(rd_kafka_AlterConsumerGroupOffsets_t *alter_grpoffsets);
void rd_kafka_AlterConsumerGroupOffsets_destroy_array(rd_kafka_AlterConsumerGroupOffsets_t **alter_grpoffsets, size_t alter_grpoffset_cnt);
void rd_kafka_AlterConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_AlterConsumerGroupOffsets_t **alter_grpoffsets, size_t alter_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_AlterConsumerGroupOffsets_result_groups(const rd_kafka_AlterConsumerGroupOffsets_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteConsumerGroupOffsets_s rd_kafka_DeleteConsumerGroupOffsets_t;
rd_kafka_DeleteConsumerGroupOffsets_t *rd_kafka_DeleteConsumerGroupOffsets_new(const char *group, const rd_kafka_topic_partition_list_t *partitions);
void rd_kafka_DeleteConsumerGroupOffsets_destroy(rd_kafka_DeleteConsumerGroupOffsets_t *del_grpoffsets);
void rd_kafka_DeleteConsumerGroupOffsets_destroy_array(rd_kafka_DeleteConsumerGroupOffsets_t **del_grpoffsets, size_t del_grpoffset_cnt);
void rd_kafka_DeleteConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_DeleteConsumerGroupOffsets_t **del_grpoffsets, size_t del_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_DeleteConsumerGroupOffsets_result_groups(const rd_kafka_DeleteConsumerGroupOffsets_result_t *result, size_t *cntp);
typedef struct rd_kafka_AclBinding_s rd_kafka_AclBinding_t;
typedef rd_kafka_AclBinding_t rd_kafka_AclBindingFilter_t;
const rd_kafka_error_t *rd_kafka_acl_result_error(const rd_kafka_acl_result_t *aclres);
typedef enum rd_kafka_AclOperation_t {
  RD_KAFKA_ACL_OPERATION_UNKNOWN = 0,
  RD_KAFKA_ACL_OPERATION_ANY = 1,
  RD_KAFKA_ACL_OPERATION_ALL = 2,
  RD_KAFKA_ACL_OPERATION_READ = 3,
  RD_KAFKA_ACL_OPERATION_WRITE = 4,
  RD_KAFKA_ACL_OPERATION_CREATE = 5,
  RD_KAFKA_ACL_OPERATION_DELETE = 6,
  RD_KAFKA_ACL_OPERATION_ALTER = 7,
  RD_KAFKA_ACL_OPERATION_DESCRIBE = 8,
  RD_KAFKA_ACL_OPERATION_CLUSTER_ACTION = 9,
  RD_KAFKA_ACL_OPERATION_DESCRIBE_CONFIGS = 10,
  RD_KAFKA_ACL_OPERATION_ALTER_CONFIGS = 11,
  RD_KAFKA_ACL_OPERATION_IDEMPOTENT_WRITE = 12,
  RD_KAFKA_ACL_OPERATION__CNT,
} rd_kafka_AclOperation_t;
const char *rd_kafka_AclOperation_name(rd_kafka_AclOperation_t acl_operation);
typedef enum rd_kafka_AclPermissionType_t {
  RD_KAFKA_ACL_PERMISSION_TYPE_UNKNOWN = 0,
  RD_KAFKA_ACL_PERMISSION_TYPE_ANY = 1,
  RD_KAFKA_ACL_PERMISSION_TYPE_DENY = 2,
  RD_KAFKA_ACL_PERMISSION_TYPE_ALLOW = 3,
  RD_KAFKA_ACL_PERMISSION_TYPE__CNT,
} rd_kafka_AclPermissionType_t;
const char *rd_kafka_AclPermissionType_name(rd_kafka_AclPermissionType_t acl_permission_type);
rd_kafka_AclBinding_t *rd_kafka_AclBinding_new(rd_kafka_ResourceType_t restype, const char *name, rd_kafka_ResourcePatternType_t resource_pattern_type, const char *principal, const char *host, rd_kafka_AclOperation_t operation, rd_kafka_AclPermissionType_t permission_type, char *errstr, size_t errstr_size);
rd_kafka_AclBindingFilter_t *rd_kafka_AclBindingFilter_new(rd_kafka_ResourceType_t restype, const char *name, rd_kafka_ResourcePatternType_t resource_pattern_type, const char *principal, const char *host, rd_kafka_AclOperation_t operation, rd_kafka_AclPermissionType_t permission_type, char *errstr, size_t errstr_size);
rd_kafka_ResourceType_t rd_kafka_AclBinding_restype(const rd_kafka_AclBinding_t *acl);
const char *rd_kafka_AclBinding_name(const rd_kafka_AclBinding_t *acl);
const char *rd_kafka_AclBinding_principal(const rd_kafka_AclBinding_t *acl);
const char *rd_kafka_AclBinding_host(const rd_kafka_AclBinding_t *acl);
rd_kafka_AclOperation_t rd_kafka_AclBinding_operation(const rd_kafka_AclBinding_t *acl);
rd_kafka_AclPermissionType_t rd_kafka_AclBinding_permission_type(const rd_kafka_AclBinding_t *acl);
rd_kafka_ResourcePatternType_t rd_kafka_AclBinding_resource_pattern_type(const rd_kafka_AclBinding_t *acl);
const rd_kafka_error_t *rd_kafka_AclBinding_error(const rd_kafka_AclBinding_t *acl);
void rd_kafka_AclBinding_destroy(rd_kafka_AclBinding_t *acl_binding);
void rd_kafka_AclBinding_destroy_array(rd_kafka_AclBinding_t **acl_bindings, size_t acl_bindings_cnt);
const rd_kafka_acl_result_t **rd_kafka_CreateAcls_result_acls(const rd_kafka_CreateAcls_result_t *result, size_t *cntp);
void rd_kafka_CreateAcls(rd_kafka_t *rk, rd_kafka_AclBinding_t **new_acls, size_t new_acls_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_AclBinding_t **rd_kafka_DescribeAcls_result_acls(const rd_kafka_DescribeAcls_result_t *result, size_t *cntp);
void rd_kafka_DescribeAcls(rd_kafka_t *rk, rd_kafka_AclBindingFilter_t *acl_filter, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
typedef struct rd_kafka_DeleteAcls_result_response_s rd_kafka_DeleteAcls_result_response_t;
const rd_kafka_DeleteAcls_result_response_t **rd_kafka_DeleteAcls_result_responses(const rd_kafka_DeleteAcls_result_t *result, size_t *cntp);
const rd_kafka_error_t *rd_kafka_DeleteAcls_result_response_error(const rd_kafka_DeleteAcls_result_response_t *result_response);
const rd_kafka_AclBinding_t **rd_kafka_DeleteAcls_result_response_matching_acls(const rd_kafka_DeleteAcls_result_response_t *result_response, size_t *matching_acls_cntp);
void rd_kafka_DeleteAcls(rd_kafka_t *rk, rd_kafka_AclBindingFilter_t **del_acls, size_t del_acls_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token(rd_kafka_t *rk, const char *token_value, int64_t md_lifetime_ms, const char *md_principal_name, const char **extensions, size_t extension_size, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token_failure(rd_kafka_t *rk, const char *errstr);
rd_kafka_error_t *rd_kafka_init_transactions(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_begin_transaction(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_send_offsets_to_transaction(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, const rd_kafka_consumer_group_metadata_t *cgmetadata, int timeout_ms);
rd_kafka_error_t *rd_kafka_commit_transaction(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_abort_transaction(rd_kafka_t *rk, int timeout_ms);
typedef struct rd_kafka_mock_cluster_s rd_kafka_mock_cluster_t;
rd_kafka_mock_cluster_t *rd_kafka_mock_cluster_new(rd_kafka_t *rk, int broker_cnt);
void rd_kafka_mock_cluster_destroy(rd_kafka_mock_cluster_t *mcluster);
rd_kafka_t *rd_kafka_mock_cluster_handle(const rd_kafka_mock_cluster_t *mcluster);
rd_kafka_mock_cluster_t *rd_kafka_handle_mock_cluster(const rd_kafka_t *rk);
const char *rd_kafka_mock_cluster_bootstraps(const rd_kafka_mock_cluster_t *mcluster);
void rd_kafka_mock_clear_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey);
void rd_kafka_mock_push_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, ...);
void rd_kafka_mock_push_request_errors_array(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, const rd_kafka_resp_err_t *errors);
rd_kafka_resp_err_t rd_kafka_mock_broker_push_request_error_rtts(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int16_t ApiKey, size_t cnt, ...);
rd_kafka_resp_err_t rd_kafka_mock_broker_error_stack_cnt(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int16_t ApiKey, size_t *cntp);
void rd_kafka_mock_topic_set_error(rd_kafka_mock_cluster_t *mcluster, const char *topic, rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_mock_topic_create(rd_kafka_mock_cluster_t *mcluster, const char *topic, int partition_cnt, int replication_factor);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_leader(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower_wmarks(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int64_t lo, int64_t hi);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_down(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_up(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rtt(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int rtt_ms);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rack(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, const char *rack);
rd_kafka_resp_err_t rd_kafka_mock_coordinator_set(rd_kafka_mock_cluster_t *mcluster, const char *key_type, const char *key, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_set_apiversion(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, int16_t MinVersion, int16_t MaxVersion);
'
rdkafka.h, rdkafka_mock.h

RD_KAFKA_VERSION

public RD_KAFKA_VERSION = 33620479

librdkafka version

Interpreted as hex MM.mm.rr.xx:

  • MM = Major
  • mm = minor
  • rr = revision
  • xx = pre-release id (0xff is the final release)

E.g.: 0x000801ff = 0.8.1

Remarks
This value should only be used during compile time, for runtime checks of version use rd_kafka_version()

RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE

public RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76

Unsupported compression type

RD_KAFKA_RESP_ERR_END_ALL

public RD_KAFKA_RESP_ERR_END_ALL = 98
enum rd_kafka_resp_err_t

RD_KAFKA_ADMIN_OP__CNT

public RD_KAFKA_ADMIN_OP__CNT = 16

Number of ops defined

RD_KAFKA_CDEF

public RD_KAFKA_CDEF = 'typedef long int ssize_t;
typedef struct _IO_FILE FILE;
typedef long int mode_t;
typedef signed int int16_t;
typedef unsigned int uint16_t;
typedef signed int int32_t;
typedef signed long int int64_t;
int rd_kafka_version(void);
const char *rd_kafka_version_str(void);
typedef enum rd_kafka_type_t {
  RD_KAFKA_PRODUCER,
  RD_KAFKA_CONSUMER,
} rd_kafka_type_t;
typedef enum rd_kafka_timestamp_type_t {
  RD_KAFKA_TIMESTAMP_NOT_AVAILABLE,
  RD_KAFKA_TIMESTAMP_CREATE_TIME,
  RD_KAFKA_TIMESTAMP_LOG_APPEND_TIME,
} rd_kafka_timestamp_type_t;
const char *rd_kafka_get_debug_contexts(void);
typedef struct rd_kafka_s rd_kafka_t;
typedef struct rd_kafka_topic_s rd_kafka_topic_t;
typedef struct rd_kafka_conf_s rd_kafka_conf_t;
typedef struct rd_kafka_topic_conf_s rd_kafka_topic_conf_t;
typedef struct rd_kafka_queue_s rd_kafka_queue_t;
typedef struct rd_kafka_op_s rd_kafka_event_t;
typedef struct rd_kafka_topic_result_s rd_kafka_topic_result_t;
typedef struct rd_kafka_consumer_group_metadata_s rd_kafka_consumer_group_metadata_t;
typedef struct rd_kafka_error_s {
  unsigned int code;
  char *errstr;
  unsigned char fatal;
  unsigned char retriable;
  unsigned char txn_requires_abort;
} rd_kafka_error_t;
typedef struct rd_kafka_headers_s rd_kafka_headers_t;
typedef struct rd_kafka_group_result_s rd_kafka_group_result_t;
typedef struct rd_kafka_acl_result_s rd_kafka_acl_result_t;
typedef enum {
  RD_KAFKA_RESP_ERR__BEGIN = (- 200),
  RD_KAFKA_RESP_ERR__BAD_MSG = (- 199),
  RD_KAFKA_RESP_ERR__BAD_COMPRESSION = (- 198),
  RD_KAFKA_RESP_ERR__DESTROY = (- 197),
  RD_KAFKA_RESP_ERR__FAIL = (- 196),
  RD_KAFKA_RESP_ERR__TRANSPORT = (- 195),
  RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE = (- 194),
  RD_KAFKA_RESP_ERR__RESOLVE = (- 193),
  RD_KAFKA_RESP_ERR__MSG_TIMED_OUT = (- 192),
  RD_KAFKA_RESP_ERR__PARTITION_EOF = (- 191),
  RD_KAFKA_RESP_ERR__UNKNOWN_PARTITION = (- 190),
  RD_KAFKA_RESP_ERR__FS = (- 189),
  RD_KAFKA_RESP_ERR__UNKNOWN_TOPIC = (- 188),
  RD_KAFKA_RESP_ERR__ALL_BROKERS_DOWN = (- 187),
  RD_KAFKA_RESP_ERR__INVALID_ARG = (- 186),
  RD_KAFKA_RESP_ERR__TIMED_OUT = (- 185),
  RD_KAFKA_RESP_ERR__QUEUE_FULL = (- 184),
  RD_KAFKA_RESP_ERR__ISR_INSUFF = (- 183),
  RD_KAFKA_RESP_ERR__NODE_UPDATE = (- 182),
  RD_KAFKA_RESP_ERR__SSL = (- 181),
  RD_KAFKA_RESP_ERR__WAIT_COORD = (- 180),
  RD_KAFKA_RESP_ERR__UNKNOWN_GROUP = (- 179),
  RD_KAFKA_RESP_ERR__IN_PROGRESS = (- 178),
  RD_KAFKA_RESP_ERR__PREV_IN_PROGRESS = (- 177),
  RD_KAFKA_RESP_ERR__EXISTING_SUBSCRIPTION = (- 176),
  RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS = (- 175),
  RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS = (- 174),
  RD_KAFKA_RESP_ERR__CONFLICT = (- 173),
  RD_KAFKA_RESP_ERR__STATE = (- 172),
  RD_KAFKA_RESP_ERR__UNKNOWN_PROTOCOL = (- 171),
  RD_KAFKA_RESP_ERR__NOT_IMPLEMENTED = (- 170),
  RD_KAFKA_RESP_ERR__AUTHENTICATION = (- 169),
  RD_KAFKA_RESP_ERR__NO_OFFSET = (- 168),
  RD_KAFKA_RESP_ERR__OUTDATED = (- 167),
  RD_KAFKA_RESP_ERR__TIMED_OUT_QUEUE = (- 166),
  RD_KAFKA_RESP_ERR__UNSUPPORTED_FEATURE = (- 165),
  RD_KAFKA_RESP_ERR__WAIT_CACHE = (- 164),
  RD_KAFKA_RESP_ERR__INTR = (- 163),
  RD_KAFKA_RESP_ERR__KEY_SERIALIZATION = (- 162),
  RD_KAFKA_RESP_ERR__VALUE_SERIALIZATION = (- 161),
  RD_KAFKA_RESP_ERR__KEY_DESERIALIZATION = (- 160),
  RD_KAFKA_RESP_ERR__VALUE_DESERIALIZATION = (- 159),
  RD_KAFKA_RESP_ERR__PARTIAL = (- 158),
  RD_KAFKA_RESP_ERR__READ_ONLY = (- 157),
  RD_KAFKA_RESP_ERR__NOENT = (- 156),
  RD_KAFKA_RESP_ERR__UNDERFLOW = (- 155),
  RD_KAFKA_RESP_ERR__INVALID_TYPE = (- 154),
  RD_KAFKA_RESP_ERR__RETRY = (- 153),
  RD_KAFKA_RESP_ERR__PURGE_QUEUE = (- 152),
  RD_KAFKA_RESP_ERR__PURGE_INFLIGHT = (- 151),
  RD_KAFKA_RESP_ERR__FATAL = (- 150),
  RD_KAFKA_RESP_ERR__INCONSISTENT = (- 149),
  RD_KAFKA_RESP_ERR__GAPLESS_GUARANTEE = (- 148),
  RD_KAFKA_RESP_ERR__MAX_POLL_EXCEEDED = (- 147),
  RD_KAFKA_RESP_ERR__UNKNOWN_BROKER = (- 146),
  RD_KAFKA_RESP_ERR__NOT_CONFIGURED = (- 145),
  RD_KAFKA_RESP_ERR__FENCED = (- 144),
  RD_KAFKA_RESP_ERR__APPLICATION = (- 143),
  RD_KAFKA_RESP_ERR__ASSIGNMENT_LOST = (- 142),
  RD_KAFKA_RESP_ERR__NOOP = (- 141),
  RD_KAFKA_RESP_ERR__AUTO_OFFSET_RESET = (- 140),
  RD_KAFKA_RESP_ERR__LOG_TRUNCATION = (- 139),
  RD_KAFKA_RESP_ERR__END = (- 100),
  RD_KAFKA_RESP_ERR_UNKNOWN = (- 1),
  RD_KAFKA_RESP_ERR_NO_ERROR = 0,
  RD_KAFKA_RESP_ERR_OFFSET_OUT_OF_RANGE = 1,
  RD_KAFKA_RESP_ERR_INVALID_MSG = 2,
  RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_OR_PART = 3,
  RD_KAFKA_RESP_ERR_INVALID_MSG_SIZE = 4,
  RD_KAFKA_RESP_ERR_LEADER_NOT_AVAILABLE = 5,
  RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION = 6,
  RD_KAFKA_RESP_ERR_REQUEST_TIMED_OUT = 7,
  RD_KAFKA_RESP_ERR_BROKER_NOT_AVAILABLE = 8,
  RD_KAFKA_RESP_ERR_REPLICA_NOT_AVAILABLE = 9,
  RD_KAFKA_RESP_ERR_MSG_SIZE_TOO_LARGE = 10,
  RD_KAFKA_RESP_ERR_STALE_CTRL_EPOCH = 11,
  RD_KAFKA_RESP_ERR_OFFSET_METADATA_TOO_LARGE = 12,
  RD_KAFKA_RESP_ERR_NETWORK_EXCEPTION = 13,
  RD_KAFKA_RESP_ERR_COORDINATOR_LOAD_IN_PROGRESS = 14,
  RD_KAFKA_RESP_ERR_COORDINATOR_NOT_AVAILABLE = 15,
  RD_KAFKA_RESP_ERR_NOT_COORDINATOR = 16,
  RD_KAFKA_RESP_ERR_TOPIC_EXCEPTION = 17,
  RD_KAFKA_RESP_ERR_RECORD_LIST_TOO_LARGE = 18,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS = 19,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS_AFTER_APPEND = 20,
  RD_KAFKA_RESP_ERR_INVALID_REQUIRED_ACKS = 21,
  RD_KAFKA_RESP_ERR_ILLEGAL_GENERATION = 22,
  RD_KAFKA_RESP_ERR_INCONSISTENT_GROUP_PROTOCOL = 23,
  RD_KAFKA_RESP_ERR_INVALID_GROUP_ID = 24,
  RD_KAFKA_RESP_ERR_UNKNOWN_MEMBER_ID = 25,
  RD_KAFKA_RESP_ERR_INVALID_SESSION_TIMEOUT = 26,
  RD_KAFKA_RESP_ERR_REBALANCE_IN_PROGRESS = 27,
  RD_KAFKA_RESP_ERR_INVALID_COMMIT_OFFSET_SIZE = 28,
  RD_KAFKA_RESP_ERR_TOPIC_AUTHORIZATION_FAILED = 29,
  RD_KAFKA_RESP_ERR_GROUP_AUTHORIZATION_FAILED = 30,
  RD_KAFKA_RESP_ERR_CLUSTER_AUTHORIZATION_FAILED = 31,
  RD_KAFKA_RESP_ERR_INVALID_TIMESTAMP = 32,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_SASL_MECHANISM = 33,
  RD_KAFKA_RESP_ERR_ILLEGAL_SASL_STATE = 34,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_VERSION = 35,
  RD_KAFKA_RESP_ERR_TOPIC_ALREADY_EXISTS = 36,
  RD_KAFKA_RESP_ERR_INVALID_PARTITIONS = 37,
  RD_KAFKA_RESP_ERR_INVALID_REPLICATION_FACTOR = 38,
  RD_KAFKA_RESP_ERR_INVALID_REPLICA_ASSIGNMENT = 39,
  RD_KAFKA_RESP_ERR_INVALID_CONFIG = 40,
  RD_KAFKA_RESP_ERR_NOT_CONTROLLER = 41,
  RD_KAFKA_RESP_ERR_INVALID_REQUEST = 42,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_FOR_MESSAGE_FORMAT = 43,
  RD_KAFKA_RESP_ERR_POLICY_VIOLATION = 44,
  RD_KAFKA_RESP_ERR_OUT_OF_ORDER_SEQUENCE_NUMBER = 45,
  RD_KAFKA_RESP_ERR_DUPLICATE_SEQUENCE_NUMBER = 46,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_EPOCH = 47,
  RD_KAFKA_RESP_ERR_INVALID_TXN_STATE = 48,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_ID_MAPPING = 49,
  RD_KAFKA_RESP_ERR_INVALID_TRANSACTION_TIMEOUT = 50,
  RD_KAFKA_RESP_ERR_CONCURRENT_TRANSACTIONS = 51,
  RD_KAFKA_RESP_ERR_TRANSACTION_COORDINATOR_FENCED = 52,
  RD_KAFKA_RESP_ERR_TRANSACTIONAL_ID_AUTHORIZATION_FAILED = 53,
  RD_KAFKA_RESP_ERR_SECURITY_DISABLED = 54,
  RD_KAFKA_RESP_ERR_OPERATION_NOT_ATTEMPTED = 55,
  RD_KAFKA_RESP_ERR_KAFKA_STORAGE_ERROR = 56,
  RD_KAFKA_RESP_ERR_LOG_DIR_NOT_FOUND = 57,
  RD_KAFKA_RESP_ERR_SASL_AUTHENTICATION_FAILED = 58,
  RD_KAFKA_RESP_ERR_UNKNOWN_PRODUCER_ID = 59,
  RD_KAFKA_RESP_ERR_REASSIGNMENT_IN_PROGRESS = 60,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTH_DISABLED = 61,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_NOT_FOUND = 62,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_OWNER_MISMATCH = 63,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_REQUEST_NOT_ALLOWED = 64,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTHORIZATION_FAILED = 65,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_EXPIRED = 66,
  RD_KAFKA_RESP_ERR_INVALID_PRINCIPAL_TYPE = 67,
  RD_KAFKA_RESP_ERR_NON_EMPTY_GROUP = 68,
  RD_KAFKA_RESP_ERR_GROUP_ID_NOT_FOUND = 69,
  RD_KAFKA_RESP_ERR_FETCH_SESSION_ID_NOT_FOUND = 70,
  RD_KAFKA_RESP_ERR_INVALID_FETCH_SESSION_EPOCH = 71,
  RD_KAFKA_RESP_ERR_LISTENER_NOT_FOUND = 72,
  RD_KAFKA_RESP_ERR_TOPIC_DELETION_DISABLED = 73,
  RD_KAFKA_RESP_ERR_FENCED_LEADER_EPOCH = 74,
  RD_KAFKA_RESP_ERR_UNKNOWN_LEADER_EPOCH = 75,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76,
  RD_KAFKA_RESP_ERR_STALE_BROKER_EPOCH = 77,
  RD_KAFKA_RESP_ERR_OFFSET_NOT_AVAILABLE = 78,
  RD_KAFKA_RESP_ERR_MEMBER_ID_REQUIRED = 79,
  RD_KAFKA_RESP_ERR_PREFERRED_LEADER_NOT_AVAILABLE = 80,
  RD_KAFKA_RESP_ERR_GROUP_MAX_SIZE_REACHED = 81,
  RD_KAFKA_RESP_ERR_FENCED_INSTANCE_ID = 82,
  RD_KAFKA_RESP_ERR_ELIGIBLE_LEADERS_NOT_AVAILABLE = 83,
  RD_KAFKA_RESP_ERR_ELECTION_NOT_NEEDED = 84,
  RD_KAFKA_RESP_ERR_NO_REASSIGNMENT_IN_PROGRESS = 85,
  RD_KAFKA_RESP_ERR_GROUP_SUBSCRIBED_TO_TOPIC = 86,
  RD_KAFKA_RESP_ERR_INVALID_RECORD = 87,
  RD_KAFKA_RESP_ERR_UNSTABLE_OFFSET_COMMIT = 88,
  RD_KAFKA_RESP_ERR_THROTTLING_QUOTA_EXCEEDED = 89,
  RD_KAFKA_RESP_ERR_PRODUCER_FENCED = 90,
  RD_KAFKA_RESP_ERR_RESOURCE_NOT_FOUND = 91,
  RD_KAFKA_RESP_ERR_DUPLICATE_RESOURCE = 92,
  RD_KAFKA_RESP_ERR_UNACCEPTABLE_CREDENTIAL = 93,
  RD_KAFKA_RESP_ERR_INCONSISTENT_VOTER_SET = 94,
  RD_KAFKA_RESP_ERR_INVALID_UPDATE_VERSION = 95,
  RD_KAFKA_RESP_ERR_FEATURE_UPDATE_FAILED = 96,
  RD_KAFKA_RESP_ERR_PRINCIPAL_DESERIALIZATION_FAILURE = 97,
  RD_KAFKA_RESP_ERR_END_ALL,
} rd_kafka_resp_err_t;
struct rd_kafka_err_desc {
  rd_kafka_resp_err_t code;
  char *name;
  char *desc;
};
void rd_kafka_get_err_descs(const struct rd_kafka_err_desc **errdescs, size_t *cntp);
const char *rd_kafka_err2str(rd_kafka_resp_err_t err);
const char *rd_kafka_err2name(rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_last_error(void);
rd_kafka_resp_err_t rd_kafka_errno2err(int errnox);
int rd_kafka_errno(void);
rd_kafka_resp_err_t rd_kafka_fatal_error(rd_kafka_t *rk, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_test_fatal_error(rd_kafka_t *rk, rd_kafka_resp_err_t err, const char *reason);
rd_kafka_resp_err_t rd_kafka_error_code(const rd_kafka_error_t *error);
const char *rd_kafka_error_name(const rd_kafka_error_t *error);
const char *rd_kafka_error_string(const rd_kafka_error_t *error);
int rd_kafka_error_is_fatal(const rd_kafka_error_t *error);
int rd_kafka_error_is_retriable(const rd_kafka_error_t *error);
int rd_kafka_error_txn_requires_abort(const rd_kafka_error_t *error);
void rd_kafka_error_destroy(rd_kafka_error_t *error);
rd_kafka_error_t *rd_kafka_error_new(rd_kafka_resp_err_t code, const char *fmt, ...);
typedef struct rd_kafka_topic_partition_s {
  char *topic;
  int32_t partition;
  int64_t offset;
  void *metadata;
  size_t metadata_size;
  void *opaque;
  rd_kafka_resp_err_t err;
  void *_private;
} rd_kafka_topic_partition_t;
void rd_kafka_topic_partition_destroy(rd_kafka_topic_partition_t *rktpar);
void rd_kafka_topic_partition_set_leader_epoch(rd_kafka_topic_partition_t *rktpar, int32_t leader_epoch);
int32_t rd_kafka_topic_partition_get_leader_epoch(const rd_kafka_topic_partition_t *rktpar);
typedef struct rd_kafka_topic_partition_list_s {
  int cnt;
  int size;
  rd_kafka_topic_partition_t *elems;
} rd_kafka_topic_partition_list_t;
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_new(int size);
void rd_kafka_topic_partition_list_destroy(rd_kafka_topic_partition_list_t *rkparlist);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_add(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_add_range(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t start, int32_t stop);
int rd_kafka_topic_partition_list_del(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
int rd_kafka_topic_partition_list_del_by_idx(rd_kafka_topic_partition_list_t *rktparlist, int idx);
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_copy(const rd_kafka_topic_partition_list_t *src);
rd_kafka_resp_err_t rd_kafka_topic_partition_list_set_offset(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition, int64_t offset);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_find(const rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_sort(rd_kafka_topic_partition_list_t *rktparlist, int (*cmp)(const void *a, const void *b, void *cmp_opaque), void *cmp_opaque);
typedef enum rd_kafka_vtype_t {
  RD_KAFKA_VTYPE_END,
  RD_KAFKA_VTYPE_TOPIC,
  RD_KAFKA_VTYPE_RKT,
  RD_KAFKA_VTYPE_PARTITION,
  RD_KAFKA_VTYPE_VALUE,
  RD_KAFKA_VTYPE_KEY,
  RD_KAFKA_VTYPE_OPAQUE,
  RD_KAFKA_VTYPE_MSGFLAGS,
  RD_KAFKA_VTYPE_TIMESTAMP,
  RD_KAFKA_VTYPE_HEADER,
  RD_KAFKA_VTYPE_HEADERS,
} rd_kafka_vtype_t;
typedef struct rd_kafka_vu_s {
  rd_kafka_vtype_t vtype;
  union {
    char *cstr;
    rd_kafka_topic_t *rkt;
    int i;
    int32_t i32;
    int64_t i64;
    struct {
      void *ptr;
      size_t size;
    } mem;
    struct {
      char *name;
      void *val;
      ssize_t size;
    } header;
    rd_kafka_headers_t *headers;
    void *ptr;
    char _pad[64];
  } u;
} rd_kafka_vu_t;
rd_kafka_headers_t *rd_kafka_headers_new(size_t initial_count);
void rd_kafka_headers_destroy(rd_kafka_headers_t *hdrs);
rd_kafka_headers_t *rd_kafka_headers_copy(const rd_kafka_headers_t *src);
rd_kafka_resp_err_t rd_kafka_header_add(rd_kafka_headers_t *hdrs, const char *name, ssize_t name_size, const void *value, ssize_t value_size);
rd_kafka_resp_err_t rd_kafka_header_remove(rd_kafka_headers_t *hdrs, const char *name);
rd_kafka_resp_err_t rd_kafka_header_get_last(const rd_kafka_headers_t *hdrs, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get(const rd_kafka_headers_t *hdrs, size_t idx, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get_all(const rd_kafka_headers_t *hdrs, size_t idx, const char **namep, const void **valuep, size_t *sizep);
typedef struct rd_kafka_message_s {
  rd_kafka_resp_err_t err;
  rd_kafka_topic_t *rkt;
  int32_t partition;
  void *payload;
  size_t len;
  void *key;
  size_t key_len;
  int64_t offset;
  void *_private;
} rd_kafka_message_t;
void rd_kafka_message_destroy(rd_kafka_message_t *rkmessage);
const char *rd_kafka_message_errstr(const rd_kafka_message_t *rkmessage);
int64_t rd_kafka_message_timestamp(const rd_kafka_message_t *rkmessage, rd_kafka_timestamp_type_t *tstype);
int64_t rd_kafka_message_latency(const rd_kafka_message_t *rkmessage);
int32_t rd_kafka_message_broker_id(const rd_kafka_message_t *rkmessage);
rd_kafka_resp_err_t rd_kafka_message_headers(const rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
rd_kafka_resp_err_t rd_kafka_message_detach_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
void rd_kafka_message_set_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t *hdrs);
size_t rd_kafka_header_cnt(const rd_kafka_headers_t *hdrs);
typedef enum {
  RD_KAFKA_MSG_STATUS_NOT_PERSISTED = 0,
  RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED = 1,
  RD_KAFKA_MSG_STATUS_PERSISTED = 2,
} rd_kafka_msg_status_t;
rd_kafka_msg_status_t rd_kafka_message_status(const rd_kafka_message_t *rkmessage);
int32_t rd_kafka_message_leader_epoch(const rd_kafka_message_t *rkmessage);
typedef enum {
  RD_KAFKA_CONF_UNKNOWN = (- 2),
  RD_KAFKA_CONF_INVALID = (- 1),
  RD_KAFKA_CONF_OK = 0,
} rd_kafka_conf_res_t;
rd_kafka_conf_t *rd_kafka_conf_new(void);
void rd_kafka_conf_destroy(rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup(const rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup_filter(const rd_kafka_conf_t *conf, size_t filter_cnt, const char **filter);
const rd_kafka_conf_t *rd_kafka_conf(rd_kafka_t *rk);
rd_kafka_conf_res_t rd_kafka_conf_set(rd_kafka_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_events(rd_kafka_conf_t *conf, int events);
void rd_kafka_conf_set_background_event_cb(rd_kafka_conf_t *conf, void (*event_cb)(rd_kafka_t *rk, rd_kafka_event_t *rkev, void *opaque));
void rd_kafka_conf_set_dr_cb(rd_kafka_conf_t *conf, void (*dr_cb)(rd_kafka_t *rk, void *payload, size_t len, rd_kafka_resp_err_t err, void *opaque, void *msg_opaque));
void rd_kafka_conf_set_dr_msg_cb(rd_kafka_conf_t *conf, void (*dr_msg_cb)(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_consume_cb(rd_kafka_conf_t *conf, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_rebalance_cb(rd_kafka_conf_t *conf, void (*rebalance_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *partitions, void *opaque));
void rd_kafka_conf_set_offset_commit_cb(rd_kafka_conf_t *conf, void (*offset_commit_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *opaque));
void rd_kafka_conf_set_error_cb(rd_kafka_conf_t *conf, void (*error_cb)(rd_kafka_t *rk, int err, const char *reason, void *opaque));
void rd_kafka_conf_set_throttle_cb(rd_kafka_conf_t *conf, void (*throttle_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int throttle_time_ms, void *opaque));
void rd_kafka_conf_set_log_cb(rd_kafka_conf_t *conf, void (*log_cb)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_conf_set_stats_cb(rd_kafka_conf_t *conf, int (*stats_cb)(rd_kafka_t *rk, char *json, size_t json_len, void *opaque));
void rd_kafka_conf_set_oauthbearer_token_refresh_cb(rd_kafka_conf_t *conf, void (*oauthbearer_token_refresh_cb)(rd_kafka_t *rk, const char *oauthbearer_config, void *opaque));
void rd_kafka_conf_enable_sasl_queue(rd_kafka_conf_t *conf, int enable);
void rd_kafka_conf_set_socket_cb(rd_kafka_conf_t *conf, int (*socket_cb)(int domain, int type, int protocol, void *opaque));
void rd_kafka_conf_set_connect_cb(rd_kafka_conf_t *conf, int (*connect_cb)(int sockfd, const struct sockaddr *addr, int addrlen, const char *id, void *opaque));
void rd_kafka_conf_set_closesocket_cb(rd_kafka_conf_t *conf, int (*closesocket_cb)(int sockfd, void *opaque));
struct addrinfo;
void rd_kafka_conf_set_resolve_cb(rd_kafka_conf_t *conf, int (*resolve_cb)(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res, void *opaque));
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert_verify_cb(rd_kafka_conf_t *conf, int (*ssl_cert_verify_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int *x509_error, int depth, const char *buf, size_t size, char *errstr, size_t errstr_size, void *opaque));
typedef enum rd_kafka_cert_type_t {
  RD_KAFKA_CERT_PUBLIC_KEY,
  RD_KAFKA_CERT_PRIVATE_KEY,
  RD_KAFKA_CERT_CA,
  RD_KAFKA_CERT__CNT,
} rd_kafka_cert_type_t;
typedef enum rd_kafka_cert_enc_t {
  RD_KAFKA_CERT_ENC_PKCS12,
  RD_KAFKA_CERT_ENC_DER,
  RD_KAFKA_CERT_ENC_PEM,
  RD_KAFKA_CERT_ENC__CNT,
} rd_kafka_cert_enc_t;
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert(rd_kafka_conf_t *conf, rd_kafka_cert_type_t cert_type, rd_kafka_cert_enc_t cert_enc, const void *buffer, size_t size, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_engine_callback_data(rd_kafka_conf_t *conf, void *callback_data);
void rd_kafka_conf_set_opaque(rd_kafka_conf_t *conf, void *opaque);
void *rd_kafka_opaque(const rd_kafka_t *rk);
void rd_kafka_conf_set_default_topic_conf(rd_kafka_conf_t *conf, rd_kafka_topic_conf_t *tconf);
rd_kafka_topic_conf_t *rd_kafka_conf_get_default_topic_conf(rd_kafka_conf_t *conf);
rd_kafka_conf_res_t rd_kafka_conf_get(const rd_kafka_conf_t *conf, const char *name, char *dest, size_t *dest_size);
rd_kafka_conf_res_t rd_kafka_topic_conf_get(const rd_kafka_topic_conf_t *conf, const char *name, char *dest, size_t *dest_size);
const char **rd_kafka_conf_dump(rd_kafka_conf_t *conf, size_t *cntp);
const char **rd_kafka_topic_conf_dump(rd_kafka_topic_conf_t *conf, size_t *cntp);
void rd_kafka_conf_dump_free(const char **arr, size_t cnt);
void rd_kafka_conf_properties_show(FILE *fp);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_new(void);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_dup(const rd_kafka_topic_conf_t *conf);
rd_kafka_topic_conf_t *rd_kafka_default_topic_conf_dup(rd_kafka_t *rk);
void rd_kafka_topic_conf_destroy(rd_kafka_topic_conf_t *topic_conf);
rd_kafka_conf_res_t rd_kafka_topic_conf_set(rd_kafka_topic_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_topic_conf_set_opaque(rd_kafka_topic_conf_t *conf, void *rkt_opaque);
void rd_kafka_topic_conf_set_partitioner_cb(rd_kafka_topic_conf_t *topic_conf, int32_t (*partitioner)(const rd_kafka_topic_t *rkt, const void *keydata, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque));
void rd_kafka_topic_conf_set_msg_order_cmp(rd_kafka_topic_conf_t *topic_conf, int (*msg_order_cmp)(const rd_kafka_message_t *a, const rd_kafka_message_t *b));
int rd_kafka_topic_partition_available(const rd_kafka_topic_t *rkt, int32_t partition);
int32_t rd_kafka_msg_partitioner_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
rd_kafka_t *rd_kafka_new(rd_kafka_type_t type, rd_kafka_conf_t *conf, char *errstr, size_t errstr_size);
void rd_kafka_destroy(rd_kafka_t *rk);
void rd_kafka_destroy_flags(rd_kafka_t *rk, int flags);
const char *rd_kafka_name(const rd_kafka_t *rk);
rd_kafka_type_t rd_kafka_type(const rd_kafka_t *rk);
char *rd_kafka_memberid(const rd_kafka_t *rk);
char *rd_kafka_clusterid(rd_kafka_t *rk, int timeout_ms);
int32_t rd_kafka_controllerid(rd_kafka_t *rk, int timeout_ms);
rd_kafka_topic_t *rd_kafka_topic_new(rd_kafka_t *rk, const char *topic, rd_kafka_topic_conf_t *conf);
void rd_kafka_topic_destroy(rd_kafka_topic_t *rkt);
const char *rd_kafka_topic_name(const rd_kafka_topic_t *rkt);
void *rd_kafka_topic_opaque(const rd_kafka_topic_t *rkt);
int rd_kafka_poll(rd_kafka_t *rk, int timeout_ms);
void rd_kafka_yield(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_pause_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_resume_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_query_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_get_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high);
rd_kafka_resp_err_t rd_kafka_offsets_for_times(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets, int timeout_ms);
void *rd_kafka_mem_calloc(rd_kafka_t *rk, size_t num, size_t size);
void *rd_kafka_mem_malloc(rd_kafka_t *rk, size_t size);
void rd_kafka_mem_free(rd_kafka_t *rk, void *ptr);
rd_kafka_queue_t *rd_kafka_queue_new(rd_kafka_t *rk);
void rd_kafka_queue_destroy(rd_kafka_queue_t *rkqu);
rd_kafka_queue_t *rd_kafka_queue_get_main(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_sasl(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_sasl_background_callbacks_enable(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_sasl_set_credentials(rd_kafka_t *rk, const char *username, const char *password);
rd_kafka_queue_t *rd_kafka_queue_get_consumer(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_partition(rd_kafka_t *rk, const char *topic, int32_t partition);
rd_kafka_queue_t *rd_kafka_queue_get_background(rd_kafka_t *rk);
void rd_kafka_queue_forward(rd_kafka_queue_t *src, rd_kafka_queue_t *dst);
rd_kafka_resp_err_t rd_kafka_set_log_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu);
size_t rd_kafka_queue_length(rd_kafka_queue_t *rkqu);
void rd_kafka_queue_io_event_enable(rd_kafka_queue_t *rkqu, int fd, const void *payload, size_t size);
void rd_kafka_queue_cb_event_enable(rd_kafka_queue_t *rkqu, void (*event_cb)(rd_kafka_t *rk, void *qev_opaque), void *qev_opaque);
void rd_kafka_queue_yield(rd_kafka_queue_t *rkqu);
int rd_kafka_consume_start(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
int rd_kafka_consume_start_queue(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, rd_kafka_queue_t *rkqu);
int rd_kafka_consume_stop(rd_kafka_topic_t *rkt, int32_t partition);
rd_kafka_resp_err_t rd_kafka_seek(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, int timeout_ms);
rd_kafka_error_t *rd_kafka_seek_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_message_t *rd_kafka_consume(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms);
ssize_t rd_kafka_consume_batch(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_message_t *rd_kafka_consume_queue(rd_kafka_queue_t *rkqu, int timeout_ms);
ssize_t rd_kafka_consume_batch_queue(rd_kafka_queue_t *rkqu, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback_queue(rd_kafka_queue_t *rkqu, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_offset_store(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
rd_kafka_resp_err_t rd_kafka_offsets_store(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets);
rd_kafka_error_t *rd_kafka_offset_store_message(rd_kafka_message_t *rkmessage);
rd_kafka_resp_err_t rd_kafka_subscribe(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *topics);
rd_kafka_resp_err_t rd_kafka_unsubscribe(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_subscription(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **topics);
rd_kafka_message_t *rd_kafka_consumer_poll(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_consumer_close(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_consumer_close_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu);
int rd_kafka_consumer_closed(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_incremental_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_error_t *rd_kafka_incremental_unassign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
const char *rd_kafka_rebalance_protocol(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_assignment(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **partitions);
int rd_kafka_assignment_lost(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_commit(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, int async);
rd_kafka_resp_err_t rd_kafka_commit_message(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, int async);
rd_kafka_resp_err_t rd_kafka_commit_queue(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_queue_t *rkqu, void (*cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_committed(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_position(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata(rd_kafka_t *rk);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new(const char *group_id);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new_with_genid(const char *group_id, int32_t generation_id, const char *member_id, const char *group_instance_id);
void rd_kafka_consumer_group_metadata_destroy(rd_kafka_consumer_group_metadata_t *);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_write(const rd_kafka_consumer_group_metadata_t *cgmd, void **bufferp, size_t *sizep);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_read(rd_kafka_consumer_group_metadata_t **cgmdp, const void *buffer, size_t size);
int rd_kafka_produce(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, void *payload, size_t len, const void *key, size_t keylen, void *msg_opaque);
rd_kafka_resp_err_t rd_kafka_producev(rd_kafka_t *rk, ...);
rd_kafka_error_t *rd_kafka_produceva(rd_kafka_t *rk, const rd_kafka_vu_t *vus, size_t cnt);
int rd_kafka_produce_batch(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, rd_kafka_message_t *rkmessages, int message_cnt);
rd_kafka_resp_err_t rd_kafka_flush(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_purge(rd_kafka_t *rk, int purge_flags);
typedef struct rd_kafka_metadata_broker {
  int32_t id;
  char *host;
  int port;
} rd_kafka_metadata_broker_t;
typedef struct rd_kafka_metadata_partition {
  int32_t id;
  rd_kafka_resp_err_t err;
  int32_t leader;
  int replica_cnt;
  int32_t *replicas;
  int isr_cnt;
  int32_t *isrs;
} rd_kafka_metadata_partition_t;
typedef struct rd_kafka_metadata_topic {
  char *topic;
  int partition_cnt;
  struct rd_kafka_metadata_partition *partitions;
  rd_kafka_resp_err_t err;
} rd_kafka_metadata_topic_t;
typedef struct rd_kafka_metadata {
  int broker_cnt;
  struct rd_kafka_metadata_broker *brokers;
  int topic_cnt;
  struct rd_kafka_metadata_topic *topics;
  int32_t orig_broker_id;
  char *orig_broker_name;
} rd_kafka_metadata_t;
rd_kafka_resp_err_t rd_kafka_metadata(rd_kafka_t *rk, int all_topics, rd_kafka_topic_t *only_rkt, const struct rd_kafka_metadata **metadatap, int timeout_ms);
void rd_kafka_metadata_destroy(const struct rd_kafka_metadata *metadata);
typedef struct rd_kafka_Node_s rd_kafka_Node_t;
int rd_kafka_Node_id(const rd_kafka_Node_t *node);
const char *rd_kafka_Node_host(const rd_kafka_Node_t *node);
uint16_t rd_kafka_Node_port(const rd_kafka_Node_t *node);
struct rd_kafka_group_member_info {
  char *member_id;
  char *client_id;
  char *client_host;
  void *member_metadata;
  int member_metadata_size;
  void *member_assignment;
  int member_assignment_size;
};
typedef enum {
  RD_KAFKA_CONSUMER_GROUP_STATE_UNKNOWN = 0,
  RD_KAFKA_CONSUMER_GROUP_STATE_PREPARING_REBALANCE = 1,
  RD_KAFKA_CONSUMER_GROUP_STATE_COMPLETING_REBALANCE = 2,
  RD_KAFKA_CONSUMER_GROUP_STATE_STABLE = 3,
  RD_KAFKA_CONSUMER_GROUP_STATE_DEAD = 4,
  RD_KAFKA_CONSUMER_GROUP_STATE_EMPTY = 5,
  RD_KAFKA_CONSUMER_GROUP_STATE__CNT,
} rd_kafka_consumer_group_state_t;
struct rd_kafka_group_info {
  struct rd_kafka_metadata_broker broker;
  char *group;
  rd_kafka_resp_err_t err;
  char *state;
  char *protocol_type;
  char *protocol;
  struct rd_kafka_group_member_info *members;
  int member_cnt;
};
struct rd_kafka_group_list {
  struct rd_kafka_group_info *groups;
  int group_cnt;
};
rd_kafka_resp_err_t rd_kafka_list_groups(rd_kafka_t *rk, const char *group, const struct rd_kafka_group_list **grplistp, int timeout_ms);
const char *rd_kafka_consumer_group_state_name(rd_kafka_consumer_group_state_t state);
rd_kafka_consumer_group_state_t rd_kafka_consumer_group_state_code(const char *name);
void rd_kafka_group_list_destroy(const struct rd_kafka_group_list *grplist);
int rd_kafka_brokers_add(rd_kafka_t *rk, const char *brokerlist);
void rd_kafka_set_logger(rd_kafka_t *rk, void (*func)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_set_log_level(rd_kafka_t *rk, int level);
void rd_kafka_log_print(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
void rd_kafka_log_syslog(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
int rd_kafka_outq_len(rd_kafka_t *rk);
void rd_kafka_dump(FILE *fp, rd_kafka_t *rk);
int rd_kafka_thread_cnt(void);
typedef enum rd_kafka_thread_type_t {
  RD_KAFKA_THREAD_MAIN,
  RD_KAFKA_THREAD_BACKGROUND,
  RD_KAFKA_THREAD_BROKER,
} rd_kafka_thread_type_t;
int rd_kafka_wait_destroyed(int timeout_ms);
int rd_kafka_unittest(void);
rd_kafka_resp_err_t rd_kafka_poll_set_consumer(rd_kafka_t *rk);
typedef int rd_kafka_event_type_t;
rd_kafka_event_type_t rd_kafka_event_type(const rd_kafka_event_t *rkev);
const char *rd_kafka_event_name(const rd_kafka_event_t *rkev);
void rd_kafka_event_destroy(rd_kafka_event_t *rkev);
const rd_kafka_message_t *rd_kafka_event_message_next(rd_kafka_event_t *rkev);
size_t rd_kafka_event_message_array(rd_kafka_event_t *rkev, const rd_kafka_message_t **rkmessages, size_t size);
size_t rd_kafka_event_message_count(rd_kafka_event_t *rkev);
const char *rd_kafka_event_config_string(rd_kafka_event_t *rkev);
rd_kafka_resp_err_t rd_kafka_event_error(rd_kafka_event_t *rkev);
const char *rd_kafka_event_error_string(rd_kafka_event_t *rkev);
int rd_kafka_event_error_is_fatal(rd_kafka_event_t *rkev);
void *rd_kafka_event_opaque(rd_kafka_event_t *rkev);
int rd_kafka_event_log(rd_kafka_event_t *rkev, const char **fac, const char **str, int *level);
int rd_kafka_event_debug_contexts(rd_kafka_event_t *rkev, char *dst, size_t dstsize);
const char *rd_kafka_event_stats(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_list_t *rd_kafka_event_topic_partition_list(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_t *rd_kafka_event_topic_partition(rd_kafka_event_t *rkev);
typedef rd_kafka_event_t rd_kafka_CreateTopics_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteTopics_result_t;
typedef rd_kafka_event_t rd_kafka_CreateAcls_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeAcls_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteAcls_result_t;
typedef rd_kafka_event_t rd_kafka_CreatePartitions_result_t;
typedef rd_kafka_event_t rd_kafka_AlterConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteRecords_result_t;
typedef rd_kafka_event_t rd_kafka_ListConsumerGroups_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeConsumerGroups_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteGroups_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteConsumerGroupOffsets_result_t;
typedef rd_kafka_event_t rd_kafka_AlterConsumerGroupOffsets_result_t;
typedef rd_kafka_event_t rd_kafka_ListConsumerGroupOffsets_result_t;
const rd_kafka_CreateTopics_result_t *rd_kafka_event_CreateTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteTopics_result_t *rd_kafka_event_DeleteTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_CreatePartitions_result_t *rd_kafka_event_CreatePartitions_result(rd_kafka_event_t *rkev);
const rd_kafka_AlterConfigs_result_t *rd_kafka_event_AlterConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeConfigs_result_t *rd_kafka_event_DescribeConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteRecords_result_t *rd_kafka_event_DeleteRecords_result(rd_kafka_event_t *rkev);
const rd_kafka_ListConsumerGroups_result_t *rd_kafka_event_ListConsumerGroups_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeConsumerGroups_result_t *rd_kafka_event_DescribeConsumerGroups_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteGroups_result_t *rd_kafka_event_DeleteGroups_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteConsumerGroupOffsets_result_t *rd_kafka_event_DeleteConsumerGroupOffsets_result(rd_kafka_event_t *rkev);
const rd_kafka_CreateAcls_result_t *rd_kafka_event_CreateAcls_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeAcls_result_t *rd_kafka_event_DescribeAcls_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteAcls_result_t *rd_kafka_event_DeleteAcls_result(rd_kafka_event_t *rkev);
const rd_kafka_AlterConsumerGroupOffsets_result_t *rd_kafka_event_AlterConsumerGroupOffsets_result(rd_kafka_event_t *rkev);
const rd_kafka_ListConsumerGroupOffsets_result_t *rd_kafka_event_ListConsumerGroupOffsets_result(rd_kafka_event_t *rkev);
rd_kafka_event_t *rd_kafka_queue_poll(rd_kafka_queue_t *rkqu, int timeout_ms);
int rd_kafka_queue_poll_callback(rd_kafka_queue_t *rkqu, int timeout_ms);
typedef rd_kafka_resp_err_t (rd_kafka_plugin_f_conf_init_t)(rd_kafka_conf_t *conf, void **plug_opaquep, char *errstr, size_t errstr_size);
typedef rd_kafka_conf_res_t (rd_kafka_interceptor_f_on_conf_set_t)(rd_kafka_conf_t *conf, const char *name, const char *val, char *errstr, size_t errstr_size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_dup_t)(rd_kafka_conf_t *new_conf, const rd_kafka_conf_t *old_conf, size_t filter_cnt, const char **filter, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_destroy_t)(void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_new_t)(rd_kafka_t *rk, const rd_kafka_conf_t *conf, void *ic_opaque, char *errstr, size_t errstr_size);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_destroy_t)(rd_kafka_t *rk, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_send_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_acknowledgement_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_consume_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_commit_t)(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_request_sent_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_response_received_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, int64_t rtt, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_start_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_exit_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_broker_state_change_t)(rd_kafka_t *rk, int32_t broker_id, const char *secproto, const char *name, int port, const char *state, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_set(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_set_t *on_conf_set, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_dup(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_dup_t *on_conf_dup, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_destroy(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_destroy_t *on_conf_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_new(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_new_t *on_new, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_destroy(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_destroy_t *on_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_send(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_send_t *on_send, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_acknowledgement(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_acknowledgement_t *on_acknowledgement, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_consume(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_consume_t *on_consume, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_commit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_commit_t *on_commit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_request_sent(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_request_sent_t *on_request_sent, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_response_received(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_response_received_t *on_response_received, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_start(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_start_t *on_thread_start, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_exit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_exit_t *on_thread_exit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_broker_state_change(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_broker_state_change_t *on_broker_state_change, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_topic_result_error(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_error_string(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_name(const rd_kafka_topic_result_t *topicres);
const rd_kafka_error_t *rd_kafka_group_result_error(const rd_kafka_group_result_t *groupres);
const char *rd_kafka_group_result_name(const rd_kafka_group_result_t *groupres);
const rd_kafka_topic_partition_list_t *rd_kafka_group_result_partitions(const rd_kafka_group_result_t *groupres);
typedef enum rd_kafka_admin_op_t {
  RD_KAFKA_ADMIN_OP_ANY = 0,
  RD_KAFKA_ADMIN_OP_CREATETOPICS,
  RD_KAFKA_ADMIN_OP_DELETETOPICS,
  RD_KAFKA_ADMIN_OP_CREATEPARTITIONS,
  RD_KAFKA_ADMIN_OP_ALTERCONFIGS,
  RD_KAFKA_ADMIN_OP_DESCRIBECONFIGS,
  RD_KAFKA_ADMIN_OP_DELETERECORDS,
  RD_KAFKA_ADMIN_OP_DELETEGROUPS,
  RD_KAFKA_ADMIN_OP_DELETECONSUMERGROUPOFFSETS,
  RD_KAFKA_ADMIN_OP_CREATEACLS,
  RD_KAFKA_ADMIN_OP_DESCRIBEACLS,
  RD_KAFKA_ADMIN_OP_DELETEACLS,
  RD_KAFKA_ADMIN_OP_LISTCONSUMERGROUPS,
  RD_KAFKA_ADMIN_OP_DESCRIBECONSUMERGROUPS,
  RD_KAFKA_ADMIN_OP_LISTCONSUMERGROUPOFFSETS,
  RD_KAFKA_ADMIN_OP_ALTERCONSUMERGROUPOFFSETS,
  RD_KAFKA_ADMIN_OP__CNT,
} rd_kafka_admin_op_t;
typedef struct rd_kafka_AdminOptions_s rd_kafka_AdminOptions_t;
rd_kafka_AdminOptions_t *rd_kafka_AdminOptions_new(rd_kafka_t *rk, rd_kafka_admin_op_t for_api);
void rd_kafka_AdminOptions_destroy(rd_kafka_AdminOptions_t *options);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_request_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_operation_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_validate_only(rd_kafka_AdminOptions_t *options, int true_or_false, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_broker(rd_kafka_AdminOptions_t *options, int32_t broker_id, char *errstr, size_t errstr_size);
rd_kafka_error_t *rd_kafka_AdminOptions_set_require_stable_offsets(rd_kafka_AdminOptions_t *options, int true_or_false);
rd_kafka_error_t *rd_kafka_AdminOptions_set_match_consumer_group_states(rd_kafka_AdminOptions_t *options, const rd_kafka_consumer_group_state_t *consumer_group_states, size_t consumer_group_states_cnt);
void rd_kafka_AdminOptions_set_opaque(rd_kafka_AdminOptions_t *options, void *ev_opaque);
typedef struct rd_kafka_NewTopic_s rd_kafka_NewTopic_t;
rd_kafka_NewTopic_t *rd_kafka_NewTopic_new(const char *topic, int num_partitions, int replication_factor, char *errstr, size_t errstr_size);
void rd_kafka_NewTopic_destroy(rd_kafka_NewTopic_t *new_topic);
void rd_kafka_NewTopic_destroy_array(rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_replica_assignment(rd_kafka_NewTopic_t *new_topic, int32_t partition, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_config(rd_kafka_NewTopic_t *new_topic, const char *name, const char *value);
void rd_kafka_CreateTopics(rd_kafka_t *rk, rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreateTopics_result_topics(const rd_kafka_CreateTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteTopic_s rd_kafka_DeleteTopic_t;
rd_kafka_DeleteTopic_t *rd_kafka_DeleteTopic_new(const char *topic);
void rd_kafka_DeleteTopic_destroy(rd_kafka_DeleteTopic_t *del_topic);
void rd_kafka_DeleteTopic_destroy_array(rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt);
void rd_kafka_DeleteTopics(rd_kafka_t *rk, rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_DeleteTopics_result_topics(const rd_kafka_DeleteTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_NewPartitions_s rd_kafka_NewPartitions_t;
rd_kafka_NewPartitions_t *rd_kafka_NewPartitions_new(const char *topic, size_t new_total_cnt, char *errstr, size_t errstr_size);
void rd_kafka_NewPartitions_destroy(rd_kafka_NewPartitions_t *new_parts);
void rd_kafka_NewPartitions_destroy_array(rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt);
rd_kafka_resp_err_t rd_kafka_NewPartitions_set_replica_assignment(rd_kafka_NewPartitions_t *new_parts, int32_t new_partition_idx, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
void rd_kafka_CreatePartitions(rd_kafka_t *rk, rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreatePartitions_result_topics(const rd_kafka_CreatePartitions_result_t *result, size_t *cntp);
typedef enum rd_kafka_ConfigSource_t {
  RD_KAFKA_CONFIG_SOURCE_UNKNOWN_CONFIG = 0,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG = 1,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG = 2,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG = 3,
  RD_KAFKA_CONFIG_SOURCE_STATIC_BROKER_CONFIG = 4,
  RD_KAFKA_CONFIG_SOURCE_DEFAULT_CONFIG = 5,
  RD_KAFKA_CONFIG_SOURCE__CNT,
} rd_kafka_ConfigSource_t;
const char *rd_kafka_ConfigSource_name(rd_kafka_ConfigSource_t confsource);
typedef struct rd_kafka_ConfigEntry_s rd_kafka_ConfigEntry_t;
const char *rd_kafka_ConfigEntry_name(const rd_kafka_ConfigEntry_t *entry);
const char *rd_kafka_ConfigEntry_value(const rd_kafka_ConfigEntry_t *entry);
rd_kafka_ConfigSource_t rd_kafka_ConfigEntry_source(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_read_only(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_default(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_sensitive(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_synonym(const rd_kafka_ConfigEntry_t *entry);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigEntry_synonyms(const rd_kafka_ConfigEntry_t *entry, size_t *cntp);
typedef enum rd_kafka_ResourceType_t {
  RD_KAFKA_RESOURCE_UNKNOWN = 0,
  RD_KAFKA_RESOURCE_ANY = 1,
  RD_KAFKA_RESOURCE_TOPIC = 2,
  RD_KAFKA_RESOURCE_GROUP = 3,
  RD_KAFKA_RESOURCE_BROKER = 4,
  RD_KAFKA_RESOURCE__CNT,
} rd_kafka_ResourceType_t;
typedef enum rd_kafka_ResourcePatternType_t {
  RD_KAFKA_RESOURCE_PATTERN_UNKNOWN = 0,
  RD_KAFKA_RESOURCE_PATTERN_ANY = 1,
  RD_KAFKA_RESOURCE_PATTERN_MATCH = 2,
  RD_KAFKA_RESOURCE_PATTERN_LITERAL = 3,
  RD_KAFKA_RESOURCE_PATTERN_PREFIXED = 4,
  RD_KAFKA_RESOURCE_PATTERN_TYPE__CNT,
} rd_kafka_ResourcePatternType_t;
const char *rd_kafka_ResourcePatternType_name(rd_kafka_ResourcePatternType_t resource_pattern_type);
const char *rd_kafka_ResourceType_name(rd_kafka_ResourceType_t restype);
typedef struct rd_kafka_ConfigResource_s rd_kafka_ConfigResource_t;
rd_kafka_ConfigResource_t *rd_kafka_ConfigResource_new(rd_kafka_ResourceType_t restype, const char *resname);
void rd_kafka_ConfigResource_destroy(rd_kafka_ConfigResource_t *config);
void rd_kafka_ConfigResource_destroy_array(rd_kafka_ConfigResource_t **config, size_t config_cnt);
rd_kafka_resp_err_t rd_kafka_ConfigResource_set_config(rd_kafka_ConfigResource_t *config, const char *name, const char *value);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigResource_configs(const rd_kafka_ConfigResource_t *config, size_t *cntp);
rd_kafka_ResourceType_t rd_kafka_ConfigResource_type(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_name(const rd_kafka_ConfigResource_t *config);
rd_kafka_resp_err_t rd_kafka_ConfigResource_error(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_error_string(const rd_kafka_ConfigResource_t *config);
void rd_kafka_AlterConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_AlterConfigs_result_resources(const rd_kafka_AlterConfigs_result_t *result, size_t *cntp);
void rd_kafka_DescribeConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_DescribeConfigs_result_resources(const rd_kafka_DescribeConfigs_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteRecords_s rd_kafka_DeleteRecords_t;
rd_kafka_DeleteRecords_t *rd_kafka_DeleteRecords_new(const rd_kafka_topic_partition_list_t *before_offsets);
void rd_kafka_DeleteRecords_destroy(rd_kafka_DeleteRecords_t *del_records);
void rd_kafka_DeleteRecords_destroy_array(rd_kafka_DeleteRecords_t **del_records, size_t del_record_cnt);
void rd_kafka_DeleteRecords(rd_kafka_t *rk, rd_kafka_DeleteRecords_t **del_records, size_t del_record_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_partition_list_t *rd_kafka_DeleteRecords_result_offsets(const rd_kafka_DeleteRecords_result_t *result);
typedef struct rd_kafka_ConsumerGroupListing_s rd_kafka_ConsumerGroupListing_t;
typedef struct rd_kafka_ListConsumerGroupsResult_s rd_kafka_ListConsumerGroupsResult_t;
void rd_kafka_ListConsumerGroups(rd_kafka_t *rk, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const char *rd_kafka_ConsumerGroupListing_group_id(const rd_kafka_ConsumerGroupListing_t *grplist);
int rd_kafka_ConsumerGroupListing_is_simple_consumer_group(const rd_kafka_ConsumerGroupListing_t *grplist);
rd_kafka_consumer_group_state_t rd_kafka_ConsumerGroupListing_state(const rd_kafka_ConsumerGroupListing_t *grplist);
const rd_kafka_ConsumerGroupListing_t **rd_kafka_ListConsumerGroups_result_valid(const rd_kafka_ListConsumerGroups_result_t *result, size_t *cntp);
const rd_kafka_error_t **rd_kafka_ListConsumerGroups_result_errors(const rd_kafka_ListConsumerGroups_result_t *result, size_t *cntp);
typedef struct rd_kafka_ConsumerGroupDescription_s rd_kafka_ConsumerGroupDescription_t;
typedef struct rd_kafka_MemberDescription_s rd_kafka_MemberDescription_t;
typedef struct rd_kafka_MemberAssignment_s rd_kafka_MemberAssignment_t;
void rd_kafka_DescribeConsumerGroups(rd_kafka_t *rk, const char **groups, size_t groups_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConsumerGroupDescription_t **rd_kafka_DescribeConsumerGroups_result_groups(const rd_kafka_DescribeConsumerGroups_result_t *result, size_t *cntp);
const char *rd_kafka_ConsumerGroupDescription_group_id(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
const rd_kafka_error_t *rd_kafka_ConsumerGroupDescription_error(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
int rd_kafka_ConsumerGroupDescription_is_simple_consumer_group(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
const char *rd_kafka_ConsumerGroupDescription_partition_assignor(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
rd_kafka_consumer_group_state_t rd_kafka_ConsumerGroupDescription_state(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
const rd_kafka_Node_t *rd_kafka_ConsumerGroupDescription_coordinator(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
size_t rd_kafka_ConsumerGroupDescription_member_count(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
const rd_kafka_MemberDescription_t *rd_kafka_ConsumerGroupDescription_member(const rd_kafka_ConsumerGroupDescription_t *grpdesc, size_t idx);
const char *rd_kafka_MemberDescription_client_id(const rd_kafka_MemberDescription_t *member);
const char *rd_kafka_MemberDescription_group_instance_id(const rd_kafka_MemberDescription_t *member);
const char *rd_kafka_MemberDescription_consumer_id(const rd_kafka_MemberDescription_t *member);
const char *rd_kafka_MemberDescription_host(const rd_kafka_MemberDescription_t *member);
const rd_kafka_MemberAssignment_t *rd_kafka_MemberDescription_assignment(const rd_kafka_MemberDescription_t *member);
const rd_kafka_topic_partition_list_t *rd_kafka_MemberAssignment_partitions(const rd_kafka_MemberAssignment_t *assignment);
typedef struct rd_kafka_DeleteGroup_s rd_kafka_DeleteGroup_t;
rd_kafka_DeleteGroup_t *rd_kafka_DeleteGroup_new(const char *group);
void rd_kafka_DeleteGroup_destroy(rd_kafka_DeleteGroup_t *del_group);
void rd_kafka_DeleteGroup_destroy_array(rd_kafka_DeleteGroup_t **del_groups, size_t del_group_cnt);
void rd_kafka_DeleteGroups(rd_kafka_t *rk, rd_kafka_DeleteGroup_t **del_groups, size_t del_group_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_DeleteGroups_result_groups(const rd_kafka_DeleteGroups_result_t *result, size_t *cntp);
typedef struct rd_kafka_ListConsumerGroupOffsets_s rd_kafka_ListConsumerGroupOffsets_t;
rd_kafka_ListConsumerGroupOffsets_t *rd_kafka_ListConsumerGroupOffsets_new(const char *group_id, const rd_kafka_topic_partition_list_t *partitions);
void rd_kafka_ListConsumerGroupOffsets_destroy(rd_kafka_ListConsumerGroupOffsets_t *list_grpoffsets);
void rd_kafka_ListConsumerGroupOffsets_destroy_array(rd_kafka_ListConsumerGroupOffsets_t **list_grpoffsets, size_t list_grpoffset_cnt);
void rd_kafka_ListConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_ListConsumerGroupOffsets_t **list_grpoffsets, size_t list_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_ListConsumerGroupOffsets_result_groups(const rd_kafka_ListConsumerGroupOffsets_result_t *result, size_t *cntp);
typedef struct rd_kafka_AlterConsumerGroupOffsets_s rd_kafka_AlterConsumerGroupOffsets_t;
rd_kafka_AlterConsumerGroupOffsets_t *rd_kafka_AlterConsumerGroupOffsets_new(const char *group_id, const rd_kafka_topic_partition_list_t *partitions);
void rd_kafka_AlterConsumerGroupOffsets_destroy(rd_kafka_AlterConsumerGroupOffsets_t *alter_grpoffsets);
void rd_kafka_AlterConsumerGroupOffsets_destroy_array(rd_kafka_AlterConsumerGroupOffsets_t **alter_grpoffsets, size_t alter_grpoffset_cnt);
void rd_kafka_AlterConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_AlterConsumerGroupOffsets_t **alter_grpoffsets, size_t alter_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_AlterConsumerGroupOffsets_result_groups(const rd_kafka_AlterConsumerGroupOffsets_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteConsumerGroupOffsets_s rd_kafka_DeleteConsumerGroupOffsets_t;
rd_kafka_DeleteConsumerGroupOffsets_t *rd_kafka_DeleteConsumerGroupOffsets_new(const char *group, const rd_kafka_topic_partition_list_t *partitions);
void rd_kafka_DeleteConsumerGroupOffsets_destroy(rd_kafka_DeleteConsumerGroupOffsets_t *del_grpoffsets);
void rd_kafka_DeleteConsumerGroupOffsets_destroy_array(rd_kafka_DeleteConsumerGroupOffsets_t **del_grpoffsets, size_t del_grpoffset_cnt);
void rd_kafka_DeleteConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_DeleteConsumerGroupOffsets_t **del_grpoffsets, size_t del_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_DeleteConsumerGroupOffsets_result_groups(const rd_kafka_DeleteConsumerGroupOffsets_result_t *result, size_t *cntp);
typedef struct rd_kafka_AclBinding_s rd_kafka_AclBinding_t;
typedef rd_kafka_AclBinding_t rd_kafka_AclBindingFilter_t;
const rd_kafka_error_t *rd_kafka_acl_result_error(const rd_kafka_acl_result_t *aclres);
typedef enum rd_kafka_AclOperation_t {
  RD_KAFKA_ACL_OPERATION_UNKNOWN = 0,
  RD_KAFKA_ACL_OPERATION_ANY = 1,
  RD_KAFKA_ACL_OPERATION_ALL = 2,
  RD_KAFKA_ACL_OPERATION_READ = 3,
  RD_KAFKA_ACL_OPERATION_WRITE = 4,
  RD_KAFKA_ACL_OPERATION_CREATE = 5,
  RD_KAFKA_ACL_OPERATION_DELETE = 6,
  RD_KAFKA_ACL_OPERATION_ALTER = 7,
  RD_KAFKA_ACL_OPERATION_DESCRIBE = 8,
  RD_KAFKA_ACL_OPERATION_CLUSTER_ACTION = 9,
  RD_KAFKA_ACL_OPERATION_DESCRIBE_CONFIGS = 10,
  RD_KAFKA_ACL_OPERATION_ALTER_CONFIGS = 11,
  RD_KAFKA_ACL_OPERATION_IDEMPOTENT_WRITE = 12,
  RD_KAFKA_ACL_OPERATION__CNT,
} rd_kafka_AclOperation_t;
const char *rd_kafka_AclOperation_name(rd_kafka_AclOperation_t acl_operation);
typedef enum rd_kafka_AclPermissionType_t {
  RD_KAFKA_ACL_PERMISSION_TYPE_UNKNOWN = 0,
  RD_KAFKA_ACL_PERMISSION_TYPE_ANY = 1,
  RD_KAFKA_ACL_PERMISSION_TYPE_DENY = 2,
  RD_KAFKA_ACL_PERMISSION_TYPE_ALLOW = 3,
  RD_KAFKA_ACL_PERMISSION_TYPE__CNT,
} rd_kafka_AclPermissionType_t;
const char *rd_kafka_AclPermissionType_name(rd_kafka_AclPermissionType_t acl_permission_type);
rd_kafka_AclBinding_t *rd_kafka_AclBinding_new(rd_kafka_ResourceType_t restype, const char *name, rd_kafka_ResourcePatternType_t resource_pattern_type, const char *principal, const char *host, rd_kafka_AclOperation_t operation, rd_kafka_AclPermissionType_t permission_type, char *errstr, size_t errstr_size);
rd_kafka_AclBindingFilter_t *rd_kafka_AclBindingFilter_new(rd_kafka_ResourceType_t restype, const char *name, rd_kafka_ResourcePatternType_t resource_pattern_type, const char *principal, const char *host, rd_kafka_AclOperation_t operation, rd_kafka_AclPermissionType_t permission_type, char *errstr, size_t errstr_size);
rd_kafka_ResourceType_t rd_kafka_AclBinding_restype(const rd_kafka_AclBinding_t *acl);
const char *rd_kafka_AclBinding_name(const rd_kafka_AclBinding_t *acl);
const char *rd_kafka_AclBinding_principal(const rd_kafka_AclBinding_t *acl);
const char *rd_kafka_AclBinding_host(const rd_kafka_AclBinding_t *acl);
rd_kafka_AclOperation_t rd_kafka_AclBinding_operation(const rd_kafka_AclBinding_t *acl);
rd_kafka_AclPermissionType_t rd_kafka_AclBinding_permission_type(const rd_kafka_AclBinding_t *acl);
rd_kafka_ResourcePatternType_t rd_kafka_AclBinding_resource_pattern_type(const rd_kafka_AclBinding_t *acl);
const rd_kafka_error_t *rd_kafka_AclBinding_error(const rd_kafka_AclBinding_t *acl);
void rd_kafka_AclBinding_destroy(rd_kafka_AclBinding_t *acl_binding);
void rd_kafka_AclBinding_destroy_array(rd_kafka_AclBinding_t **acl_bindings, size_t acl_bindings_cnt);
const rd_kafka_acl_result_t **rd_kafka_CreateAcls_result_acls(const rd_kafka_CreateAcls_result_t *result, size_t *cntp);
void rd_kafka_CreateAcls(rd_kafka_t *rk, rd_kafka_AclBinding_t **new_acls, size_t new_acls_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_AclBinding_t **rd_kafka_DescribeAcls_result_acls(const rd_kafka_DescribeAcls_result_t *result, size_t *cntp);
void rd_kafka_DescribeAcls(rd_kafka_t *rk, rd_kafka_AclBindingFilter_t *acl_filter, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
typedef struct rd_kafka_DeleteAcls_result_response_s rd_kafka_DeleteAcls_result_response_t;
const rd_kafka_DeleteAcls_result_response_t **rd_kafka_DeleteAcls_result_responses(const rd_kafka_DeleteAcls_result_t *result, size_t *cntp);
const rd_kafka_error_t *rd_kafka_DeleteAcls_result_response_error(const rd_kafka_DeleteAcls_result_response_t *result_response);
const rd_kafka_AclBinding_t **rd_kafka_DeleteAcls_result_response_matching_acls(const rd_kafka_DeleteAcls_result_response_t *result_response, size_t *matching_acls_cntp);
void rd_kafka_DeleteAcls(rd_kafka_t *rk, rd_kafka_AclBindingFilter_t **del_acls, size_t del_acls_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token(rd_kafka_t *rk, const char *token_value, int64_t md_lifetime_ms, const char *md_principal_name, const char **extensions, size_t extension_size, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token_failure(rd_kafka_t *rk, const char *errstr);
rd_kafka_error_t *rd_kafka_init_transactions(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_begin_transaction(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_send_offsets_to_transaction(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, const rd_kafka_consumer_group_metadata_t *cgmetadata, int timeout_ms);
rd_kafka_error_t *rd_kafka_commit_transaction(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_abort_transaction(rd_kafka_t *rk, int timeout_ms);
typedef struct rd_kafka_mock_cluster_s rd_kafka_mock_cluster_t;
rd_kafka_mock_cluster_t *rd_kafka_mock_cluster_new(rd_kafka_t *rk, int broker_cnt);
void rd_kafka_mock_cluster_destroy(rd_kafka_mock_cluster_t *mcluster);
rd_kafka_t *rd_kafka_mock_cluster_handle(const rd_kafka_mock_cluster_t *mcluster);
rd_kafka_mock_cluster_t *rd_kafka_handle_mock_cluster(const rd_kafka_t *rk);
const char *rd_kafka_mock_cluster_bootstraps(const rd_kafka_mock_cluster_t *mcluster);
void rd_kafka_mock_clear_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey);
void rd_kafka_mock_push_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, ...);
void rd_kafka_mock_push_request_errors_array(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, const rd_kafka_resp_err_t *errors);
rd_kafka_resp_err_t rd_kafka_mock_broker_push_request_error_rtts(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int16_t ApiKey, size_t cnt, ...);
rd_kafka_resp_err_t rd_kafka_mock_broker_error_stack_cnt(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int16_t ApiKey, size_t *cntp);
void rd_kafka_mock_topic_set_error(rd_kafka_mock_cluster_t *mcluster, const char *topic, rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_mock_topic_create(rd_kafka_mock_cluster_t *mcluster, const char *topic, int partition_cnt, int replication_factor);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_leader(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower_wmarks(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int64_t lo, int64_t hi);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_down(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_up(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rtt(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int rtt_ms);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rack(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, const char *rack);
rd_kafka_resp_err_t rd_kafka_mock_coordinator_set(rd_kafka_mock_cluster_t *mcluster, const char *key_type, const char *key, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_set_apiversion(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, int16_t MinVersion, int16_t MaxVersion);
'
rdkafka.h, rdkafka_mock.h

RD_KAFKA_VERSION

public RD_KAFKA_VERSION = 33685759

librdkafka version

Interpreted as hex MM.mm.rr.xx:

  • MM = Major
  • mm = minor
  • rr = revision
  • xx = pre-release id (0xff is the final release)

E.g.: 0x000801ff = 0.8.1

Remarks
This value should only be used during compile time, for runtime checks of version use rd_kafka_version()

RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE

public RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76

Unsupported compression type

RD_KAFKA_RESP_ERR_END_ALL

public RD_KAFKA_RESP_ERR_END_ALL = 98
enum rd_kafka_resp_err_t

RD_KAFKA_ADMIN_OP__CNT

public RD_KAFKA_ADMIN_OP__CNT = 19

Number of ops defined

RD_KAFKA_CDEF

public RD_KAFKA_CDEF = 'typedef long int ssize_t;
typedef struct _IO_FILE FILE;
typedef long int mode_t;
typedef signed int int16_t;
typedef unsigned int uint16_t;
typedef signed int int32_t;
typedef signed long int int64_t;
int rd_kafka_version(void);
const char *rd_kafka_version_str(void);
typedef enum rd_kafka_type_t {
  RD_KAFKA_PRODUCER,
  RD_KAFKA_CONSUMER,
} rd_kafka_type_t;
typedef enum rd_kafka_timestamp_type_t {
  RD_KAFKA_TIMESTAMP_NOT_AVAILABLE,
  RD_KAFKA_TIMESTAMP_CREATE_TIME,
  RD_KAFKA_TIMESTAMP_LOG_APPEND_TIME,
} rd_kafka_timestamp_type_t;
const char *rd_kafka_get_debug_contexts(void);
typedef struct rd_kafka_s rd_kafka_t;
typedef struct rd_kafka_topic_s rd_kafka_topic_t;
typedef struct rd_kafka_conf_s rd_kafka_conf_t;
typedef struct rd_kafka_topic_conf_s rd_kafka_topic_conf_t;
typedef struct rd_kafka_queue_s rd_kafka_queue_t;
typedef struct rd_kafka_op_s rd_kafka_event_t;
typedef struct rd_kafka_topic_result_s rd_kafka_topic_result_t;
typedef struct rd_kafka_consumer_group_metadata_s rd_kafka_consumer_group_metadata_t;
typedef struct rd_kafka_error_s {
  unsigned int code;
  char *errstr;
  unsigned char fatal;
  unsigned char retriable;
  unsigned char txn_requires_abort;
} rd_kafka_error_t;
typedef struct rd_kafka_headers_s rd_kafka_headers_t;
typedef struct rd_kafka_group_result_s rd_kafka_group_result_t;
typedef struct rd_kafka_acl_result_s rd_kafka_acl_result_t;
typedef enum {
  RD_KAFKA_RESP_ERR__BEGIN = (- 200),
  RD_KAFKA_RESP_ERR__BAD_MSG = (- 199),
  RD_KAFKA_RESP_ERR__BAD_COMPRESSION = (- 198),
  RD_KAFKA_RESP_ERR__DESTROY = (- 197),
  RD_KAFKA_RESP_ERR__FAIL = (- 196),
  RD_KAFKA_RESP_ERR__TRANSPORT = (- 195),
  RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE = (- 194),
  RD_KAFKA_RESP_ERR__RESOLVE = (- 193),
  RD_KAFKA_RESP_ERR__MSG_TIMED_OUT = (- 192),
  RD_KAFKA_RESP_ERR__PARTITION_EOF = (- 191),
  RD_KAFKA_RESP_ERR__UNKNOWN_PARTITION = (- 190),
  RD_KAFKA_RESP_ERR__FS = (- 189),
  RD_KAFKA_RESP_ERR__UNKNOWN_TOPIC = (- 188),
  RD_KAFKA_RESP_ERR__ALL_BROKERS_DOWN = (- 187),
  RD_KAFKA_RESP_ERR__INVALID_ARG = (- 186),
  RD_KAFKA_RESP_ERR__TIMED_OUT = (- 185),
  RD_KAFKA_RESP_ERR__QUEUE_FULL = (- 184),
  RD_KAFKA_RESP_ERR__ISR_INSUFF = (- 183),
  RD_KAFKA_RESP_ERR__NODE_UPDATE = (- 182),
  RD_KAFKA_RESP_ERR__SSL = (- 181),
  RD_KAFKA_RESP_ERR__WAIT_COORD = (- 180),
  RD_KAFKA_RESP_ERR__UNKNOWN_GROUP = (- 179),
  RD_KAFKA_RESP_ERR__IN_PROGRESS = (- 178),
  RD_KAFKA_RESP_ERR__PREV_IN_PROGRESS = (- 177),
  RD_KAFKA_RESP_ERR__EXISTING_SUBSCRIPTION = (- 176),
  RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS = (- 175),
  RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS = (- 174),
  RD_KAFKA_RESP_ERR__CONFLICT = (- 173),
  RD_KAFKA_RESP_ERR__STATE = (- 172),
  RD_KAFKA_RESP_ERR__UNKNOWN_PROTOCOL = (- 171),
  RD_KAFKA_RESP_ERR__NOT_IMPLEMENTED = (- 170),
  RD_KAFKA_RESP_ERR__AUTHENTICATION = (- 169),
  RD_KAFKA_RESP_ERR__NO_OFFSET = (- 168),
  RD_KAFKA_RESP_ERR__OUTDATED = (- 167),
  RD_KAFKA_RESP_ERR__TIMED_OUT_QUEUE = (- 166),
  RD_KAFKA_RESP_ERR__UNSUPPORTED_FEATURE = (- 165),
  RD_KAFKA_RESP_ERR__WAIT_CACHE = (- 164),
  RD_KAFKA_RESP_ERR__INTR = (- 163),
  RD_KAFKA_RESP_ERR__KEY_SERIALIZATION = (- 162),
  RD_KAFKA_RESP_ERR__VALUE_SERIALIZATION = (- 161),
  RD_KAFKA_RESP_ERR__KEY_DESERIALIZATION = (- 160),
  RD_KAFKA_RESP_ERR__VALUE_DESERIALIZATION = (- 159),
  RD_KAFKA_RESP_ERR__PARTIAL = (- 158),
  RD_KAFKA_RESP_ERR__READ_ONLY = (- 157),
  RD_KAFKA_RESP_ERR__NOENT = (- 156),
  RD_KAFKA_RESP_ERR__UNDERFLOW = (- 155),
  RD_KAFKA_RESP_ERR__INVALID_TYPE = (- 154),
  RD_KAFKA_RESP_ERR__RETRY = (- 153),
  RD_KAFKA_RESP_ERR__PURGE_QUEUE = (- 152),
  RD_KAFKA_RESP_ERR__PURGE_INFLIGHT = (- 151),
  RD_KAFKA_RESP_ERR__FATAL = (- 150),
  RD_KAFKA_RESP_ERR__INCONSISTENT = (- 149),
  RD_KAFKA_RESP_ERR__GAPLESS_GUARANTEE = (- 148),
  RD_KAFKA_RESP_ERR__MAX_POLL_EXCEEDED = (- 147),
  RD_KAFKA_RESP_ERR__UNKNOWN_BROKER = (- 146),
  RD_KAFKA_RESP_ERR__NOT_CONFIGURED = (- 145),
  RD_KAFKA_RESP_ERR__FENCED = (- 144),
  RD_KAFKA_RESP_ERR__APPLICATION = (- 143),
  RD_KAFKA_RESP_ERR__ASSIGNMENT_LOST = (- 142),
  RD_KAFKA_RESP_ERR__NOOP = (- 141),
  RD_KAFKA_RESP_ERR__AUTO_OFFSET_RESET = (- 140),
  RD_KAFKA_RESP_ERR__LOG_TRUNCATION = (- 139),
  RD_KAFKA_RESP_ERR__END = (- 100),
  RD_KAFKA_RESP_ERR_UNKNOWN = (- 1),
  RD_KAFKA_RESP_ERR_NO_ERROR = 0,
  RD_KAFKA_RESP_ERR_OFFSET_OUT_OF_RANGE = 1,
  RD_KAFKA_RESP_ERR_INVALID_MSG = 2,
  RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_OR_PART = 3,
  RD_KAFKA_RESP_ERR_INVALID_MSG_SIZE = 4,
  RD_KAFKA_RESP_ERR_LEADER_NOT_AVAILABLE = 5,
  RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION = 6,
  RD_KAFKA_RESP_ERR_REQUEST_TIMED_OUT = 7,
  RD_KAFKA_RESP_ERR_BROKER_NOT_AVAILABLE = 8,
  RD_KAFKA_RESP_ERR_REPLICA_NOT_AVAILABLE = 9,
  RD_KAFKA_RESP_ERR_MSG_SIZE_TOO_LARGE = 10,
  RD_KAFKA_RESP_ERR_STALE_CTRL_EPOCH = 11,
  RD_KAFKA_RESP_ERR_OFFSET_METADATA_TOO_LARGE = 12,
  RD_KAFKA_RESP_ERR_NETWORK_EXCEPTION = 13,
  RD_KAFKA_RESP_ERR_COORDINATOR_LOAD_IN_PROGRESS = 14,
  RD_KAFKA_RESP_ERR_COORDINATOR_NOT_AVAILABLE = 15,
  RD_KAFKA_RESP_ERR_NOT_COORDINATOR = 16,
  RD_KAFKA_RESP_ERR_TOPIC_EXCEPTION = 17,
  RD_KAFKA_RESP_ERR_RECORD_LIST_TOO_LARGE = 18,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS = 19,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS_AFTER_APPEND = 20,
  RD_KAFKA_RESP_ERR_INVALID_REQUIRED_ACKS = 21,
  RD_KAFKA_RESP_ERR_ILLEGAL_GENERATION = 22,
  RD_KAFKA_RESP_ERR_INCONSISTENT_GROUP_PROTOCOL = 23,
  RD_KAFKA_RESP_ERR_INVALID_GROUP_ID = 24,
  RD_KAFKA_RESP_ERR_UNKNOWN_MEMBER_ID = 25,
  RD_KAFKA_RESP_ERR_INVALID_SESSION_TIMEOUT = 26,
  RD_KAFKA_RESP_ERR_REBALANCE_IN_PROGRESS = 27,
  RD_KAFKA_RESP_ERR_INVALID_COMMIT_OFFSET_SIZE = 28,
  RD_KAFKA_RESP_ERR_TOPIC_AUTHORIZATION_FAILED = 29,
  RD_KAFKA_RESP_ERR_GROUP_AUTHORIZATION_FAILED = 30,
  RD_KAFKA_RESP_ERR_CLUSTER_AUTHORIZATION_FAILED = 31,
  RD_KAFKA_RESP_ERR_INVALID_TIMESTAMP = 32,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_SASL_MECHANISM = 33,
  RD_KAFKA_RESP_ERR_ILLEGAL_SASL_STATE = 34,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_VERSION = 35,
  RD_KAFKA_RESP_ERR_TOPIC_ALREADY_EXISTS = 36,
  RD_KAFKA_RESP_ERR_INVALID_PARTITIONS = 37,
  RD_KAFKA_RESP_ERR_INVALID_REPLICATION_FACTOR = 38,
  RD_KAFKA_RESP_ERR_INVALID_REPLICA_ASSIGNMENT = 39,
  RD_KAFKA_RESP_ERR_INVALID_CONFIG = 40,
  RD_KAFKA_RESP_ERR_NOT_CONTROLLER = 41,
  RD_KAFKA_RESP_ERR_INVALID_REQUEST = 42,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_FOR_MESSAGE_FORMAT = 43,
  RD_KAFKA_RESP_ERR_POLICY_VIOLATION = 44,
  RD_KAFKA_RESP_ERR_OUT_OF_ORDER_SEQUENCE_NUMBER = 45,
  RD_KAFKA_RESP_ERR_DUPLICATE_SEQUENCE_NUMBER = 46,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_EPOCH = 47,
  RD_KAFKA_RESP_ERR_INVALID_TXN_STATE = 48,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_ID_MAPPING = 49,
  RD_KAFKA_RESP_ERR_INVALID_TRANSACTION_TIMEOUT = 50,
  RD_KAFKA_RESP_ERR_CONCURRENT_TRANSACTIONS = 51,
  RD_KAFKA_RESP_ERR_TRANSACTION_COORDINATOR_FENCED = 52,
  RD_KAFKA_RESP_ERR_TRANSACTIONAL_ID_AUTHORIZATION_FAILED = 53,
  RD_KAFKA_RESP_ERR_SECURITY_DISABLED = 54,
  RD_KAFKA_RESP_ERR_OPERATION_NOT_ATTEMPTED = 55,
  RD_KAFKA_RESP_ERR_KAFKA_STORAGE_ERROR = 56,
  RD_KAFKA_RESP_ERR_LOG_DIR_NOT_FOUND = 57,
  RD_KAFKA_RESP_ERR_SASL_AUTHENTICATION_FAILED = 58,
  RD_KAFKA_RESP_ERR_UNKNOWN_PRODUCER_ID = 59,
  RD_KAFKA_RESP_ERR_REASSIGNMENT_IN_PROGRESS = 60,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTH_DISABLED = 61,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_NOT_FOUND = 62,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_OWNER_MISMATCH = 63,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_REQUEST_NOT_ALLOWED = 64,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTHORIZATION_FAILED = 65,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_EXPIRED = 66,
  RD_KAFKA_RESP_ERR_INVALID_PRINCIPAL_TYPE = 67,
  RD_KAFKA_RESP_ERR_NON_EMPTY_GROUP = 68,
  RD_KAFKA_RESP_ERR_GROUP_ID_NOT_FOUND = 69,
  RD_KAFKA_RESP_ERR_FETCH_SESSION_ID_NOT_FOUND = 70,
  RD_KAFKA_RESP_ERR_INVALID_FETCH_SESSION_EPOCH = 71,
  RD_KAFKA_RESP_ERR_LISTENER_NOT_FOUND = 72,
  RD_KAFKA_RESP_ERR_TOPIC_DELETION_DISABLED = 73,
  RD_KAFKA_RESP_ERR_FENCED_LEADER_EPOCH = 74,
  RD_KAFKA_RESP_ERR_UNKNOWN_LEADER_EPOCH = 75,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76,
  RD_KAFKA_RESP_ERR_STALE_BROKER_EPOCH = 77,
  RD_KAFKA_RESP_ERR_OFFSET_NOT_AVAILABLE = 78,
  RD_KAFKA_RESP_ERR_MEMBER_ID_REQUIRED = 79,
  RD_KAFKA_RESP_ERR_PREFERRED_LEADER_NOT_AVAILABLE = 80,
  RD_KAFKA_RESP_ERR_GROUP_MAX_SIZE_REACHED = 81,
  RD_KAFKA_RESP_ERR_FENCED_INSTANCE_ID = 82,
  RD_KAFKA_RESP_ERR_ELIGIBLE_LEADERS_NOT_AVAILABLE = 83,
  RD_KAFKA_RESP_ERR_ELECTION_NOT_NEEDED = 84,
  RD_KAFKA_RESP_ERR_NO_REASSIGNMENT_IN_PROGRESS = 85,
  RD_KAFKA_RESP_ERR_GROUP_SUBSCRIBED_TO_TOPIC = 86,
  RD_KAFKA_RESP_ERR_INVALID_RECORD = 87,
  RD_KAFKA_RESP_ERR_UNSTABLE_OFFSET_COMMIT = 88,
  RD_KAFKA_RESP_ERR_THROTTLING_QUOTA_EXCEEDED = 89,
  RD_KAFKA_RESP_ERR_PRODUCER_FENCED = 90,
  RD_KAFKA_RESP_ERR_RESOURCE_NOT_FOUND = 91,
  RD_KAFKA_RESP_ERR_DUPLICATE_RESOURCE = 92,
  RD_KAFKA_RESP_ERR_UNACCEPTABLE_CREDENTIAL = 93,
  RD_KAFKA_RESP_ERR_INCONSISTENT_VOTER_SET = 94,
  RD_KAFKA_RESP_ERR_INVALID_UPDATE_VERSION = 95,
  RD_KAFKA_RESP_ERR_FEATURE_UPDATE_FAILED = 96,
  RD_KAFKA_RESP_ERR_PRINCIPAL_DESERIALIZATION_FAILURE = 97,
  RD_KAFKA_RESP_ERR_END_ALL,
} rd_kafka_resp_err_t;
struct rd_kafka_err_desc {
  rd_kafka_resp_err_t code;
  char *name;
  char *desc;
};
void rd_kafka_get_err_descs(const struct rd_kafka_err_desc **errdescs, size_t *cntp);
const char *rd_kafka_err2str(rd_kafka_resp_err_t err);
const char *rd_kafka_err2name(rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_last_error(void);
rd_kafka_resp_err_t rd_kafka_errno2err(int errnox);
int rd_kafka_errno(void);
rd_kafka_resp_err_t rd_kafka_fatal_error(rd_kafka_t *rk, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_test_fatal_error(rd_kafka_t *rk, rd_kafka_resp_err_t err, const char *reason);
rd_kafka_resp_err_t rd_kafka_error_code(const rd_kafka_error_t *error);
const char *rd_kafka_error_name(const rd_kafka_error_t *error);
const char *rd_kafka_error_string(const rd_kafka_error_t *error);
int rd_kafka_error_is_fatal(const rd_kafka_error_t *error);
int rd_kafka_error_is_retriable(const rd_kafka_error_t *error);
int rd_kafka_error_txn_requires_abort(const rd_kafka_error_t *error);
void rd_kafka_error_destroy(rd_kafka_error_t *error);
rd_kafka_error_t *rd_kafka_error_new(rd_kafka_resp_err_t code, const char *fmt, ...);
typedef struct rd_kafka_topic_partition_s {
  char *topic;
  int32_t partition;
  int64_t offset;
  void *metadata;
  size_t metadata_size;
  void *opaque;
  rd_kafka_resp_err_t err;
  void *_private;
} rd_kafka_topic_partition_t;
void rd_kafka_topic_partition_destroy(rd_kafka_topic_partition_t *rktpar);
void rd_kafka_topic_partition_set_leader_epoch(rd_kafka_topic_partition_t *rktpar, int32_t leader_epoch);
int32_t rd_kafka_topic_partition_get_leader_epoch(const rd_kafka_topic_partition_t *rktpar);
typedef struct rd_kafka_topic_partition_list_s {
  int cnt;
  int size;
  rd_kafka_topic_partition_t *elems;
} rd_kafka_topic_partition_list_t;
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_new(int size);
void rd_kafka_topic_partition_list_destroy(rd_kafka_topic_partition_list_t *rkparlist);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_add(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_add_range(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t start, int32_t stop);
int rd_kafka_topic_partition_list_del(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
int rd_kafka_topic_partition_list_del_by_idx(rd_kafka_topic_partition_list_t *rktparlist, int idx);
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_copy(const rd_kafka_topic_partition_list_t *src);
rd_kafka_resp_err_t rd_kafka_topic_partition_list_set_offset(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition, int64_t offset);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_find(const rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_sort(rd_kafka_topic_partition_list_t *rktparlist, int (*cmp)(const void *a, const void *b, void *cmp_opaque), void *cmp_opaque);
typedef enum rd_kafka_vtype_t {
  RD_KAFKA_VTYPE_END,
  RD_KAFKA_VTYPE_TOPIC,
  RD_KAFKA_VTYPE_RKT,
  RD_KAFKA_VTYPE_PARTITION,
  RD_KAFKA_VTYPE_VALUE,
  RD_KAFKA_VTYPE_KEY,
  RD_KAFKA_VTYPE_OPAQUE,
  RD_KAFKA_VTYPE_MSGFLAGS,
  RD_KAFKA_VTYPE_TIMESTAMP,
  RD_KAFKA_VTYPE_HEADER,
  RD_KAFKA_VTYPE_HEADERS,
} rd_kafka_vtype_t;
typedef struct rd_kafka_vu_s {
  rd_kafka_vtype_t vtype;
  union {
    char *cstr;
    rd_kafka_topic_t *rkt;
    int i;
    int32_t i32;
    int64_t i64;
    struct {
      void *ptr;
      size_t size;
    } mem;
    struct {
      char *name;
      void *val;
      ssize_t size;
    } header;
    rd_kafka_headers_t *headers;
    void *ptr;
    char _pad[64];
  } u;
} rd_kafka_vu_t;
rd_kafka_headers_t *rd_kafka_headers_new(size_t initial_count);
void rd_kafka_headers_destroy(rd_kafka_headers_t *hdrs);
rd_kafka_headers_t *rd_kafka_headers_copy(const rd_kafka_headers_t *src);
rd_kafka_resp_err_t rd_kafka_header_add(rd_kafka_headers_t *hdrs, const char *name, ssize_t name_size, const void *value, ssize_t value_size);
rd_kafka_resp_err_t rd_kafka_header_remove(rd_kafka_headers_t *hdrs, const char *name);
rd_kafka_resp_err_t rd_kafka_header_get_last(const rd_kafka_headers_t *hdrs, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get(const rd_kafka_headers_t *hdrs, size_t idx, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get_all(const rd_kafka_headers_t *hdrs, size_t idx, const char **namep, const void **valuep, size_t *sizep);
typedef struct rd_kafka_message_s {
  rd_kafka_resp_err_t err;
  rd_kafka_topic_t *rkt;
  int32_t partition;
  void *payload;
  size_t len;
  void *key;
  size_t key_len;
  int64_t offset;
  void *_private;
} rd_kafka_message_t;
void rd_kafka_message_destroy(rd_kafka_message_t *rkmessage);
const char *rd_kafka_message_errstr(const rd_kafka_message_t *rkmessage);
int64_t rd_kafka_message_timestamp(const rd_kafka_message_t *rkmessage, rd_kafka_timestamp_type_t *tstype);
int64_t rd_kafka_message_latency(const rd_kafka_message_t *rkmessage);
int32_t rd_kafka_message_broker_id(const rd_kafka_message_t *rkmessage);
rd_kafka_resp_err_t rd_kafka_message_headers(const rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
rd_kafka_resp_err_t rd_kafka_message_detach_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
void rd_kafka_message_set_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t *hdrs);
size_t rd_kafka_header_cnt(const rd_kafka_headers_t *hdrs);
typedef enum {
  RD_KAFKA_MSG_STATUS_NOT_PERSISTED = 0,
  RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED = 1,
  RD_KAFKA_MSG_STATUS_PERSISTED = 2,
} rd_kafka_msg_status_t;
rd_kafka_msg_status_t rd_kafka_message_status(const rd_kafka_message_t *rkmessage);
int32_t rd_kafka_message_leader_epoch(const rd_kafka_message_t *rkmessage);
typedef enum {
  RD_KAFKA_CONF_UNKNOWN = (- 2),
  RD_KAFKA_CONF_INVALID = (- 1),
  RD_KAFKA_CONF_OK = 0,
} rd_kafka_conf_res_t;
rd_kafka_conf_t *rd_kafka_conf_new(void);
void rd_kafka_conf_destroy(rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup(const rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup_filter(const rd_kafka_conf_t *conf, size_t filter_cnt, const char **filter);
const rd_kafka_conf_t *rd_kafka_conf(rd_kafka_t *rk);
rd_kafka_conf_res_t rd_kafka_conf_set(rd_kafka_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_events(rd_kafka_conf_t *conf, int events);
void rd_kafka_conf_set_background_event_cb(rd_kafka_conf_t *conf, void (*event_cb)(rd_kafka_t *rk, rd_kafka_event_t *rkev, void *opaque));
void rd_kafka_conf_set_dr_cb(rd_kafka_conf_t *conf, void (*dr_cb)(rd_kafka_t *rk, void *payload, size_t len, rd_kafka_resp_err_t err, void *opaque, void *msg_opaque));
void rd_kafka_conf_set_dr_msg_cb(rd_kafka_conf_t *conf, void (*dr_msg_cb)(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_consume_cb(rd_kafka_conf_t *conf, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_rebalance_cb(rd_kafka_conf_t *conf, void (*rebalance_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *partitions, void *opaque));
void rd_kafka_conf_set_offset_commit_cb(rd_kafka_conf_t *conf, void (*offset_commit_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *opaque));
void rd_kafka_conf_set_error_cb(rd_kafka_conf_t *conf, void (*error_cb)(rd_kafka_t *rk, int err, const char *reason, void *opaque));
void rd_kafka_conf_set_throttle_cb(rd_kafka_conf_t *conf, void (*throttle_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int throttle_time_ms, void *opaque));
void rd_kafka_conf_set_log_cb(rd_kafka_conf_t *conf, void (*log_cb)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_conf_set_stats_cb(rd_kafka_conf_t *conf, int (*stats_cb)(rd_kafka_t *rk, char *json, size_t json_len, void *opaque));
void rd_kafka_conf_set_oauthbearer_token_refresh_cb(rd_kafka_conf_t *conf, void (*oauthbearer_token_refresh_cb)(rd_kafka_t *rk, const char *oauthbearer_config, void *opaque));
void rd_kafka_conf_enable_sasl_queue(rd_kafka_conf_t *conf, int enable);
void rd_kafka_conf_set_socket_cb(rd_kafka_conf_t *conf, int (*socket_cb)(int domain, int type, int protocol, void *opaque));
void rd_kafka_conf_set_connect_cb(rd_kafka_conf_t *conf, int (*connect_cb)(int sockfd, const struct sockaddr *addr, int addrlen, const char *id, void *opaque));
void rd_kafka_conf_set_closesocket_cb(rd_kafka_conf_t *conf, int (*closesocket_cb)(int sockfd, void *opaque));
struct addrinfo;
void rd_kafka_conf_set_resolve_cb(rd_kafka_conf_t *conf, int (*resolve_cb)(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res, void *opaque));
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert_verify_cb(rd_kafka_conf_t *conf, int (*ssl_cert_verify_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int *x509_error, int depth, const char *buf, size_t size, char *errstr, size_t errstr_size, void *opaque));
typedef enum rd_kafka_cert_type_t {
  RD_KAFKA_CERT_PUBLIC_KEY,
  RD_KAFKA_CERT_PRIVATE_KEY,
  RD_KAFKA_CERT_CA,
  RD_KAFKA_CERT__CNT,
} rd_kafka_cert_type_t;
typedef enum rd_kafka_cert_enc_t {
  RD_KAFKA_CERT_ENC_PKCS12,
  RD_KAFKA_CERT_ENC_DER,
  RD_KAFKA_CERT_ENC_PEM,
  RD_KAFKA_CERT_ENC__CNT,
} rd_kafka_cert_enc_t;
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert(rd_kafka_conf_t *conf, rd_kafka_cert_type_t cert_type, rd_kafka_cert_enc_t cert_enc, const void *buffer, size_t size, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_engine_callback_data(rd_kafka_conf_t *conf, void *callback_data);
void rd_kafka_conf_set_opaque(rd_kafka_conf_t *conf, void *opaque);
void *rd_kafka_opaque(const rd_kafka_t *rk);
void rd_kafka_conf_set_default_topic_conf(rd_kafka_conf_t *conf, rd_kafka_topic_conf_t *tconf);
rd_kafka_topic_conf_t *rd_kafka_conf_get_default_topic_conf(rd_kafka_conf_t *conf);
rd_kafka_conf_res_t rd_kafka_conf_get(const rd_kafka_conf_t *conf, const char *name, char *dest, size_t *dest_size);
rd_kafka_conf_res_t rd_kafka_topic_conf_get(const rd_kafka_topic_conf_t *conf, const char *name, char *dest, size_t *dest_size);
const char **rd_kafka_conf_dump(rd_kafka_conf_t *conf, size_t *cntp);
const char **rd_kafka_topic_conf_dump(rd_kafka_topic_conf_t *conf, size_t *cntp);
void rd_kafka_conf_dump_free(const char **arr, size_t cnt);
void rd_kafka_conf_properties_show(FILE *fp);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_new(void);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_dup(const rd_kafka_topic_conf_t *conf);
rd_kafka_topic_conf_t *rd_kafka_default_topic_conf_dup(rd_kafka_t *rk);
void rd_kafka_topic_conf_destroy(rd_kafka_topic_conf_t *topic_conf);
rd_kafka_conf_res_t rd_kafka_topic_conf_set(rd_kafka_topic_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_topic_conf_set_opaque(rd_kafka_topic_conf_t *conf, void *rkt_opaque);
void rd_kafka_topic_conf_set_partitioner_cb(rd_kafka_topic_conf_t *topic_conf, int32_t (*partitioner)(const rd_kafka_topic_t *rkt, const void *keydata, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque));
void rd_kafka_topic_conf_set_msg_order_cmp(rd_kafka_topic_conf_t *topic_conf, int (*msg_order_cmp)(const rd_kafka_message_t *a, const rd_kafka_message_t *b));
int rd_kafka_topic_partition_available(const rd_kafka_topic_t *rkt, int32_t partition);
int32_t rd_kafka_msg_partitioner_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
rd_kafka_t *rd_kafka_new(rd_kafka_type_t type, rd_kafka_conf_t *conf, char *errstr, size_t errstr_size);
void rd_kafka_destroy(rd_kafka_t *rk);
void rd_kafka_destroy_flags(rd_kafka_t *rk, int flags);
const char *rd_kafka_name(const rd_kafka_t *rk);
rd_kafka_type_t rd_kafka_type(const rd_kafka_t *rk);
char *rd_kafka_memberid(const rd_kafka_t *rk);
char *rd_kafka_clusterid(rd_kafka_t *rk, int timeout_ms);
int32_t rd_kafka_controllerid(rd_kafka_t *rk, int timeout_ms);
rd_kafka_topic_t *rd_kafka_topic_new(rd_kafka_t *rk, const char *topic, rd_kafka_topic_conf_t *conf);
void rd_kafka_topic_destroy(rd_kafka_topic_t *rkt);
const char *rd_kafka_topic_name(const rd_kafka_topic_t *rkt);
void *rd_kafka_topic_opaque(const rd_kafka_topic_t *rkt);
int rd_kafka_poll(rd_kafka_t *rk, int timeout_ms);
void rd_kafka_yield(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_pause_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_resume_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_query_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_get_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high);
rd_kafka_resp_err_t rd_kafka_offsets_for_times(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets, int timeout_ms);
void *rd_kafka_mem_calloc(rd_kafka_t *rk, size_t num, size_t size);
void *rd_kafka_mem_malloc(rd_kafka_t *rk, size_t size);
void rd_kafka_mem_free(rd_kafka_t *rk, void *ptr);
rd_kafka_queue_t *rd_kafka_queue_new(rd_kafka_t *rk);
void rd_kafka_queue_destroy(rd_kafka_queue_t *rkqu);
rd_kafka_queue_t *rd_kafka_queue_get_main(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_sasl(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_sasl_background_callbacks_enable(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_sasl_set_credentials(rd_kafka_t *rk, const char *username, const char *password);
rd_kafka_queue_t *rd_kafka_queue_get_consumer(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_partition(rd_kafka_t *rk, const char *topic, int32_t partition);
rd_kafka_queue_t *rd_kafka_queue_get_background(rd_kafka_t *rk);
void rd_kafka_queue_forward(rd_kafka_queue_t *src, rd_kafka_queue_t *dst);
rd_kafka_resp_err_t rd_kafka_set_log_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu);
size_t rd_kafka_queue_length(rd_kafka_queue_t *rkqu);
void rd_kafka_queue_io_event_enable(rd_kafka_queue_t *rkqu, int fd, const void *payload, size_t size);
void rd_kafka_queue_cb_event_enable(rd_kafka_queue_t *rkqu, void (*event_cb)(rd_kafka_t *rk, void *qev_opaque), void *qev_opaque);
void rd_kafka_queue_yield(rd_kafka_queue_t *rkqu);
int rd_kafka_consume_start(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
int rd_kafka_consume_start_queue(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, rd_kafka_queue_t *rkqu);
int rd_kafka_consume_stop(rd_kafka_topic_t *rkt, int32_t partition);
rd_kafka_resp_err_t rd_kafka_seek(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, int timeout_ms);
rd_kafka_error_t *rd_kafka_seek_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_message_t *rd_kafka_consume(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms);
ssize_t rd_kafka_consume_batch(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_message_t *rd_kafka_consume_queue(rd_kafka_queue_t *rkqu, int timeout_ms);
ssize_t rd_kafka_consume_batch_queue(rd_kafka_queue_t *rkqu, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback_queue(rd_kafka_queue_t *rkqu, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_offset_store(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
rd_kafka_resp_err_t rd_kafka_offsets_store(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets);
rd_kafka_error_t *rd_kafka_offset_store_message(rd_kafka_message_t *rkmessage);
rd_kafka_resp_err_t rd_kafka_subscribe(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *topics);
rd_kafka_resp_err_t rd_kafka_unsubscribe(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_subscription(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **topics);
rd_kafka_message_t *rd_kafka_consumer_poll(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_consumer_close(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_consumer_close_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu);
int rd_kafka_consumer_closed(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_incremental_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_error_t *rd_kafka_incremental_unassign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
const char *rd_kafka_rebalance_protocol(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_assignment(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **partitions);
int rd_kafka_assignment_lost(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_commit(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, int async);
rd_kafka_resp_err_t rd_kafka_commit_message(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, int async);
rd_kafka_resp_err_t rd_kafka_commit_queue(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_queue_t *rkqu, void (*cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_committed(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_position(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata(rd_kafka_t *rk);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new(const char *group_id);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new_with_genid(const char *group_id, int32_t generation_id, const char *member_id, const char *group_instance_id);
void rd_kafka_consumer_group_metadata_destroy(rd_kafka_consumer_group_metadata_t *);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_write(const rd_kafka_consumer_group_metadata_t *cgmd, void **bufferp, size_t *sizep);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_read(rd_kafka_consumer_group_metadata_t **cgmdp, const void *buffer, size_t size);
int rd_kafka_produce(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, void *payload, size_t len, const void *key, size_t keylen, void *msg_opaque);
rd_kafka_resp_err_t rd_kafka_producev(rd_kafka_t *rk, ...);
rd_kafka_error_t *rd_kafka_produceva(rd_kafka_t *rk, const rd_kafka_vu_t *vus, size_t cnt);
int rd_kafka_produce_batch(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, rd_kafka_message_t *rkmessages, int message_cnt);
rd_kafka_resp_err_t rd_kafka_flush(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_purge(rd_kafka_t *rk, int purge_flags);
typedef struct rd_kafka_metadata_broker {
  int32_t id;
  char *host;
  int port;
} rd_kafka_metadata_broker_t;
typedef struct rd_kafka_metadata_partition {
  int32_t id;
  rd_kafka_resp_err_t err;
  int32_t leader;
  int replica_cnt;
  int32_t *replicas;
  int isr_cnt;
  int32_t *isrs;
} rd_kafka_metadata_partition_t;
typedef struct rd_kafka_metadata_topic {
  char *topic;
  int partition_cnt;
  struct rd_kafka_metadata_partition *partitions;
  rd_kafka_resp_err_t err;
} rd_kafka_metadata_topic_t;
typedef struct rd_kafka_metadata {
  int broker_cnt;
  struct rd_kafka_metadata_broker *brokers;
  int topic_cnt;
  struct rd_kafka_metadata_topic *topics;
  int32_t orig_broker_id;
  char *orig_broker_name;
} rd_kafka_metadata_t;
rd_kafka_resp_err_t rd_kafka_metadata(rd_kafka_t *rk, int all_topics, rd_kafka_topic_t *only_rkt, const struct rd_kafka_metadata **metadatap, int timeout_ms);
void rd_kafka_metadata_destroy(const struct rd_kafka_metadata *metadata);
typedef struct rd_kafka_Node_s rd_kafka_Node_t;
int rd_kafka_Node_id(const rd_kafka_Node_t *node);
const char *rd_kafka_Node_host(const rd_kafka_Node_t *node);
uint16_t rd_kafka_Node_port(const rd_kafka_Node_t *node);
struct rd_kafka_group_member_info {
  char *member_id;
  char *client_id;
  char *client_host;
  void *member_metadata;
  int member_metadata_size;
  void *member_assignment;
  int member_assignment_size;
};
typedef enum {
  RD_KAFKA_CONSUMER_GROUP_STATE_UNKNOWN = 0,
  RD_KAFKA_CONSUMER_GROUP_STATE_PREPARING_REBALANCE = 1,
  RD_KAFKA_CONSUMER_GROUP_STATE_COMPLETING_REBALANCE = 2,
  RD_KAFKA_CONSUMER_GROUP_STATE_STABLE = 3,
  RD_KAFKA_CONSUMER_GROUP_STATE_DEAD = 4,
  RD_KAFKA_CONSUMER_GROUP_STATE_EMPTY = 5,
  RD_KAFKA_CONSUMER_GROUP_STATE__CNT,
} rd_kafka_consumer_group_state_t;
struct rd_kafka_group_info {
  struct rd_kafka_metadata_broker broker;
  char *group;
  rd_kafka_resp_err_t err;
  char *state;
  char *protocol_type;
  char *protocol;
  struct rd_kafka_group_member_info *members;
  int member_cnt;
};
struct rd_kafka_group_list {
  struct rd_kafka_group_info *groups;
  int group_cnt;
};
rd_kafka_resp_err_t rd_kafka_list_groups(rd_kafka_t *rk, const char *group, const struct rd_kafka_group_list **grplistp, int timeout_ms);
const char *rd_kafka_consumer_group_state_name(rd_kafka_consumer_group_state_t state);
rd_kafka_consumer_group_state_t rd_kafka_consumer_group_state_code(const char *name);
void rd_kafka_group_list_destroy(const struct rd_kafka_group_list *grplist);
int rd_kafka_brokers_add(rd_kafka_t *rk, const char *brokerlist);
void rd_kafka_set_logger(rd_kafka_t *rk, void (*func)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_set_log_level(rd_kafka_t *rk, int level);
void rd_kafka_log_print(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
void rd_kafka_log_syslog(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
int rd_kafka_outq_len(rd_kafka_t *rk);
void rd_kafka_dump(FILE *fp, rd_kafka_t *rk);
int rd_kafka_thread_cnt(void);
typedef enum rd_kafka_thread_type_t {
  RD_KAFKA_THREAD_MAIN,
  RD_KAFKA_THREAD_BACKGROUND,
  RD_KAFKA_THREAD_BROKER,
} rd_kafka_thread_type_t;
int rd_kafka_wait_destroyed(int timeout_ms);
int rd_kafka_unittest(void);
rd_kafka_resp_err_t rd_kafka_poll_set_consumer(rd_kafka_t *rk);
typedef int rd_kafka_event_type_t;
rd_kafka_event_type_t rd_kafka_event_type(const rd_kafka_event_t *rkev);
const char *rd_kafka_event_name(const rd_kafka_event_t *rkev);
void rd_kafka_event_destroy(rd_kafka_event_t *rkev);
const rd_kafka_message_t *rd_kafka_event_message_next(rd_kafka_event_t *rkev);
size_t rd_kafka_event_message_array(rd_kafka_event_t *rkev, const rd_kafka_message_t **rkmessages, size_t size);
size_t rd_kafka_event_message_count(rd_kafka_event_t *rkev);
const char *rd_kafka_event_config_string(rd_kafka_event_t *rkev);
rd_kafka_resp_err_t rd_kafka_event_error(rd_kafka_event_t *rkev);
const char *rd_kafka_event_error_string(rd_kafka_event_t *rkev);
int rd_kafka_event_error_is_fatal(rd_kafka_event_t *rkev);
void *rd_kafka_event_opaque(rd_kafka_event_t *rkev);
int rd_kafka_event_log(rd_kafka_event_t *rkev, const char **fac, const char **str, int *level);
int rd_kafka_event_debug_contexts(rd_kafka_event_t *rkev, char *dst, size_t dstsize);
const char *rd_kafka_event_stats(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_list_t *rd_kafka_event_topic_partition_list(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_t *rd_kafka_event_topic_partition(rd_kafka_event_t *rkev);
typedef rd_kafka_event_t rd_kafka_CreateTopics_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteTopics_result_t;
typedef rd_kafka_event_t rd_kafka_CreateAcls_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeAcls_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteAcls_result_t;
typedef rd_kafka_event_t rd_kafka_CreatePartitions_result_t;
typedef rd_kafka_event_t rd_kafka_AlterConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_IncrementalAlterConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteRecords_result_t;
typedef rd_kafka_event_t rd_kafka_ListConsumerGroups_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeConsumerGroups_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteGroups_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteConsumerGroupOffsets_result_t;
typedef rd_kafka_event_t rd_kafka_AlterConsumerGroupOffsets_result_t;
typedef rd_kafka_event_t rd_kafka_ListConsumerGroupOffsets_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeUserScramCredentials_result_t;
typedef rd_kafka_event_t rd_kafka_AlterUserScramCredentials_result_t;
const rd_kafka_CreateTopics_result_t *rd_kafka_event_CreateTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteTopics_result_t *rd_kafka_event_DeleteTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_CreatePartitions_result_t *rd_kafka_event_CreatePartitions_result(rd_kafka_event_t *rkev);
const rd_kafka_AlterConfigs_result_t *rd_kafka_event_AlterConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_IncrementalAlterConfigs_result_t *rd_kafka_event_IncrementalAlterConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeConfigs_result_t *rd_kafka_event_DescribeConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteRecords_result_t *rd_kafka_event_DeleteRecords_result(rd_kafka_event_t *rkev);
const rd_kafka_ListConsumerGroups_result_t *rd_kafka_event_ListConsumerGroups_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeConsumerGroups_result_t *rd_kafka_event_DescribeConsumerGroups_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteGroups_result_t *rd_kafka_event_DeleteGroups_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteConsumerGroupOffsets_result_t *rd_kafka_event_DeleteConsumerGroupOffsets_result(rd_kafka_event_t *rkev);
const rd_kafka_CreateAcls_result_t *rd_kafka_event_CreateAcls_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeAcls_result_t *rd_kafka_event_DescribeAcls_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteAcls_result_t *rd_kafka_event_DeleteAcls_result(rd_kafka_event_t *rkev);
const rd_kafka_ListConsumerGroupOffsets_result_t *rd_kafka_event_ListConsumerGroupOffsets_result(rd_kafka_event_t *rkev);
const rd_kafka_AlterConsumerGroupOffsets_result_t *rd_kafka_event_AlterConsumerGroupOffsets_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeUserScramCredentials_result_t *rd_kafka_event_DescribeUserScramCredentials_result(rd_kafka_event_t *rkev);
const rd_kafka_AlterUserScramCredentials_result_t *rd_kafka_event_AlterUserScramCredentials_result(rd_kafka_event_t *rkev);
rd_kafka_event_t *rd_kafka_queue_poll(rd_kafka_queue_t *rkqu, int timeout_ms);
int rd_kafka_queue_poll_callback(rd_kafka_queue_t *rkqu, int timeout_ms);
typedef rd_kafka_resp_err_t (rd_kafka_plugin_f_conf_init_t)(rd_kafka_conf_t *conf, void **plug_opaquep, char *errstr, size_t errstr_size);
typedef rd_kafka_conf_res_t (rd_kafka_interceptor_f_on_conf_set_t)(rd_kafka_conf_t *conf, const char *name, const char *val, char *errstr, size_t errstr_size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_dup_t)(rd_kafka_conf_t *new_conf, const rd_kafka_conf_t *old_conf, size_t filter_cnt, const char **filter, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_destroy_t)(void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_new_t)(rd_kafka_t *rk, const rd_kafka_conf_t *conf, void *ic_opaque, char *errstr, size_t errstr_size);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_destroy_t)(rd_kafka_t *rk, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_send_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_acknowledgement_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_consume_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_commit_t)(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_request_sent_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_response_received_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, int64_t rtt, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_start_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_exit_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_broker_state_change_t)(rd_kafka_t *rk, int32_t broker_id, const char *secproto, const char *name, int port, const char *state, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_set(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_set_t *on_conf_set, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_dup(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_dup_t *on_conf_dup, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_destroy(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_destroy_t *on_conf_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_new(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_new_t *on_new, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_destroy(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_destroy_t *on_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_send(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_send_t *on_send, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_acknowledgement(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_acknowledgement_t *on_acknowledgement, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_consume(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_consume_t *on_consume, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_commit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_commit_t *on_commit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_request_sent(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_request_sent_t *on_request_sent, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_response_received(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_response_received_t *on_response_received, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_start(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_start_t *on_thread_start, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_exit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_exit_t *on_thread_exit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_broker_state_change(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_broker_state_change_t *on_broker_state_change, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_topic_result_error(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_error_string(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_name(const rd_kafka_topic_result_t *topicres);
const rd_kafka_error_t *rd_kafka_group_result_error(const rd_kafka_group_result_t *groupres);
const char *rd_kafka_group_result_name(const rd_kafka_group_result_t *groupres);
const rd_kafka_topic_partition_list_t *rd_kafka_group_result_partitions(const rd_kafka_group_result_t *groupres);
typedef enum rd_kafka_admin_op_t {
  RD_KAFKA_ADMIN_OP_ANY = 0,
  RD_KAFKA_ADMIN_OP_CREATETOPICS,
  RD_KAFKA_ADMIN_OP_DELETETOPICS,
  RD_KAFKA_ADMIN_OP_CREATEPARTITIONS,
  RD_KAFKA_ADMIN_OP_ALTERCONFIGS,
  RD_KAFKA_ADMIN_OP_DESCRIBECONFIGS,
  RD_KAFKA_ADMIN_OP_DELETERECORDS,
  RD_KAFKA_ADMIN_OP_DELETEGROUPS,
  RD_KAFKA_ADMIN_OP_DELETECONSUMERGROUPOFFSETS,
  RD_KAFKA_ADMIN_OP_CREATEACLS,
  RD_KAFKA_ADMIN_OP_DESCRIBEACLS,
  RD_KAFKA_ADMIN_OP_DELETEACLS,
  RD_KAFKA_ADMIN_OP_LISTCONSUMERGROUPS,
  RD_KAFKA_ADMIN_OP_DESCRIBECONSUMERGROUPS,
  RD_KAFKA_ADMIN_OP_LISTCONSUMERGROUPOFFSETS,
  RD_KAFKA_ADMIN_OP_ALTERCONSUMERGROUPOFFSETS,
  RD_KAFKA_ADMIN_OP_INCREMENTALALTERCONFIGS,
  RD_KAFKA_ADMIN_OP_DESCRIBEUSERSCRAMCREDENTIALS,
  RD_KAFKA_ADMIN_OP_ALTERUSERSCRAMCREDENTIALS,
  RD_KAFKA_ADMIN_OP__CNT,
} rd_kafka_admin_op_t;
typedef struct rd_kafka_AdminOptions_s rd_kafka_AdminOptions_t;
rd_kafka_AdminOptions_t *rd_kafka_AdminOptions_new(rd_kafka_t *rk, rd_kafka_admin_op_t for_api);
void rd_kafka_AdminOptions_destroy(rd_kafka_AdminOptions_t *options);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_request_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_operation_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_validate_only(rd_kafka_AdminOptions_t *options, int true_or_false, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_broker(rd_kafka_AdminOptions_t *options, int32_t broker_id, char *errstr, size_t errstr_size);
rd_kafka_error_t *rd_kafka_AdminOptions_set_require_stable_offsets(rd_kafka_AdminOptions_t *options, int true_or_false);
rd_kafka_error_t *rd_kafka_AdminOptions_set_match_consumer_group_states(rd_kafka_AdminOptions_t *options, const rd_kafka_consumer_group_state_t *consumer_group_states, size_t consumer_group_states_cnt);
void rd_kafka_AdminOptions_set_opaque(rd_kafka_AdminOptions_t *options, void *ev_opaque);
typedef struct rd_kafka_NewTopic_s rd_kafka_NewTopic_t;
rd_kafka_NewTopic_t *rd_kafka_NewTopic_new(const char *topic, int num_partitions, int replication_factor, char *errstr, size_t errstr_size);
void rd_kafka_NewTopic_destroy(rd_kafka_NewTopic_t *new_topic);
void rd_kafka_NewTopic_destroy_array(rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_replica_assignment(rd_kafka_NewTopic_t *new_topic, int32_t partition, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_config(rd_kafka_NewTopic_t *new_topic, const char *name, const char *value);
void rd_kafka_CreateTopics(rd_kafka_t *rk, rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreateTopics_result_topics(const rd_kafka_CreateTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteTopic_s rd_kafka_DeleteTopic_t;
rd_kafka_DeleteTopic_t *rd_kafka_DeleteTopic_new(const char *topic);
void rd_kafka_DeleteTopic_destroy(rd_kafka_DeleteTopic_t *del_topic);
void rd_kafka_DeleteTopic_destroy_array(rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt);
void rd_kafka_DeleteTopics(rd_kafka_t *rk, rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_DeleteTopics_result_topics(const rd_kafka_DeleteTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_NewPartitions_s rd_kafka_NewPartitions_t;
rd_kafka_NewPartitions_t *rd_kafka_NewPartitions_new(const char *topic, size_t new_total_cnt, char *errstr, size_t errstr_size);
void rd_kafka_NewPartitions_destroy(rd_kafka_NewPartitions_t *new_parts);
void rd_kafka_NewPartitions_destroy_array(rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt);
rd_kafka_resp_err_t rd_kafka_NewPartitions_set_replica_assignment(rd_kafka_NewPartitions_t *new_parts, int32_t new_partition_idx, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
void rd_kafka_CreatePartitions(rd_kafka_t *rk, rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreatePartitions_result_topics(const rd_kafka_CreatePartitions_result_t *result, size_t *cntp);
typedef enum rd_kafka_ConfigSource_t {
  RD_KAFKA_CONFIG_SOURCE_UNKNOWN_CONFIG = 0,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG = 1,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG = 2,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG = 3,
  RD_KAFKA_CONFIG_SOURCE_STATIC_BROKER_CONFIG = 4,
  RD_KAFKA_CONFIG_SOURCE_DEFAULT_CONFIG = 5,
  RD_KAFKA_CONFIG_SOURCE__CNT,
} rd_kafka_ConfigSource_t;
const char *rd_kafka_ConfigSource_name(rd_kafka_ConfigSource_t confsource);
typedef struct rd_kafka_ConfigEntry_s rd_kafka_ConfigEntry_t;
const char *rd_kafka_ConfigEntry_name(const rd_kafka_ConfigEntry_t *entry);
const char *rd_kafka_ConfigEntry_value(const rd_kafka_ConfigEntry_t *entry);
rd_kafka_ConfigSource_t rd_kafka_ConfigEntry_source(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_read_only(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_default(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_sensitive(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_synonym(const rd_kafka_ConfigEntry_t *entry);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigEntry_synonyms(const rd_kafka_ConfigEntry_t *entry, size_t *cntp);
typedef enum rd_kafka_ResourceType_t {
  RD_KAFKA_RESOURCE_UNKNOWN = 0,
  RD_KAFKA_RESOURCE_ANY = 1,
  RD_KAFKA_RESOURCE_TOPIC = 2,
  RD_KAFKA_RESOURCE_GROUP = 3,
  RD_KAFKA_RESOURCE_BROKER = 4,
  RD_KAFKA_RESOURCE__CNT,
} rd_kafka_ResourceType_t;
typedef enum rd_kafka_ResourcePatternType_t {
  RD_KAFKA_RESOURCE_PATTERN_UNKNOWN = 0,
  RD_KAFKA_RESOURCE_PATTERN_ANY = 1,
  RD_KAFKA_RESOURCE_PATTERN_MATCH = 2,
  RD_KAFKA_RESOURCE_PATTERN_LITERAL = 3,
  RD_KAFKA_RESOURCE_PATTERN_PREFIXED = 4,
  RD_KAFKA_RESOURCE_PATTERN_TYPE__CNT,
} rd_kafka_ResourcePatternType_t;
typedef enum rd_kafka_AlterConfigOpType_t {
  RD_KAFKA_ALTER_CONFIG_OP_TYPE_SET = 0,
  RD_KAFKA_ALTER_CONFIG_OP_TYPE_DELETE = 1,
  RD_KAFKA_ALTER_CONFIG_OP_TYPE_APPEND = 2,
  RD_KAFKA_ALTER_CONFIG_OP_TYPE_SUBTRACT = 3,
  RD_KAFKA_ALTER_CONFIG_OP_TYPE__CNT,
} rd_kafka_AlterConfigOpType_t;
const char *rd_kafka_ResourcePatternType_name(rd_kafka_ResourcePatternType_t resource_pattern_type);
const char *rd_kafka_ResourceType_name(rd_kafka_ResourceType_t restype);
typedef struct rd_kafka_ConfigResource_s rd_kafka_ConfigResource_t;
rd_kafka_ConfigResource_t *rd_kafka_ConfigResource_new(rd_kafka_ResourceType_t restype, const char *resname);
void rd_kafka_ConfigResource_destroy(rd_kafka_ConfigResource_t *config);
void rd_kafka_ConfigResource_destroy_array(rd_kafka_ConfigResource_t **config, size_t config_cnt);
rd_kafka_resp_err_t rd_kafka_ConfigResource_set_config(rd_kafka_ConfigResource_t *config, const char *name, const char *value);
rd_kafka_error_t *rd_kafka_ConfigResource_add_incremental_config(rd_kafka_ConfigResource_t *config, const char *name, rd_kafka_AlterConfigOpType_t op_type, const char *value);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigResource_configs(const rd_kafka_ConfigResource_t *config, size_t *cntp);
rd_kafka_ResourceType_t rd_kafka_ConfigResource_type(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_name(const rd_kafka_ConfigResource_t *config);
rd_kafka_resp_err_t rd_kafka_ConfigResource_error(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_error_string(const rd_kafka_ConfigResource_t *config);
void rd_kafka_AlterConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_AlterConfigs_result_resources(const rd_kafka_AlterConfigs_result_t *result, size_t *cntp);
void rd_kafka_IncrementalAlterConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_IncrementalAlterConfigs_result_resources(const rd_kafka_IncrementalAlterConfigs_result_t *result, size_t *cntp);
void rd_kafka_DescribeConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_DescribeConfigs_result_resources(const rd_kafka_DescribeConfigs_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteRecords_s rd_kafka_DeleteRecords_t;
rd_kafka_DeleteRecords_t *rd_kafka_DeleteRecords_new(const rd_kafka_topic_partition_list_t *before_offsets);
void rd_kafka_DeleteRecords_destroy(rd_kafka_DeleteRecords_t *del_records);
void rd_kafka_DeleteRecords_destroy_array(rd_kafka_DeleteRecords_t **del_records, size_t del_record_cnt);
void rd_kafka_DeleteRecords(rd_kafka_t *rk, rd_kafka_DeleteRecords_t **del_records, size_t del_record_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_partition_list_t *rd_kafka_DeleteRecords_result_offsets(const rd_kafka_DeleteRecords_result_t *result);
typedef struct rd_kafka_ConsumerGroupListing_s rd_kafka_ConsumerGroupListing_t;
typedef struct rd_kafka_ListConsumerGroupsResult_s rd_kafka_ListConsumerGroupsResult_t;
void rd_kafka_ListConsumerGroups(rd_kafka_t *rk, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const char *rd_kafka_ConsumerGroupListing_group_id(const rd_kafka_ConsumerGroupListing_t *grplist);
int rd_kafka_ConsumerGroupListing_is_simple_consumer_group(const rd_kafka_ConsumerGroupListing_t *grplist);
rd_kafka_consumer_group_state_t rd_kafka_ConsumerGroupListing_state(const rd_kafka_ConsumerGroupListing_t *grplist);
const rd_kafka_ConsumerGroupListing_t **rd_kafka_ListConsumerGroups_result_valid(const rd_kafka_ListConsumerGroups_result_t *result, size_t *cntp);
const rd_kafka_error_t **rd_kafka_ListConsumerGroups_result_errors(const rd_kafka_ListConsumerGroups_result_t *result, size_t *cntp);
typedef struct rd_kafka_ConsumerGroupDescription_s rd_kafka_ConsumerGroupDescription_t;
typedef struct rd_kafka_MemberDescription_s rd_kafka_MemberDescription_t;
typedef struct rd_kafka_MemberAssignment_s rd_kafka_MemberAssignment_t;
void rd_kafka_DescribeConsumerGroups(rd_kafka_t *rk, const char **groups, size_t groups_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConsumerGroupDescription_t **rd_kafka_DescribeConsumerGroups_result_groups(const rd_kafka_DescribeConsumerGroups_result_t *result, size_t *cntp);
const char *rd_kafka_ConsumerGroupDescription_group_id(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
const rd_kafka_error_t *rd_kafka_ConsumerGroupDescription_error(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
int rd_kafka_ConsumerGroupDescription_is_simple_consumer_group(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
const char *rd_kafka_ConsumerGroupDescription_partition_assignor(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
rd_kafka_consumer_group_state_t rd_kafka_ConsumerGroupDescription_state(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
const rd_kafka_Node_t *rd_kafka_ConsumerGroupDescription_coordinator(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
size_t rd_kafka_ConsumerGroupDescription_member_count(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
const rd_kafka_MemberDescription_t *rd_kafka_ConsumerGroupDescription_member(const rd_kafka_ConsumerGroupDescription_t *grpdesc, size_t idx);
const char *rd_kafka_MemberDescription_client_id(const rd_kafka_MemberDescription_t *member);
const char *rd_kafka_MemberDescription_group_instance_id(const rd_kafka_MemberDescription_t *member);
const char *rd_kafka_MemberDescription_consumer_id(const rd_kafka_MemberDescription_t *member);
const char *rd_kafka_MemberDescription_host(const rd_kafka_MemberDescription_t *member);
const rd_kafka_MemberAssignment_t *rd_kafka_MemberDescription_assignment(const rd_kafka_MemberDescription_t *member);
const rd_kafka_topic_partition_list_t *rd_kafka_MemberAssignment_partitions(const rd_kafka_MemberAssignment_t *assignment);
typedef struct rd_kafka_DeleteGroup_s rd_kafka_DeleteGroup_t;
rd_kafka_DeleteGroup_t *rd_kafka_DeleteGroup_new(const char *group);
void rd_kafka_DeleteGroup_destroy(rd_kafka_DeleteGroup_t *del_group);
void rd_kafka_DeleteGroup_destroy_array(rd_kafka_DeleteGroup_t **del_groups, size_t del_group_cnt);
void rd_kafka_DeleteGroups(rd_kafka_t *rk, rd_kafka_DeleteGroup_t **del_groups, size_t del_group_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_DeleteGroups_result_groups(const rd_kafka_DeleteGroups_result_t *result, size_t *cntp);
typedef struct rd_kafka_ListConsumerGroupOffsets_s rd_kafka_ListConsumerGroupOffsets_t;
rd_kafka_ListConsumerGroupOffsets_t *rd_kafka_ListConsumerGroupOffsets_new(const char *group_id, const rd_kafka_topic_partition_list_t *partitions);
void rd_kafka_ListConsumerGroupOffsets_destroy(rd_kafka_ListConsumerGroupOffsets_t *list_grpoffsets);
void rd_kafka_ListConsumerGroupOffsets_destroy_array(rd_kafka_ListConsumerGroupOffsets_t **list_grpoffsets, size_t list_grpoffset_cnt);
void rd_kafka_ListConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_ListConsumerGroupOffsets_t **list_grpoffsets, size_t list_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_ListConsumerGroupOffsets_result_groups(const rd_kafka_ListConsumerGroupOffsets_result_t *result, size_t *cntp);
typedef struct rd_kafka_AlterConsumerGroupOffsets_s rd_kafka_AlterConsumerGroupOffsets_t;
rd_kafka_AlterConsumerGroupOffsets_t *rd_kafka_AlterConsumerGroupOffsets_new(const char *group_id, const rd_kafka_topic_partition_list_t *partitions);
void rd_kafka_AlterConsumerGroupOffsets_destroy(rd_kafka_AlterConsumerGroupOffsets_t *alter_grpoffsets);
void rd_kafka_AlterConsumerGroupOffsets_destroy_array(rd_kafka_AlterConsumerGroupOffsets_t **alter_grpoffsets, size_t alter_grpoffset_cnt);
void rd_kafka_AlterConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_AlterConsumerGroupOffsets_t **alter_grpoffsets, size_t alter_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_AlterConsumerGroupOffsets_result_groups(const rd_kafka_AlterConsumerGroupOffsets_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteConsumerGroupOffsets_s rd_kafka_DeleteConsumerGroupOffsets_t;
rd_kafka_DeleteConsumerGroupOffsets_t *rd_kafka_DeleteConsumerGroupOffsets_new(const char *group, const rd_kafka_topic_partition_list_t *partitions);
void rd_kafka_DeleteConsumerGroupOffsets_destroy(rd_kafka_DeleteConsumerGroupOffsets_t *del_grpoffsets);
void rd_kafka_DeleteConsumerGroupOffsets_destroy_array(rd_kafka_DeleteConsumerGroupOffsets_t **del_grpoffsets, size_t del_grpoffset_cnt);
void rd_kafka_DeleteConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_DeleteConsumerGroupOffsets_t **del_grpoffsets, size_t del_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_DeleteConsumerGroupOffsets_result_groups(const rd_kafka_DeleteConsumerGroupOffsets_result_t *result, size_t *cntp);
typedef enum rd_kafka_ScramMechanism_t {
  RD_KAFKA_SCRAM_MECHANISM_UNKNOWN = 0,
  RD_KAFKA_SCRAM_MECHANISM_SHA_256 = 1,
  RD_KAFKA_SCRAM_MECHANISM_SHA_512 = 2,
  RD_KAFKA_SCRAM_MECHANISM__CNT,
} rd_kafka_ScramMechanism_t;
typedef struct rd_kafka_ScramCredentialInfo_s rd_kafka_ScramCredentialInfo_t;
rd_kafka_ScramMechanism_t rd_kafka_ScramCredentialInfo_mechanism(const rd_kafka_ScramCredentialInfo_t *scram_credential_info);
int32_t rd_kafka_ScramCredentialInfo_iterations(const rd_kafka_ScramCredentialInfo_t *scram_credential_info);
typedef struct rd_kafka_UserScramCredentialsDescription_s rd_kafka_UserScramCredentialsDescription_t;
const char *rd_kafka_UserScramCredentialsDescription_user(const rd_kafka_UserScramCredentialsDescription_t *description);
const rd_kafka_error_t *rd_kafka_UserScramCredentialsDescription_error(const rd_kafka_UserScramCredentialsDescription_t *description);
size_t rd_kafka_UserScramCredentialsDescription_scramcredentialinfo_count(const rd_kafka_UserScramCredentialsDescription_t *description);
const rd_kafka_ScramCredentialInfo_t *rd_kafka_UserScramCredentialsDescription_scramcredentialinfo(const rd_kafka_UserScramCredentialsDescription_t *description, size_t idx);
const rd_kafka_UserScramCredentialsDescription_t **rd_kafka_DescribeUserScramCredentials_result_descriptions(const rd_kafka_DescribeUserScramCredentials_result_t *result, size_t *cntp);
void rd_kafka_DescribeUserScramCredentials(rd_kafka_t *rk, const char **users, size_t user_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
typedef struct rd_kafka_UserScramCredentialAlteration_s rd_kafka_UserScramCredentialAlteration_t;
rd_kafka_UserScramCredentialAlteration_t *rd_kafka_UserScramCredentialUpsertion_new(const char *username, rd_kafka_ScramMechanism_t mechanism, int32_t iterations, const unsigned char *password, size_t password_size, const unsigned char *salt, size_t salt_size);
rd_kafka_UserScramCredentialAlteration_t *rd_kafka_UserScramCredentialDeletion_new(const char *username, rd_kafka_ScramMechanism_t mechanism);
void rd_kafka_UserScramCredentialAlteration_destroy(rd_kafka_UserScramCredentialAlteration_t *alteration);
void rd_kafka_UserScramCredentialAlteration_destroy_array(rd_kafka_UserScramCredentialAlteration_t **alterations, size_t alteration_cnt);
typedef struct rd_kafka_AlterUserScramCredentials_result_response_s rd_kafka_AlterUserScramCredentials_result_response_t;
const char *rd_kafka_AlterUserScramCredentials_result_response_user(const rd_kafka_AlterUserScramCredentials_result_response_t *response);
const rd_kafka_error_t *rd_kafka_AlterUserScramCredentials_result_response_error(const rd_kafka_AlterUserScramCredentials_result_response_t *response);
const rd_kafka_AlterUserScramCredentials_result_response_t **rd_kafka_AlterUserScramCredentials_result_responses(const rd_kafka_AlterUserScramCredentials_result_t *result, size_t *cntp);
void rd_kafka_AlterUserScramCredentials(rd_kafka_t *rk, rd_kafka_UserScramCredentialAlteration_t **alterations, size_t alteration_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
typedef struct rd_kafka_AclBinding_s rd_kafka_AclBinding_t;
typedef rd_kafka_AclBinding_t rd_kafka_AclBindingFilter_t;
const rd_kafka_error_t *rd_kafka_acl_result_error(const rd_kafka_acl_result_t *aclres);
typedef enum rd_kafka_AclOperation_t {
  RD_KAFKA_ACL_OPERATION_UNKNOWN = 0,
  RD_KAFKA_ACL_OPERATION_ANY = 1,
  RD_KAFKA_ACL_OPERATION_ALL = 2,
  RD_KAFKA_ACL_OPERATION_READ = 3,
  RD_KAFKA_ACL_OPERATION_WRITE = 4,
  RD_KAFKA_ACL_OPERATION_CREATE = 5,
  RD_KAFKA_ACL_OPERATION_DELETE = 6,
  RD_KAFKA_ACL_OPERATION_ALTER = 7,
  RD_KAFKA_ACL_OPERATION_DESCRIBE = 8,
  RD_KAFKA_ACL_OPERATION_CLUSTER_ACTION = 9,
  RD_KAFKA_ACL_OPERATION_DESCRIBE_CONFIGS = 10,
  RD_KAFKA_ACL_OPERATION_ALTER_CONFIGS = 11,
  RD_KAFKA_ACL_OPERATION_IDEMPOTENT_WRITE = 12,
  RD_KAFKA_ACL_OPERATION__CNT,
} rd_kafka_AclOperation_t;
const char *rd_kafka_AclOperation_name(rd_kafka_AclOperation_t acl_operation);
typedef enum rd_kafka_AclPermissionType_t {
  RD_KAFKA_ACL_PERMISSION_TYPE_UNKNOWN = 0,
  RD_KAFKA_ACL_PERMISSION_TYPE_ANY = 1,
  RD_KAFKA_ACL_PERMISSION_TYPE_DENY = 2,
  RD_KAFKA_ACL_PERMISSION_TYPE_ALLOW = 3,
  RD_KAFKA_ACL_PERMISSION_TYPE__CNT,
} rd_kafka_AclPermissionType_t;
const char *rd_kafka_AclPermissionType_name(rd_kafka_AclPermissionType_t acl_permission_type);
rd_kafka_AclBinding_t *rd_kafka_AclBinding_new(rd_kafka_ResourceType_t restype, const char *name, rd_kafka_ResourcePatternType_t resource_pattern_type, const char *principal, const char *host, rd_kafka_AclOperation_t operation, rd_kafka_AclPermissionType_t permission_type, char *errstr, size_t errstr_size);
rd_kafka_AclBindingFilter_t *rd_kafka_AclBindingFilter_new(rd_kafka_ResourceType_t restype, const char *name, rd_kafka_ResourcePatternType_t resource_pattern_type, const char *principal, const char *host, rd_kafka_AclOperation_t operation, rd_kafka_AclPermissionType_t permission_type, char *errstr, size_t errstr_size);
rd_kafka_ResourceType_t rd_kafka_AclBinding_restype(const rd_kafka_AclBinding_t *acl);
const char *rd_kafka_AclBinding_name(const rd_kafka_AclBinding_t *acl);
const char *rd_kafka_AclBinding_principal(const rd_kafka_AclBinding_t *acl);
const char *rd_kafka_AclBinding_host(const rd_kafka_AclBinding_t *acl);
rd_kafka_AclOperation_t rd_kafka_AclBinding_operation(const rd_kafka_AclBinding_t *acl);
rd_kafka_AclPermissionType_t rd_kafka_AclBinding_permission_type(const rd_kafka_AclBinding_t *acl);
rd_kafka_ResourcePatternType_t rd_kafka_AclBinding_resource_pattern_type(const rd_kafka_AclBinding_t *acl);
const rd_kafka_error_t *rd_kafka_AclBinding_error(const rd_kafka_AclBinding_t *acl);
void rd_kafka_AclBinding_destroy(rd_kafka_AclBinding_t *acl_binding);
void rd_kafka_AclBinding_destroy_array(rd_kafka_AclBinding_t **acl_bindings, size_t acl_bindings_cnt);
const rd_kafka_acl_result_t **rd_kafka_CreateAcls_result_acls(const rd_kafka_CreateAcls_result_t *result, size_t *cntp);
void rd_kafka_CreateAcls(rd_kafka_t *rk, rd_kafka_AclBinding_t **new_acls, size_t new_acls_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_AclBinding_t **rd_kafka_DescribeAcls_result_acls(const rd_kafka_DescribeAcls_result_t *result, size_t *cntp);
void rd_kafka_DescribeAcls(rd_kafka_t *rk, rd_kafka_AclBindingFilter_t *acl_filter, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
typedef struct rd_kafka_DeleteAcls_result_response_s rd_kafka_DeleteAcls_result_response_t;
const rd_kafka_DeleteAcls_result_response_t **rd_kafka_DeleteAcls_result_responses(const rd_kafka_DeleteAcls_result_t *result, size_t *cntp);
const rd_kafka_error_t *rd_kafka_DeleteAcls_result_response_error(const rd_kafka_DeleteAcls_result_response_t *result_response);
const rd_kafka_AclBinding_t **rd_kafka_DeleteAcls_result_response_matching_acls(const rd_kafka_DeleteAcls_result_response_t *result_response, size_t *matching_acls_cntp);
void rd_kafka_DeleteAcls(rd_kafka_t *rk, rd_kafka_AclBindingFilter_t **del_acls, size_t del_acls_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token(rd_kafka_t *rk, const char *token_value, int64_t md_lifetime_ms, const char *md_principal_name, const char **extensions, size_t extension_size, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token_failure(rd_kafka_t *rk, const char *errstr);
rd_kafka_error_t *rd_kafka_init_transactions(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_begin_transaction(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_send_offsets_to_transaction(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, const rd_kafka_consumer_group_metadata_t *cgmetadata, int timeout_ms);
rd_kafka_error_t *rd_kafka_commit_transaction(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_abort_transaction(rd_kafka_t *rk, int timeout_ms);
typedef struct rd_kafka_mock_cluster_s rd_kafka_mock_cluster_t;
rd_kafka_mock_cluster_t *rd_kafka_mock_cluster_new(rd_kafka_t *rk, int broker_cnt);
void rd_kafka_mock_cluster_destroy(rd_kafka_mock_cluster_t *mcluster);
rd_kafka_t *rd_kafka_mock_cluster_handle(const rd_kafka_mock_cluster_t *mcluster);
rd_kafka_mock_cluster_t *rd_kafka_handle_mock_cluster(const rd_kafka_t *rk);
const char *rd_kafka_mock_cluster_bootstraps(const rd_kafka_mock_cluster_t *mcluster);
void rd_kafka_mock_clear_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey);
void rd_kafka_mock_push_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, ...);
void rd_kafka_mock_push_request_errors_array(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, const rd_kafka_resp_err_t *errors);
rd_kafka_resp_err_t rd_kafka_mock_broker_push_request_error_rtts(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int16_t ApiKey, size_t cnt, ...);
rd_kafka_resp_err_t rd_kafka_mock_broker_error_stack_cnt(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int16_t ApiKey, size_t *cntp);
void rd_kafka_mock_topic_set_error(rd_kafka_mock_cluster_t *mcluster, const char *topic, rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_mock_topic_create(rd_kafka_mock_cluster_t *mcluster, const char *topic, int partition_cnt, int replication_factor);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_leader(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower_wmarks(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int64_t lo, int64_t hi);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_down(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_up(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rtt(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int rtt_ms);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rack(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, const char *rack);
rd_kafka_resp_err_t rd_kafka_mock_coordinator_set(rd_kafka_mock_cluster_t *mcluster, const char *key_type, const char *key, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_set_apiversion(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, int16_t MinVersion, int16_t MaxVersion);
'
rdkafka.h, rdkafka_mock.h

RD_KAFKA_VERSION

public RD_KAFKA_VERSION = 33751295

librdkafka version

Interpreted as hex MM.mm.rr.xx:

  • MM = Major
  • mm = minor
  • rr = revision
  • xx = pre-release id (0xff is the final release)

E.g.: 0x000801ff = 0.8.1

Remarks
This value should only be used during compile time, for runtime checks of version use rd_kafka_version()

RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE

public RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76

Unsupported compression type

RD_KAFKA_RESP_ERR_END_ALL

public RD_KAFKA_RESP_ERR_END_ALL = 98
enum rd_kafka_resp_err_t

RD_KAFKA_ADMIN_OP__CNT

public RD_KAFKA_ADMIN_OP__CNT = 22

Number of ops defined

RD_KAFKA_CDEF

public RD_KAFKA_CDEF = 'typedef long int ssize_t;
typedef struct _IO_FILE FILE;
typedef long int mode_t;
typedef signed int int16_t;
typedef unsigned int uint16_t;
typedef signed int int32_t;
typedef signed long int int64_t;
int rd_kafka_version(void);
const char *rd_kafka_version_str(void);
typedef enum rd_kafka_type_t {
  RD_KAFKA_PRODUCER,
  RD_KAFKA_CONSUMER,
} rd_kafka_type_t;
typedef enum rd_kafka_timestamp_type_t {
  RD_KAFKA_TIMESTAMP_NOT_AVAILABLE,
  RD_KAFKA_TIMESTAMP_CREATE_TIME,
  RD_KAFKA_TIMESTAMP_LOG_APPEND_TIME,
} rd_kafka_timestamp_type_t;
const char *rd_kafka_get_debug_contexts(void);
typedef struct rd_kafka_s rd_kafka_t;
typedef struct rd_kafka_topic_s rd_kafka_topic_t;
typedef struct rd_kafka_conf_s rd_kafka_conf_t;
typedef struct rd_kafka_topic_conf_s rd_kafka_topic_conf_t;
typedef struct rd_kafka_queue_s rd_kafka_queue_t;
typedef struct rd_kafka_op_s rd_kafka_event_t;
typedef struct rd_kafka_topic_result_s rd_kafka_topic_result_t;
typedef struct rd_kafka_consumer_group_metadata_s rd_kafka_consumer_group_metadata_t;
typedef struct rd_kafka_error_s {
  unsigned int code;
  char *errstr;
  unsigned char fatal;
  unsigned char retriable;
  unsigned char txn_requires_abort;
} rd_kafka_error_t;
typedef struct rd_kafka_headers_s rd_kafka_headers_t;
typedef struct rd_kafka_group_result_s rd_kafka_group_result_t;
typedef struct rd_kafka_acl_result_s rd_kafka_acl_result_t;
typedef struct rd_kafka_Uuid_s rd_kafka_Uuid_t;
typedef enum {
  RD_KAFKA_RESP_ERR__BEGIN = (- 200),
  RD_KAFKA_RESP_ERR__BAD_MSG = (- 199),
  RD_KAFKA_RESP_ERR__BAD_COMPRESSION = (- 198),
  RD_KAFKA_RESP_ERR__DESTROY = (- 197),
  RD_KAFKA_RESP_ERR__FAIL = (- 196),
  RD_KAFKA_RESP_ERR__TRANSPORT = (- 195),
  RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE = (- 194),
  RD_KAFKA_RESP_ERR__RESOLVE = (- 193),
  RD_KAFKA_RESP_ERR__MSG_TIMED_OUT = (- 192),
  RD_KAFKA_RESP_ERR__PARTITION_EOF = (- 191),
  RD_KAFKA_RESP_ERR__UNKNOWN_PARTITION = (- 190),
  RD_KAFKA_RESP_ERR__FS = (- 189),
  RD_KAFKA_RESP_ERR__UNKNOWN_TOPIC = (- 188),
  RD_KAFKA_RESP_ERR__ALL_BROKERS_DOWN = (- 187),
  RD_KAFKA_RESP_ERR__INVALID_ARG = (- 186),
  RD_KAFKA_RESP_ERR__TIMED_OUT = (- 185),
  RD_KAFKA_RESP_ERR__QUEUE_FULL = (- 184),
  RD_KAFKA_RESP_ERR__ISR_INSUFF = (- 183),
  RD_KAFKA_RESP_ERR__NODE_UPDATE = (- 182),
  RD_KAFKA_RESP_ERR__SSL = (- 181),
  RD_KAFKA_RESP_ERR__WAIT_COORD = (- 180),
  RD_KAFKA_RESP_ERR__UNKNOWN_GROUP = (- 179),
  RD_KAFKA_RESP_ERR__IN_PROGRESS = (- 178),
  RD_KAFKA_RESP_ERR__PREV_IN_PROGRESS = (- 177),
  RD_KAFKA_RESP_ERR__EXISTING_SUBSCRIPTION = (- 176),
  RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS = (- 175),
  RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS = (- 174),
  RD_KAFKA_RESP_ERR__CONFLICT = (- 173),
  RD_KAFKA_RESP_ERR__STATE = (- 172),
  RD_KAFKA_RESP_ERR__UNKNOWN_PROTOCOL = (- 171),
  RD_KAFKA_RESP_ERR__NOT_IMPLEMENTED = (- 170),
  RD_KAFKA_RESP_ERR__AUTHENTICATION = (- 169),
  RD_KAFKA_RESP_ERR__NO_OFFSET = (- 168),
  RD_KAFKA_RESP_ERR__OUTDATED = (- 167),
  RD_KAFKA_RESP_ERR__TIMED_OUT_QUEUE = (- 166),
  RD_KAFKA_RESP_ERR__UNSUPPORTED_FEATURE = (- 165),
  RD_KAFKA_RESP_ERR__WAIT_CACHE = (- 164),
  RD_KAFKA_RESP_ERR__INTR = (- 163),
  RD_KAFKA_RESP_ERR__KEY_SERIALIZATION = (- 162),
  RD_KAFKA_RESP_ERR__VALUE_SERIALIZATION = (- 161),
  RD_KAFKA_RESP_ERR__KEY_DESERIALIZATION = (- 160),
  RD_KAFKA_RESP_ERR__VALUE_DESERIALIZATION = (- 159),
  RD_KAFKA_RESP_ERR__PARTIAL = (- 158),
  RD_KAFKA_RESP_ERR__READ_ONLY = (- 157),
  RD_KAFKA_RESP_ERR__NOENT = (- 156),
  RD_KAFKA_RESP_ERR__UNDERFLOW = (- 155),
  RD_KAFKA_RESP_ERR__INVALID_TYPE = (- 154),
  RD_KAFKA_RESP_ERR__RETRY = (- 153),
  RD_KAFKA_RESP_ERR__PURGE_QUEUE = (- 152),
  RD_KAFKA_RESP_ERR__PURGE_INFLIGHT = (- 151),
  RD_KAFKA_RESP_ERR__FATAL = (- 150),
  RD_KAFKA_RESP_ERR__INCONSISTENT = (- 149),
  RD_KAFKA_RESP_ERR__GAPLESS_GUARANTEE = (- 148),
  RD_KAFKA_RESP_ERR__MAX_POLL_EXCEEDED = (- 147),
  RD_KAFKA_RESP_ERR__UNKNOWN_BROKER = (- 146),
  RD_KAFKA_RESP_ERR__NOT_CONFIGURED = (- 145),
  RD_KAFKA_RESP_ERR__FENCED = (- 144),
  RD_KAFKA_RESP_ERR__APPLICATION = (- 143),
  RD_KAFKA_RESP_ERR__ASSIGNMENT_LOST = (- 142),
  RD_KAFKA_RESP_ERR__NOOP = (- 141),
  RD_KAFKA_RESP_ERR__AUTO_OFFSET_RESET = (- 140),
  RD_KAFKA_RESP_ERR__LOG_TRUNCATION = (- 139),
  RD_KAFKA_RESP_ERR__END = (- 100),
  RD_KAFKA_RESP_ERR_UNKNOWN = (- 1),
  RD_KAFKA_RESP_ERR_NO_ERROR = 0,
  RD_KAFKA_RESP_ERR_OFFSET_OUT_OF_RANGE = 1,
  RD_KAFKA_RESP_ERR_INVALID_MSG = 2,
  RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_OR_PART = 3,
  RD_KAFKA_RESP_ERR_INVALID_MSG_SIZE = 4,
  RD_KAFKA_RESP_ERR_LEADER_NOT_AVAILABLE = 5,
  RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION = 6,
  RD_KAFKA_RESP_ERR_REQUEST_TIMED_OUT = 7,
  RD_KAFKA_RESP_ERR_BROKER_NOT_AVAILABLE = 8,
  RD_KAFKA_RESP_ERR_REPLICA_NOT_AVAILABLE = 9,
  RD_KAFKA_RESP_ERR_MSG_SIZE_TOO_LARGE = 10,
  RD_KAFKA_RESP_ERR_STALE_CTRL_EPOCH = 11,
  RD_KAFKA_RESP_ERR_OFFSET_METADATA_TOO_LARGE = 12,
  RD_KAFKA_RESP_ERR_NETWORK_EXCEPTION = 13,
  RD_KAFKA_RESP_ERR_COORDINATOR_LOAD_IN_PROGRESS = 14,
  RD_KAFKA_RESP_ERR_COORDINATOR_NOT_AVAILABLE = 15,
  RD_KAFKA_RESP_ERR_NOT_COORDINATOR = 16,
  RD_KAFKA_RESP_ERR_TOPIC_EXCEPTION = 17,
  RD_KAFKA_RESP_ERR_RECORD_LIST_TOO_LARGE = 18,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS = 19,
  RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS_AFTER_APPEND = 20,
  RD_KAFKA_RESP_ERR_INVALID_REQUIRED_ACKS = 21,
  RD_KAFKA_RESP_ERR_ILLEGAL_GENERATION = 22,
  RD_KAFKA_RESP_ERR_INCONSISTENT_GROUP_PROTOCOL = 23,
  RD_KAFKA_RESP_ERR_INVALID_GROUP_ID = 24,
  RD_KAFKA_RESP_ERR_UNKNOWN_MEMBER_ID = 25,
  RD_KAFKA_RESP_ERR_INVALID_SESSION_TIMEOUT = 26,
  RD_KAFKA_RESP_ERR_REBALANCE_IN_PROGRESS = 27,
  RD_KAFKA_RESP_ERR_INVALID_COMMIT_OFFSET_SIZE = 28,
  RD_KAFKA_RESP_ERR_TOPIC_AUTHORIZATION_FAILED = 29,
  RD_KAFKA_RESP_ERR_GROUP_AUTHORIZATION_FAILED = 30,
  RD_KAFKA_RESP_ERR_CLUSTER_AUTHORIZATION_FAILED = 31,
  RD_KAFKA_RESP_ERR_INVALID_TIMESTAMP = 32,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_SASL_MECHANISM = 33,
  RD_KAFKA_RESP_ERR_ILLEGAL_SASL_STATE = 34,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_VERSION = 35,
  RD_KAFKA_RESP_ERR_TOPIC_ALREADY_EXISTS = 36,
  RD_KAFKA_RESP_ERR_INVALID_PARTITIONS = 37,
  RD_KAFKA_RESP_ERR_INVALID_REPLICATION_FACTOR = 38,
  RD_KAFKA_RESP_ERR_INVALID_REPLICA_ASSIGNMENT = 39,
  RD_KAFKA_RESP_ERR_INVALID_CONFIG = 40,
  RD_KAFKA_RESP_ERR_NOT_CONTROLLER = 41,
  RD_KAFKA_RESP_ERR_INVALID_REQUEST = 42,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_FOR_MESSAGE_FORMAT = 43,
  RD_KAFKA_RESP_ERR_POLICY_VIOLATION = 44,
  RD_KAFKA_RESP_ERR_OUT_OF_ORDER_SEQUENCE_NUMBER = 45,
  RD_KAFKA_RESP_ERR_DUPLICATE_SEQUENCE_NUMBER = 46,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_EPOCH = 47,
  RD_KAFKA_RESP_ERR_INVALID_TXN_STATE = 48,
  RD_KAFKA_RESP_ERR_INVALID_PRODUCER_ID_MAPPING = 49,
  RD_KAFKA_RESP_ERR_INVALID_TRANSACTION_TIMEOUT = 50,
  RD_KAFKA_RESP_ERR_CONCURRENT_TRANSACTIONS = 51,
  RD_KAFKA_RESP_ERR_TRANSACTION_COORDINATOR_FENCED = 52,
  RD_KAFKA_RESP_ERR_TRANSACTIONAL_ID_AUTHORIZATION_FAILED = 53,
  RD_KAFKA_RESP_ERR_SECURITY_DISABLED = 54,
  RD_KAFKA_RESP_ERR_OPERATION_NOT_ATTEMPTED = 55,
  RD_KAFKA_RESP_ERR_KAFKA_STORAGE_ERROR = 56,
  RD_KAFKA_RESP_ERR_LOG_DIR_NOT_FOUND = 57,
  RD_KAFKA_RESP_ERR_SASL_AUTHENTICATION_FAILED = 58,
  RD_KAFKA_RESP_ERR_UNKNOWN_PRODUCER_ID = 59,
  RD_KAFKA_RESP_ERR_REASSIGNMENT_IN_PROGRESS = 60,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTH_DISABLED = 61,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_NOT_FOUND = 62,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_OWNER_MISMATCH = 63,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_REQUEST_NOT_ALLOWED = 64,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTHORIZATION_FAILED = 65,
  RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_EXPIRED = 66,
  RD_KAFKA_RESP_ERR_INVALID_PRINCIPAL_TYPE = 67,
  RD_KAFKA_RESP_ERR_NON_EMPTY_GROUP = 68,
  RD_KAFKA_RESP_ERR_GROUP_ID_NOT_FOUND = 69,
  RD_KAFKA_RESP_ERR_FETCH_SESSION_ID_NOT_FOUND = 70,
  RD_KAFKA_RESP_ERR_INVALID_FETCH_SESSION_EPOCH = 71,
  RD_KAFKA_RESP_ERR_LISTENER_NOT_FOUND = 72,
  RD_KAFKA_RESP_ERR_TOPIC_DELETION_DISABLED = 73,
  RD_KAFKA_RESP_ERR_FENCED_LEADER_EPOCH = 74,
  RD_KAFKA_RESP_ERR_UNKNOWN_LEADER_EPOCH = 75,
  RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76,
  RD_KAFKA_RESP_ERR_STALE_BROKER_EPOCH = 77,
  RD_KAFKA_RESP_ERR_OFFSET_NOT_AVAILABLE = 78,
  RD_KAFKA_RESP_ERR_MEMBER_ID_REQUIRED = 79,
  RD_KAFKA_RESP_ERR_PREFERRED_LEADER_NOT_AVAILABLE = 80,
  RD_KAFKA_RESP_ERR_GROUP_MAX_SIZE_REACHED = 81,
  RD_KAFKA_RESP_ERR_FENCED_INSTANCE_ID = 82,
  RD_KAFKA_RESP_ERR_ELIGIBLE_LEADERS_NOT_AVAILABLE = 83,
  RD_KAFKA_RESP_ERR_ELECTION_NOT_NEEDED = 84,
  RD_KAFKA_RESP_ERR_NO_REASSIGNMENT_IN_PROGRESS = 85,
  RD_KAFKA_RESP_ERR_GROUP_SUBSCRIBED_TO_TOPIC = 86,
  RD_KAFKA_RESP_ERR_INVALID_RECORD = 87,
  RD_KAFKA_RESP_ERR_UNSTABLE_OFFSET_COMMIT = 88,
  RD_KAFKA_RESP_ERR_THROTTLING_QUOTA_EXCEEDED = 89,
  RD_KAFKA_RESP_ERR_PRODUCER_FENCED = 90,
  RD_KAFKA_RESP_ERR_RESOURCE_NOT_FOUND = 91,
  RD_KAFKA_RESP_ERR_DUPLICATE_RESOURCE = 92,
  RD_KAFKA_RESP_ERR_UNACCEPTABLE_CREDENTIAL = 93,
  RD_KAFKA_RESP_ERR_INCONSISTENT_VOTER_SET = 94,
  RD_KAFKA_RESP_ERR_INVALID_UPDATE_VERSION = 95,
  RD_KAFKA_RESP_ERR_FEATURE_UPDATE_FAILED = 96,
  RD_KAFKA_RESP_ERR_PRINCIPAL_DESERIALIZATION_FAILURE = 97,
  RD_KAFKA_RESP_ERR_END_ALL,
} rd_kafka_resp_err_t;
struct rd_kafka_err_desc {
  rd_kafka_resp_err_t code;
  char *name;
  char *desc;
};
void rd_kafka_get_err_descs(const struct rd_kafka_err_desc **errdescs, size_t *cntp);
const char *rd_kafka_err2str(rd_kafka_resp_err_t err);
const char *rd_kafka_err2name(rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_last_error(void);
rd_kafka_resp_err_t rd_kafka_errno2err(int errnox);
int rd_kafka_errno(void);
rd_kafka_resp_err_t rd_kafka_fatal_error(rd_kafka_t *rk, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_test_fatal_error(rd_kafka_t *rk, rd_kafka_resp_err_t err, const char *reason);
rd_kafka_resp_err_t rd_kafka_error_code(const rd_kafka_error_t *error);
const char *rd_kafka_error_name(const rd_kafka_error_t *error);
const char *rd_kafka_error_string(const rd_kafka_error_t *error);
int rd_kafka_error_is_fatal(const rd_kafka_error_t *error);
int rd_kafka_error_is_retriable(const rd_kafka_error_t *error);
int rd_kafka_error_txn_requires_abort(const rd_kafka_error_t *error);
void rd_kafka_error_destroy(rd_kafka_error_t *error);
rd_kafka_error_t *rd_kafka_error_new(rd_kafka_resp_err_t code, const char *fmt, ...);
typedef struct rd_kafka_topic_partition_s {
  char *topic;
  int32_t partition;
  int64_t offset;
  void *metadata;
  size_t metadata_size;
  void *opaque;
  rd_kafka_resp_err_t err;
  void *_private;
} rd_kafka_topic_partition_t;
void rd_kafka_topic_partition_destroy(rd_kafka_topic_partition_t *rktpar);
void rd_kafka_topic_partition_set_leader_epoch(rd_kafka_topic_partition_t *rktpar, int32_t leader_epoch);
int32_t rd_kafka_topic_partition_get_leader_epoch(const rd_kafka_topic_partition_t *rktpar);
typedef struct rd_kafka_topic_partition_list_s {
  int cnt;
  int size;
  rd_kafka_topic_partition_t *elems;
} rd_kafka_topic_partition_list_t;
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_new(int size);
void rd_kafka_topic_partition_list_destroy(rd_kafka_topic_partition_list_t *rkparlist);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_add(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_add_range(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t start, int32_t stop);
int rd_kafka_topic_partition_list_del(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
int rd_kafka_topic_partition_list_del_by_idx(rd_kafka_topic_partition_list_t *rktparlist, int idx);
rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_copy(const rd_kafka_topic_partition_list_t *src);
rd_kafka_resp_err_t rd_kafka_topic_partition_list_set_offset(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition, int64_t offset);
rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_find(const rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition);
void rd_kafka_topic_partition_list_sort(rd_kafka_topic_partition_list_t *rktparlist, int (*cmp)(const void *a, const void *b, void *cmp_opaque), void *cmp_opaque);
typedef enum rd_kafka_vtype_t {
  RD_KAFKA_VTYPE_END,
  RD_KAFKA_VTYPE_TOPIC,
  RD_KAFKA_VTYPE_RKT,
  RD_KAFKA_VTYPE_PARTITION,
  RD_KAFKA_VTYPE_VALUE,
  RD_KAFKA_VTYPE_KEY,
  RD_KAFKA_VTYPE_OPAQUE,
  RD_KAFKA_VTYPE_MSGFLAGS,
  RD_KAFKA_VTYPE_TIMESTAMP,
  RD_KAFKA_VTYPE_HEADER,
  RD_KAFKA_VTYPE_HEADERS,
} rd_kafka_vtype_t;
typedef struct rd_kafka_vu_s {
  rd_kafka_vtype_t vtype;
  union {
    char *cstr;
    rd_kafka_topic_t *rkt;
    int i;
    int32_t i32;
    int64_t i64;
    struct {
      void *ptr;
      size_t size;
    } mem;
    struct {
      char *name;
      void *val;
      ssize_t size;
    } header;
    rd_kafka_headers_t *headers;
    void *ptr;
    char _pad[64];
  } u;
} rd_kafka_vu_t;
rd_kafka_headers_t *rd_kafka_headers_new(size_t initial_count);
void rd_kafka_headers_destroy(rd_kafka_headers_t *hdrs);
rd_kafka_headers_t *rd_kafka_headers_copy(const rd_kafka_headers_t *src);
rd_kafka_resp_err_t rd_kafka_header_add(rd_kafka_headers_t *hdrs, const char *name, ssize_t name_size, const void *value, ssize_t value_size);
rd_kafka_resp_err_t rd_kafka_header_remove(rd_kafka_headers_t *hdrs, const char *name);
rd_kafka_resp_err_t rd_kafka_header_get_last(const rd_kafka_headers_t *hdrs, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get(const rd_kafka_headers_t *hdrs, size_t idx, const char *name, const void **valuep, size_t *sizep);
rd_kafka_resp_err_t rd_kafka_header_get_all(const rd_kafka_headers_t *hdrs, size_t idx, const char **namep, const void **valuep, size_t *sizep);
typedef struct rd_kafka_message_s {
  rd_kafka_resp_err_t err;
  rd_kafka_topic_t *rkt;
  int32_t partition;
  void *payload;
  size_t len;
  void *key;
  size_t key_len;
  int64_t offset;
  void *_private;
} rd_kafka_message_t;
void rd_kafka_message_destroy(rd_kafka_message_t *rkmessage);
const char *rd_kafka_message_errstr(const rd_kafka_message_t *rkmessage);
int64_t rd_kafka_message_timestamp(const rd_kafka_message_t *rkmessage, rd_kafka_timestamp_type_t *tstype);
int64_t rd_kafka_message_latency(const rd_kafka_message_t *rkmessage);
int32_t rd_kafka_message_broker_id(const rd_kafka_message_t *rkmessage);
rd_kafka_resp_err_t rd_kafka_message_headers(const rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
rd_kafka_resp_err_t rd_kafka_message_detach_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp);
void rd_kafka_message_set_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t *hdrs);
size_t rd_kafka_header_cnt(const rd_kafka_headers_t *hdrs);
typedef enum {
  RD_KAFKA_MSG_STATUS_NOT_PERSISTED = 0,
  RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED = 1,
  RD_KAFKA_MSG_STATUS_PERSISTED = 2,
} rd_kafka_msg_status_t;
rd_kafka_msg_status_t rd_kafka_message_status(const rd_kafka_message_t *rkmessage);
int32_t rd_kafka_message_leader_epoch(const rd_kafka_message_t *rkmessage);
const char *rd_kafka_Uuid_base64str(const rd_kafka_Uuid_t *uuid);
int64_t rd_kafka_Uuid_least_significant_bits(const rd_kafka_Uuid_t *uuid);
int64_t rd_kafka_Uuid_most_significant_bits(const rd_kafka_Uuid_t *uuid);
rd_kafka_Uuid_t *rd_kafka_Uuid_new(int64_t most_significant_bits, int64_t least_significant_bits);
rd_kafka_Uuid_t *rd_kafka_Uuid_copy(const rd_kafka_Uuid_t *uuid);
void rd_kafka_Uuid_destroy(rd_kafka_Uuid_t *uuid);
typedef enum {
  RD_KAFKA_CONF_UNKNOWN = (- 2),
  RD_KAFKA_CONF_INVALID = (- 1),
  RD_KAFKA_CONF_OK = 0,
} rd_kafka_conf_res_t;
rd_kafka_conf_t *rd_kafka_conf_new(void);
void rd_kafka_conf_destroy(rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup(const rd_kafka_conf_t *conf);
rd_kafka_conf_t *rd_kafka_conf_dup_filter(const rd_kafka_conf_t *conf, size_t filter_cnt, const char **filter);
const rd_kafka_conf_t *rd_kafka_conf(rd_kafka_t *rk);
rd_kafka_conf_res_t rd_kafka_conf_set(rd_kafka_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_events(rd_kafka_conf_t *conf, int events);
void rd_kafka_conf_set_background_event_cb(rd_kafka_conf_t *conf, void (*event_cb)(rd_kafka_t *rk, rd_kafka_event_t *rkev, void *opaque));
void rd_kafka_conf_set_dr_cb(rd_kafka_conf_t *conf, void (*dr_cb)(rd_kafka_t *rk, void *payload, size_t len, rd_kafka_resp_err_t err, void *opaque, void *msg_opaque));
void rd_kafka_conf_set_dr_msg_cb(rd_kafka_conf_t *conf, void (*dr_msg_cb)(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_consume_cb(rd_kafka_conf_t *conf, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *opaque));
void rd_kafka_conf_set_rebalance_cb(rd_kafka_conf_t *conf, void (*rebalance_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *partitions, void *opaque));
void rd_kafka_conf_set_offset_commit_cb(rd_kafka_conf_t *conf, void (*offset_commit_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *opaque));
void rd_kafka_conf_set_error_cb(rd_kafka_conf_t *conf, void (*error_cb)(rd_kafka_t *rk, int err, const char *reason, void *opaque));
void rd_kafka_conf_set_throttle_cb(rd_kafka_conf_t *conf, void (*throttle_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int throttle_time_ms, void *opaque));
void rd_kafka_conf_set_log_cb(rd_kafka_conf_t *conf, void (*log_cb)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_conf_set_stats_cb(rd_kafka_conf_t *conf, int (*stats_cb)(rd_kafka_t *rk, char *json, size_t json_len, void *opaque));
void rd_kafka_conf_set_oauthbearer_token_refresh_cb(rd_kafka_conf_t *conf, void (*oauthbearer_token_refresh_cb)(rd_kafka_t *rk, const char *oauthbearer_config, void *opaque));
void rd_kafka_conf_enable_sasl_queue(rd_kafka_conf_t *conf, int enable);
void rd_kafka_conf_set_socket_cb(rd_kafka_conf_t *conf, int (*socket_cb)(int domain, int type, int protocol, void *opaque));
void rd_kafka_conf_set_connect_cb(rd_kafka_conf_t *conf, int (*connect_cb)(int sockfd, const struct sockaddr *addr, int addrlen, const char *id, void *opaque));
void rd_kafka_conf_set_closesocket_cb(rd_kafka_conf_t *conf, int (*closesocket_cb)(int sockfd, void *opaque));
struct addrinfo;
void rd_kafka_conf_set_resolve_cb(rd_kafka_conf_t *conf, int (*resolve_cb)(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res, void *opaque));
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert_verify_cb(rd_kafka_conf_t *conf, int (*ssl_cert_verify_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int *x509_error, int depth, const char *buf, size_t size, char *errstr, size_t errstr_size, void *opaque));
typedef enum rd_kafka_cert_type_t {
  RD_KAFKA_CERT_PUBLIC_KEY,
  RD_KAFKA_CERT_PRIVATE_KEY,
  RD_KAFKA_CERT_CA,
  RD_KAFKA_CERT__CNT,
} rd_kafka_cert_type_t;
typedef enum rd_kafka_cert_enc_t {
  RD_KAFKA_CERT_ENC_PKCS12,
  RD_KAFKA_CERT_ENC_DER,
  RD_KAFKA_CERT_ENC_PEM,
  RD_KAFKA_CERT_ENC__CNT,
} rd_kafka_cert_enc_t;
rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert(rd_kafka_conf_t *conf, rd_kafka_cert_type_t cert_type, rd_kafka_cert_enc_t cert_enc, const void *buffer, size_t size, char *errstr, size_t errstr_size);
void rd_kafka_conf_set_engine_callback_data(rd_kafka_conf_t *conf, void *callback_data);
void rd_kafka_conf_set_opaque(rd_kafka_conf_t *conf, void *opaque);
void *rd_kafka_opaque(const rd_kafka_t *rk);
void rd_kafka_conf_set_default_topic_conf(rd_kafka_conf_t *conf, rd_kafka_topic_conf_t *tconf);
rd_kafka_topic_conf_t *rd_kafka_conf_get_default_topic_conf(rd_kafka_conf_t *conf);
rd_kafka_conf_res_t rd_kafka_conf_get(const rd_kafka_conf_t *conf, const char *name, char *dest, size_t *dest_size);
rd_kafka_conf_res_t rd_kafka_topic_conf_get(const rd_kafka_topic_conf_t *conf, const char *name, char *dest, size_t *dest_size);
const char **rd_kafka_conf_dump(rd_kafka_conf_t *conf, size_t *cntp);
const char **rd_kafka_topic_conf_dump(rd_kafka_topic_conf_t *conf, size_t *cntp);
void rd_kafka_conf_dump_free(const char **arr, size_t cnt);
void rd_kafka_conf_properties_show(FILE *fp);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_new(void);
rd_kafka_topic_conf_t *rd_kafka_topic_conf_dup(const rd_kafka_topic_conf_t *conf);
rd_kafka_topic_conf_t *rd_kafka_default_topic_conf_dup(rd_kafka_t *rk);
void rd_kafka_topic_conf_destroy(rd_kafka_topic_conf_t *topic_conf);
rd_kafka_conf_res_t rd_kafka_topic_conf_set(rd_kafka_topic_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size);
void rd_kafka_topic_conf_set_opaque(rd_kafka_topic_conf_t *conf, void *rkt_opaque);
void rd_kafka_topic_conf_set_partitioner_cb(rd_kafka_topic_conf_t *topic_conf, int32_t (*partitioner)(const rd_kafka_topic_t *rkt, const void *keydata, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque));
void rd_kafka_topic_conf_set_msg_order_cmp(rd_kafka_topic_conf_t *topic_conf, int (*msg_order_cmp)(const rd_kafka_message_t *a, const rd_kafka_message_t *b));
int rd_kafka_topic_partition_available(const rd_kafka_topic_t *rkt, int32_t partition);
int32_t rd_kafka_msg_partitioner_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_consistent_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_murmur2_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
int32_t rd_kafka_msg_partitioner_fnv1a_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque);
rd_kafka_t *rd_kafka_new(rd_kafka_type_t type, rd_kafka_conf_t *conf, char *errstr, size_t errstr_size);
void rd_kafka_destroy(rd_kafka_t *rk);
void rd_kafka_destroy_flags(rd_kafka_t *rk, int flags);
const char *rd_kafka_name(const rd_kafka_t *rk);
rd_kafka_type_t rd_kafka_type(const rd_kafka_t *rk);
char *rd_kafka_memberid(const rd_kafka_t *rk);
char *rd_kafka_clusterid(rd_kafka_t *rk, int timeout_ms);
int32_t rd_kafka_controllerid(rd_kafka_t *rk, int timeout_ms);
rd_kafka_topic_t *rd_kafka_topic_new(rd_kafka_t *rk, const char *topic, rd_kafka_topic_conf_t *conf);
void rd_kafka_topic_destroy(rd_kafka_topic_t *rkt);
const char *rd_kafka_topic_name(const rd_kafka_topic_t *rkt);
void *rd_kafka_topic_opaque(const rd_kafka_topic_t *rkt);
int rd_kafka_poll(rd_kafka_t *rk, int timeout_ms);
void rd_kafka_yield(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_pause_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_resume_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_query_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_get_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high);
rd_kafka_resp_err_t rd_kafka_offsets_for_times(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets, int timeout_ms);
void *rd_kafka_mem_calloc(rd_kafka_t *rk, size_t num, size_t size);
void *rd_kafka_mem_malloc(rd_kafka_t *rk, size_t size);
void rd_kafka_mem_free(rd_kafka_t *rk, void *ptr);
rd_kafka_queue_t *rd_kafka_queue_new(rd_kafka_t *rk);
void rd_kafka_queue_destroy(rd_kafka_queue_t *rkqu);
rd_kafka_queue_t *rd_kafka_queue_get_main(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_sasl(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_sasl_background_callbacks_enable(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_sasl_set_credentials(rd_kafka_t *rk, const char *username, const char *password);
rd_kafka_queue_t *rd_kafka_queue_get_consumer(rd_kafka_t *rk);
rd_kafka_queue_t *rd_kafka_queue_get_partition(rd_kafka_t *rk, const char *topic, int32_t partition);
rd_kafka_queue_t *rd_kafka_queue_get_background(rd_kafka_t *rk);
void rd_kafka_queue_forward(rd_kafka_queue_t *src, rd_kafka_queue_t *dst);
rd_kafka_resp_err_t rd_kafka_set_log_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu);
size_t rd_kafka_queue_length(rd_kafka_queue_t *rkqu);
void rd_kafka_queue_io_event_enable(rd_kafka_queue_t *rkqu, int fd, const void *payload, size_t size);
void rd_kafka_queue_cb_event_enable(rd_kafka_queue_t *rkqu, void (*event_cb)(rd_kafka_t *rk, void *qev_opaque), void *qev_opaque);
void rd_kafka_queue_yield(rd_kafka_queue_t *rkqu);
int rd_kafka_consume_start(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
int rd_kafka_consume_start_queue(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, rd_kafka_queue_t *rkqu);
int rd_kafka_consume_stop(rd_kafka_topic_t *rkt, int32_t partition);
rd_kafka_resp_err_t rd_kafka_seek(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, int timeout_ms);
rd_kafka_error_t *rd_kafka_seek_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_message_t *rd_kafka_consume(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms);
ssize_t rd_kafka_consume_batch(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_message_t *rd_kafka_consume_queue(rd_kafka_queue_t *rkqu, int timeout_ms);
ssize_t rd_kafka_consume_batch_queue(rd_kafka_queue_t *rkqu, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size);
int rd_kafka_consume_callback_queue(rd_kafka_queue_t *rkqu, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_offset_store(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset);
rd_kafka_resp_err_t rd_kafka_offsets_store(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets);
rd_kafka_error_t *rd_kafka_offset_store_message(rd_kafka_message_t *rkmessage);
rd_kafka_resp_err_t rd_kafka_subscribe(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *topics);
rd_kafka_resp_err_t rd_kafka_unsubscribe(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_subscription(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **topics);
rd_kafka_message_t *rd_kafka_consumer_poll(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_consumer_close(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_consumer_close_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu);
int rd_kafka_consumer_closed(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_incremental_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_error_t *rd_kafka_incremental_unassign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
const char *rd_kafka_rebalance_protocol(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions);
rd_kafka_resp_err_t rd_kafka_assignment(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **partitions);
int rd_kafka_assignment_lost(rd_kafka_t *rk);
rd_kafka_resp_err_t rd_kafka_commit(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, int async);
rd_kafka_resp_err_t rd_kafka_commit_message(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, int async);
rd_kafka_resp_err_t rd_kafka_commit_queue(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_queue_t *rkqu, void (*cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *commit_opaque), void *commit_opaque);
rd_kafka_resp_err_t rd_kafka_committed(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_position(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata(rd_kafka_t *rk);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new(const char *group_id);
rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new_with_genid(const char *group_id, int32_t generation_id, const char *member_id, const char *group_instance_id);
void rd_kafka_consumer_group_metadata_destroy(rd_kafka_consumer_group_metadata_t *);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_write(const rd_kafka_consumer_group_metadata_t *cgmd, void **bufferp, size_t *sizep);
rd_kafka_error_t *rd_kafka_consumer_group_metadata_read(rd_kafka_consumer_group_metadata_t **cgmdp, const void *buffer, size_t size);
int rd_kafka_produce(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, void *payload, size_t len, const void *key, size_t keylen, void *msg_opaque);
rd_kafka_resp_err_t rd_kafka_producev(rd_kafka_t *rk, ...);
rd_kafka_error_t *rd_kafka_produceva(rd_kafka_t *rk, const rd_kafka_vu_t *vus, size_t cnt);
int rd_kafka_produce_batch(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, rd_kafka_message_t *rkmessages, int message_cnt);
rd_kafka_resp_err_t rd_kafka_flush(rd_kafka_t *rk, int timeout_ms);
rd_kafka_resp_err_t rd_kafka_purge(rd_kafka_t *rk, int purge_flags);
typedef struct rd_kafka_metadata_broker {
  int32_t id;
  char *host;
  int port;
} rd_kafka_metadata_broker_t;
typedef struct rd_kafka_metadata_partition {
  int32_t id;
  rd_kafka_resp_err_t err;
  int32_t leader;
  int replica_cnt;
  int32_t *replicas;
  int isr_cnt;
  int32_t *isrs;
} rd_kafka_metadata_partition_t;
typedef struct rd_kafka_metadata_topic {
  char *topic;
  int partition_cnt;
  struct rd_kafka_metadata_partition *partitions;
  rd_kafka_resp_err_t err;
} rd_kafka_metadata_topic_t;
typedef struct rd_kafka_metadata {
  int broker_cnt;
  struct rd_kafka_metadata_broker *brokers;
  int topic_cnt;
  struct rd_kafka_metadata_topic *topics;
  int32_t orig_broker_id;
  char *orig_broker_name;
} rd_kafka_metadata_t;
rd_kafka_resp_err_t rd_kafka_metadata(rd_kafka_t *rk, int all_topics, rd_kafka_topic_t *only_rkt, const struct rd_kafka_metadata **metadatap, int timeout_ms);
void rd_kafka_metadata_destroy(const struct rd_kafka_metadata *metadata);
typedef struct rd_kafka_Node_s rd_kafka_Node_t;
int rd_kafka_Node_id(const rd_kafka_Node_t *node);
const char *rd_kafka_Node_host(const rd_kafka_Node_t *node);
uint16_t rd_kafka_Node_port(const rd_kafka_Node_t *node);
const char *rd_kafka_Node_rack(const rd_kafka_Node_t *node);
struct rd_kafka_group_member_info {
  char *member_id;
  char *client_id;
  char *client_host;
  void *member_metadata;
  int member_metadata_size;
  void *member_assignment;
  int member_assignment_size;
};
typedef enum {
  RD_KAFKA_CONSUMER_GROUP_STATE_UNKNOWN = 0,
  RD_KAFKA_CONSUMER_GROUP_STATE_PREPARING_REBALANCE = 1,
  RD_KAFKA_CONSUMER_GROUP_STATE_COMPLETING_REBALANCE = 2,
  RD_KAFKA_CONSUMER_GROUP_STATE_STABLE = 3,
  RD_KAFKA_CONSUMER_GROUP_STATE_DEAD = 4,
  RD_KAFKA_CONSUMER_GROUP_STATE_EMPTY = 5,
  RD_KAFKA_CONSUMER_GROUP_STATE__CNT,
} rd_kafka_consumer_group_state_t;
struct rd_kafka_group_info {
  struct rd_kafka_metadata_broker broker;
  char *group;
  rd_kafka_resp_err_t err;
  char *state;
  char *protocol_type;
  char *protocol;
  struct rd_kafka_group_member_info *members;
  int member_cnt;
};
struct rd_kafka_group_list {
  struct rd_kafka_group_info *groups;
  int group_cnt;
};
rd_kafka_resp_err_t rd_kafka_list_groups(rd_kafka_t *rk, const char *group, const struct rd_kafka_group_list **grplistp, int timeout_ms);
const char *rd_kafka_consumer_group_state_name(rd_kafka_consumer_group_state_t state);
rd_kafka_consumer_group_state_t rd_kafka_consumer_group_state_code(const char *name);
void rd_kafka_group_list_destroy(const struct rd_kafka_group_list *grplist);
int rd_kafka_brokers_add(rd_kafka_t *rk, const char *brokerlist);
void rd_kafka_set_logger(rd_kafka_t *rk, void (*func)(const rd_kafka_t *rk, int level, const char *fac, const char *buf));
void rd_kafka_set_log_level(rd_kafka_t *rk, int level);
void rd_kafka_log_print(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
void rd_kafka_log_syslog(const rd_kafka_t *rk, int level, const char *fac, const char *buf);
int rd_kafka_outq_len(rd_kafka_t *rk);
void rd_kafka_dump(FILE *fp, rd_kafka_t *rk);
int rd_kafka_thread_cnt(void);
typedef enum rd_kafka_thread_type_t {
  RD_KAFKA_THREAD_MAIN,
  RD_KAFKA_THREAD_BACKGROUND,
  RD_KAFKA_THREAD_BROKER,
} rd_kafka_thread_type_t;
int rd_kafka_wait_destroyed(int timeout_ms);
int rd_kafka_unittest(void);
rd_kafka_resp_err_t rd_kafka_poll_set_consumer(rd_kafka_t *rk);
typedef int rd_kafka_event_type_t;
rd_kafka_event_type_t rd_kafka_event_type(const rd_kafka_event_t *rkev);
const char *rd_kafka_event_name(const rd_kafka_event_t *rkev);
void rd_kafka_event_destroy(rd_kafka_event_t *rkev);
const rd_kafka_message_t *rd_kafka_event_message_next(rd_kafka_event_t *rkev);
size_t rd_kafka_event_message_array(rd_kafka_event_t *rkev, const rd_kafka_message_t **rkmessages, size_t size);
size_t rd_kafka_event_message_count(rd_kafka_event_t *rkev);
const char *rd_kafka_event_config_string(rd_kafka_event_t *rkev);
rd_kafka_resp_err_t rd_kafka_event_error(rd_kafka_event_t *rkev);
const char *rd_kafka_event_error_string(rd_kafka_event_t *rkev);
int rd_kafka_event_error_is_fatal(rd_kafka_event_t *rkev);
void *rd_kafka_event_opaque(rd_kafka_event_t *rkev);
int rd_kafka_event_log(rd_kafka_event_t *rkev, const char **fac, const char **str, int *level);
int rd_kafka_event_debug_contexts(rd_kafka_event_t *rkev, char *dst, size_t dstsize);
const char *rd_kafka_event_stats(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_list_t *rd_kafka_event_topic_partition_list(rd_kafka_event_t *rkev);
rd_kafka_topic_partition_t *rd_kafka_event_topic_partition(rd_kafka_event_t *rkev);
typedef rd_kafka_event_t rd_kafka_CreateTopics_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteTopics_result_t;
typedef rd_kafka_event_t rd_kafka_CreateAcls_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeAcls_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteAcls_result_t;
typedef rd_kafka_event_t rd_kafka_CreatePartitions_result_t;
typedef rd_kafka_event_t rd_kafka_AlterConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_IncrementalAlterConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeConfigs_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteRecords_result_t;
typedef rd_kafka_event_t rd_kafka_ListConsumerGroups_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeConsumerGroups_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteGroups_result_t;
typedef rd_kafka_event_t rd_kafka_DeleteConsumerGroupOffsets_result_t;
typedef rd_kafka_event_t rd_kafka_AlterConsumerGroupOffsets_result_t;
typedef rd_kafka_event_t rd_kafka_ListConsumerGroupOffsets_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeTopics_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeCluster_result_t;
typedef rd_kafka_event_t rd_kafka_DescribeUserScramCredentials_result_t;
typedef rd_kafka_event_t rd_kafka_AlterUserScramCredentials_result_t;
typedef rd_kafka_event_t rd_kafka_ListOffsets_result_t;
const rd_kafka_CreateTopics_result_t *rd_kafka_event_CreateTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteTopics_result_t *rd_kafka_event_DeleteTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_CreatePartitions_result_t *rd_kafka_event_CreatePartitions_result(rd_kafka_event_t *rkev);
const rd_kafka_AlterConfigs_result_t *rd_kafka_event_AlterConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_IncrementalAlterConfigs_result_t *rd_kafka_event_IncrementalAlterConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeConfigs_result_t *rd_kafka_event_DescribeConfigs_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteRecords_result_t *rd_kafka_event_DeleteRecords_result(rd_kafka_event_t *rkev);
const rd_kafka_ListConsumerGroups_result_t *rd_kafka_event_ListConsumerGroups_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeConsumerGroups_result_t *rd_kafka_event_DescribeConsumerGroups_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeTopics_result_t *rd_kafka_event_DescribeTopics_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeCluster_result_t *rd_kafka_event_DescribeCluster_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteGroups_result_t *rd_kafka_event_DeleteGroups_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteConsumerGroupOffsets_result_t *rd_kafka_event_DeleteConsumerGroupOffsets_result(rd_kafka_event_t *rkev);
const rd_kafka_CreateAcls_result_t *rd_kafka_event_CreateAcls_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeAcls_result_t *rd_kafka_event_DescribeAcls_result(rd_kafka_event_t *rkev);
const rd_kafka_DeleteAcls_result_t *rd_kafka_event_DeleteAcls_result(rd_kafka_event_t *rkev);
const rd_kafka_ListConsumerGroupOffsets_result_t *rd_kafka_event_ListConsumerGroupOffsets_result(rd_kafka_event_t *rkev);
const rd_kafka_AlterConsumerGroupOffsets_result_t *rd_kafka_event_AlterConsumerGroupOffsets_result(rd_kafka_event_t *rkev);
const rd_kafka_ListOffsets_result_t *rd_kafka_event_ListOffsets_result(rd_kafka_event_t *rkev);
const rd_kafka_DescribeUserScramCredentials_result_t *rd_kafka_event_DescribeUserScramCredentials_result(rd_kafka_event_t *rkev);
const rd_kafka_AlterUserScramCredentials_result_t *rd_kafka_event_AlterUserScramCredentials_result(rd_kafka_event_t *rkev);
rd_kafka_event_t *rd_kafka_queue_poll(rd_kafka_queue_t *rkqu, int timeout_ms);
int rd_kafka_queue_poll_callback(rd_kafka_queue_t *rkqu, int timeout_ms);
typedef rd_kafka_resp_err_t (rd_kafka_plugin_f_conf_init_t)(rd_kafka_conf_t *conf, void **plug_opaquep, char *errstr, size_t errstr_size);
typedef rd_kafka_conf_res_t (rd_kafka_interceptor_f_on_conf_set_t)(rd_kafka_conf_t *conf, const char *name, const char *val, char *errstr, size_t errstr_size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_dup_t)(rd_kafka_conf_t *new_conf, const rd_kafka_conf_t *old_conf, size_t filter_cnt, const char **filter, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_destroy_t)(void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_new_t)(rd_kafka_t *rk, const rd_kafka_conf_t *conf, void *ic_opaque, char *errstr, size_t errstr_size);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_destroy_t)(rd_kafka_t *rk, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_send_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_acknowledgement_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_consume_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_commit_t)(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_request_sent_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_response_received_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, int64_t rtt, rd_kafka_resp_err_t err, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_start_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_exit_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque);
typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_broker_state_change_t)(rd_kafka_t *rk, int32_t broker_id, const char *secproto, const char *name, int port, const char *state, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_set(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_set_t *on_conf_set, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_dup(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_dup_t *on_conf_dup, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_destroy(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_destroy_t *on_conf_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_new(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_new_t *on_new, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_destroy(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_destroy_t *on_destroy, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_send(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_send_t *on_send, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_acknowledgement(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_acknowledgement_t *on_acknowledgement, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_consume(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_consume_t *on_consume, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_commit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_commit_t *on_commit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_request_sent(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_request_sent_t *on_request_sent, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_response_received(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_response_received_t *on_response_received, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_start(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_start_t *on_thread_start, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_exit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_exit_t *on_thread_exit, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_interceptor_add_on_broker_state_change(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_broker_state_change_t *on_broker_state_change, void *ic_opaque);
rd_kafka_resp_err_t rd_kafka_topic_result_error(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_error_string(const rd_kafka_topic_result_t *topicres);
const char *rd_kafka_topic_result_name(const rd_kafka_topic_result_t *topicres);
const rd_kafka_error_t *rd_kafka_group_result_error(const rd_kafka_group_result_t *groupres);
const char *rd_kafka_group_result_name(const rd_kafka_group_result_t *groupres);
const rd_kafka_topic_partition_list_t *rd_kafka_group_result_partitions(const rd_kafka_group_result_t *groupres);
typedef enum rd_kafka_admin_op_t {
  RD_KAFKA_ADMIN_OP_ANY = 0,
  RD_KAFKA_ADMIN_OP_CREATETOPICS,
  RD_KAFKA_ADMIN_OP_DELETETOPICS,
  RD_KAFKA_ADMIN_OP_CREATEPARTITIONS,
  RD_KAFKA_ADMIN_OP_ALTERCONFIGS,
  RD_KAFKA_ADMIN_OP_DESCRIBECONFIGS,
  RD_KAFKA_ADMIN_OP_DELETERECORDS,
  RD_KAFKA_ADMIN_OP_DELETEGROUPS,
  RD_KAFKA_ADMIN_OP_DELETECONSUMERGROUPOFFSETS,
  RD_KAFKA_ADMIN_OP_CREATEACLS,
  RD_KAFKA_ADMIN_OP_DESCRIBEACLS,
  RD_KAFKA_ADMIN_OP_DELETEACLS,
  RD_KAFKA_ADMIN_OP_LISTCONSUMERGROUPS,
  RD_KAFKA_ADMIN_OP_DESCRIBECONSUMERGROUPS,
  RD_KAFKA_ADMIN_OP_LISTCONSUMERGROUPOFFSETS,
  RD_KAFKA_ADMIN_OP_ALTERCONSUMERGROUPOFFSETS,
  RD_KAFKA_ADMIN_OP_INCREMENTALALTERCONFIGS,
  RD_KAFKA_ADMIN_OP_DESCRIBEUSERSCRAMCREDENTIALS,
  RD_KAFKA_ADMIN_OP_ALTERUSERSCRAMCREDENTIALS,
  RD_KAFKA_ADMIN_OP_DESCRIBETOPICS,
  RD_KAFKA_ADMIN_OP_DESCRIBECLUSTER,
  RD_KAFKA_ADMIN_OP_LISTOFFSETS,
  RD_KAFKA_ADMIN_OP__CNT,
} rd_kafka_admin_op_t;
typedef struct rd_kafka_AdminOptions_s rd_kafka_AdminOptions_t;
typedef enum rd_kafka_IsolationLevel_t {
  RD_KAFKA_ISOLATION_LEVEL_READ_UNCOMMITTED = 0,
  RD_KAFKA_ISOLATION_LEVEL_READ_COMMITTED = 1,
} rd_kafka_IsolationLevel_t;
rd_kafka_AdminOptions_t *rd_kafka_AdminOptions_new(rd_kafka_t *rk, rd_kafka_admin_op_t for_api);
void rd_kafka_AdminOptions_destroy(rd_kafka_AdminOptions_t *options);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_request_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_operation_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_validate_only(rd_kafka_AdminOptions_t *options, int true_or_false, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_AdminOptions_set_broker(rd_kafka_AdminOptions_t *options, int32_t broker_id, char *errstr, size_t errstr_size);
rd_kafka_error_t *rd_kafka_AdminOptions_set_require_stable_offsets(rd_kafka_AdminOptions_t *options, int true_or_false);
rd_kafka_error_t *rd_kafka_AdminOptions_set_include_authorized_operations(rd_kafka_AdminOptions_t *options, int true_or_false);
rd_kafka_error_t *rd_kafka_AdminOptions_set_match_consumer_group_states(rd_kafka_AdminOptions_t *options, const rd_kafka_consumer_group_state_t *consumer_group_states, size_t consumer_group_states_cnt);
rd_kafka_error_t *rd_kafka_AdminOptions_set_isolation_level(rd_kafka_AdminOptions_t *options, rd_kafka_IsolationLevel_t value);
void rd_kafka_AdminOptions_set_opaque(rd_kafka_AdminOptions_t *options, void *ev_opaque);
typedef enum rd_kafka_AclOperation_t {
  RD_KAFKA_ACL_OPERATION_UNKNOWN = 0,
  RD_KAFKA_ACL_OPERATION_ANY = 1,
  RD_KAFKA_ACL_OPERATION_ALL = 2,
  RD_KAFKA_ACL_OPERATION_READ = 3,
  RD_KAFKA_ACL_OPERATION_WRITE = 4,
  RD_KAFKA_ACL_OPERATION_CREATE = 5,
  RD_KAFKA_ACL_OPERATION_DELETE = 6,
  RD_KAFKA_ACL_OPERATION_ALTER = 7,
  RD_KAFKA_ACL_OPERATION_DESCRIBE = 8,
  RD_KAFKA_ACL_OPERATION_CLUSTER_ACTION = 9,
  RD_KAFKA_ACL_OPERATION_DESCRIBE_CONFIGS = 10,
  RD_KAFKA_ACL_OPERATION_ALTER_CONFIGS = 11,
  RD_KAFKA_ACL_OPERATION_IDEMPOTENT_WRITE = 12,
  RD_KAFKA_ACL_OPERATION__CNT,
} rd_kafka_AclOperation_t;
typedef struct rd_kafka_NewTopic_s rd_kafka_NewTopic_t;
rd_kafka_NewTopic_t *rd_kafka_NewTopic_new(const char *topic, int num_partitions, int replication_factor, char *errstr, size_t errstr_size);
void rd_kafka_NewTopic_destroy(rd_kafka_NewTopic_t *new_topic);
void rd_kafka_NewTopic_destroy_array(rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_replica_assignment(rd_kafka_NewTopic_t *new_topic, int32_t partition, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_NewTopic_set_config(rd_kafka_NewTopic_t *new_topic, const char *name, const char *value);
void rd_kafka_CreateTopics(rd_kafka_t *rk, rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreateTopics_result_topics(const rd_kafka_CreateTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteTopic_s rd_kafka_DeleteTopic_t;
rd_kafka_DeleteTopic_t *rd_kafka_DeleteTopic_new(const char *topic);
void rd_kafka_DeleteTopic_destroy(rd_kafka_DeleteTopic_t *del_topic);
void rd_kafka_DeleteTopic_destroy_array(rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt);
void rd_kafka_DeleteTopics(rd_kafka_t *rk, rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_DeleteTopics_result_topics(const rd_kafka_DeleteTopics_result_t *result, size_t *cntp);
typedef struct rd_kafka_NewPartitions_s rd_kafka_NewPartitions_t;
rd_kafka_NewPartitions_t *rd_kafka_NewPartitions_new(const char *topic, size_t new_total_cnt, char *errstr, size_t errstr_size);
void rd_kafka_NewPartitions_destroy(rd_kafka_NewPartitions_t *new_parts);
void rd_kafka_NewPartitions_destroy_array(rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt);
rd_kafka_resp_err_t rd_kafka_NewPartitions_set_replica_assignment(rd_kafka_NewPartitions_t *new_parts, int32_t new_partition_idx, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size);
void rd_kafka_CreatePartitions(rd_kafka_t *rk, rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_result_t **rd_kafka_CreatePartitions_result_topics(const rd_kafka_CreatePartitions_result_t *result, size_t *cntp);
typedef enum rd_kafka_ConfigSource_t {
  RD_KAFKA_CONFIG_SOURCE_UNKNOWN_CONFIG = 0,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG = 1,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG = 2,
  RD_KAFKA_CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG = 3,
  RD_KAFKA_CONFIG_SOURCE_STATIC_BROKER_CONFIG = 4,
  RD_KAFKA_CONFIG_SOURCE_DEFAULT_CONFIG = 5,
  RD_KAFKA_CONFIG_SOURCE__CNT,
} rd_kafka_ConfigSource_t;
const char *rd_kafka_ConfigSource_name(rd_kafka_ConfigSource_t confsource);
typedef struct rd_kafka_ConfigEntry_s rd_kafka_ConfigEntry_t;
const char *rd_kafka_ConfigEntry_name(const rd_kafka_ConfigEntry_t *entry);
const char *rd_kafka_ConfigEntry_value(const rd_kafka_ConfigEntry_t *entry);
rd_kafka_ConfigSource_t rd_kafka_ConfigEntry_source(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_read_only(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_default(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_sensitive(const rd_kafka_ConfigEntry_t *entry);
int rd_kafka_ConfigEntry_is_synonym(const rd_kafka_ConfigEntry_t *entry);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigEntry_synonyms(const rd_kafka_ConfigEntry_t *entry, size_t *cntp);
typedef enum rd_kafka_ResourceType_t {
  RD_KAFKA_RESOURCE_UNKNOWN = 0,
  RD_KAFKA_RESOURCE_ANY = 1,
  RD_KAFKA_RESOURCE_TOPIC = 2,
  RD_KAFKA_RESOURCE_GROUP = 3,
  RD_KAFKA_RESOURCE_BROKER = 4,
  RD_KAFKA_RESOURCE__CNT,
} rd_kafka_ResourceType_t;
typedef enum rd_kafka_ResourcePatternType_t {
  RD_KAFKA_RESOURCE_PATTERN_UNKNOWN = 0,
  RD_KAFKA_RESOURCE_PATTERN_ANY = 1,
  RD_KAFKA_RESOURCE_PATTERN_MATCH = 2,
  RD_KAFKA_RESOURCE_PATTERN_LITERAL = 3,
  RD_KAFKA_RESOURCE_PATTERN_PREFIXED = 4,
  RD_KAFKA_RESOURCE_PATTERN_TYPE__CNT,
} rd_kafka_ResourcePatternType_t;
typedef enum rd_kafka_AlterConfigOpType_t {
  RD_KAFKA_ALTER_CONFIG_OP_TYPE_SET = 0,
  RD_KAFKA_ALTER_CONFIG_OP_TYPE_DELETE = 1,
  RD_KAFKA_ALTER_CONFIG_OP_TYPE_APPEND = 2,
  RD_KAFKA_ALTER_CONFIG_OP_TYPE_SUBTRACT = 3,
  RD_KAFKA_ALTER_CONFIG_OP_TYPE__CNT,
} rd_kafka_AlterConfigOpType_t;
const char *rd_kafka_ResourcePatternType_name(rd_kafka_ResourcePatternType_t resource_pattern_type);
const char *rd_kafka_ResourceType_name(rd_kafka_ResourceType_t restype);
typedef struct rd_kafka_ConfigResource_s rd_kafka_ConfigResource_t;
rd_kafka_ConfigResource_t *rd_kafka_ConfigResource_new(rd_kafka_ResourceType_t restype, const char *resname);
void rd_kafka_ConfigResource_destroy(rd_kafka_ConfigResource_t *config);
void rd_kafka_ConfigResource_destroy_array(rd_kafka_ConfigResource_t **config, size_t config_cnt);
rd_kafka_resp_err_t rd_kafka_ConfigResource_set_config(rd_kafka_ConfigResource_t *config, const char *name, const char *value);
rd_kafka_error_t *rd_kafka_ConfigResource_add_incremental_config(rd_kafka_ConfigResource_t *config, const char *name, rd_kafka_AlterConfigOpType_t op_type, const char *value);
const rd_kafka_ConfigEntry_t **rd_kafka_ConfigResource_configs(const rd_kafka_ConfigResource_t *config, size_t *cntp);
rd_kafka_ResourceType_t rd_kafka_ConfigResource_type(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_name(const rd_kafka_ConfigResource_t *config);
rd_kafka_resp_err_t rd_kafka_ConfigResource_error(const rd_kafka_ConfigResource_t *config);
const char *rd_kafka_ConfigResource_error_string(const rd_kafka_ConfigResource_t *config);
void rd_kafka_AlterConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_AlterConfigs_result_resources(const rd_kafka_AlterConfigs_result_t *result, size_t *cntp);
void rd_kafka_IncrementalAlterConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_IncrementalAlterConfigs_result_resources(const rd_kafka_IncrementalAlterConfigs_result_t *result, size_t *cntp);
void rd_kafka_DescribeConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConfigResource_t **rd_kafka_DescribeConfigs_result_resources(const rd_kafka_DescribeConfigs_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteRecords_s rd_kafka_DeleteRecords_t;
rd_kafka_DeleteRecords_t *rd_kafka_DeleteRecords_new(const rd_kafka_topic_partition_list_t *before_offsets);
void rd_kafka_DeleteRecords_destroy(rd_kafka_DeleteRecords_t *del_records);
void rd_kafka_DeleteRecords_destroy_array(rd_kafka_DeleteRecords_t **del_records, size_t del_record_cnt);
void rd_kafka_DeleteRecords(rd_kafka_t *rk, rd_kafka_DeleteRecords_t **del_records, size_t del_record_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_topic_partition_list_t *rd_kafka_DeleteRecords_result_offsets(const rd_kafka_DeleteRecords_result_t *result);
typedef struct rd_kafka_TopicCollection_s rd_kafka_TopicCollection_t;
typedef struct rd_kafka_TopicPartitionInfo_s rd_kafka_TopicPartitionInfo_t;
typedef struct rd_kafka_TopicDescription_s rd_kafka_TopicDescription_t;
rd_kafka_TopicCollection_t *rd_kafka_TopicCollection_of_topic_names(const char **topics, size_t topics_cnt);
void rd_kafka_TopicCollection_destroy(rd_kafka_TopicCollection_t *topics);
void rd_kafka_DescribeTopics(rd_kafka_t *rk, const rd_kafka_TopicCollection_t *topics, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_TopicDescription_t **rd_kafka_DescribeTopics_result_topics(const rd_kafka_DescribeTopics_result_t *result, size_t *cntp);
const rd_kafka_TopicPartitionInfo_t **rd_kafka_TopicDescription_partitions(const rd_kafka_TopicDescription_t *topicdesc, size_t *cntp);
const int rd_kafka_TopicPartitionInfo_partition(const rd_kafka_TopicPartitionInfo_t *partition);
const rd_kafka_Node_t *rd_kafka_TopicPartitionInfo_leader(const rd_kafka_TopicPartitionInfo_t *partition);
const rd_kafka_Node_t **rd_kafka_TopicPartitionInfo_isr(const rd_kafka_TopicPartitionInfo_t *partition, size_t *cntp);
const rd_kafka_Node_t **rd_kafka_TopicPartitionInfo_replicas(const rd_kafka_TopicPartitionInfo_t *partition, size_t *cntp);
const rd_kafka_AclOperation_t *rd_kafka_TopicDescription_authorized_operations(const rd_kafka_TopicDescription_t *topicdesc, size_t *cntp);
const char *rd_kafka_TopicDescription_name(const rd_kafka_TopicDescription_t *topicdesc);
const rd_kafka_Uuid_t *rd_kafka_TopicDescription_topic_id(const rd_kafka_TopicDescription_t *topicdesc);
int rd_kafka_TopicDescription_is_internal(const rd_kafka_TopicDescription_t *topicdesc);
const rd_kafka_error_t *rd_kafka_TopicDescription_error(const rd_kafka_TopicDescription_t *topicdesc);
void rd_kafka_DescribeCluster(rd_kafka_t *rk, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_Node_t **rd_kafka_DescribeCluster_result_nodes(const rd_kafka_DescribeCluster_result_t *result, size_t *cntp);
const rd_kafka_AclOperation_t *rd_kafka_DescribeCluster_result_authorized_operations(const rd_kafka_DescribeCluster_result_t *result, size_t *cntp);
const rd_kafka_Node_t *rd_kafka_DescribeCluster_result_controller(const rd_kafka_DescribeCluster_result_t *result);
const char *rd_kafka_DescribeCluster_result_cluster_id(const rd_kafka_DescribeCluster_result_t *result);
typedef struct rd_kafka_ConsumerGroupListing_s rd_kafka_ConsumerGroupListing_t;
typedef struct rd_kafka_ListConsumerGroupsResult_s rd_kafka_ListConsumerGroupsResult_t;
void rd_kafka_ListConsumerGroups(rd_kafka_t *rk, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const char *rd_kafka_ConsumerGroupListing_group_id(const rd_kafka_ConsumerGroupListing_t *grplist);
int rd_kafka_ConsumerGroupListing_is_simple_consumer_group(const rd_kafka_ConsumerGroupListing_t *grplist);
rd_kafka_consumer_group_state_t rd_kafka_ConsumerGroupListing_state(const rd_kafka_ConsumerGroupListing_t *grplist);
const rd_kafka_ConsumerGroupListing_t **rd_kafka_ListConsumerGroups_result_valid(const rd_kafka_ListConsumerGroups_result_t *result, size_t *cntp);
const rd_kafka_error_t **rd_kafka_ListConsumerGroups_result_errors(const rd_kafka_ListConsumerGroups_result_t *result, size_t *cntp);
typedef struct rd_kafka_ConsumerGroupDescription_s rd_kafka_ConsumerGroupDescription_t;
typedef struct rd_kafka_MemberDescription_s rd_kafka_MemberDescription_t;
typedef struct rd_kafka_MemberAssignment_s rd_kafka_MemberAssignment_t;
void rd_kafka_DescribeConsumerGroups(rd_kafka_t *rk, const char **groups, size_t groups_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_ConsumerGroupDescription_t **rd_kafka_DescribeConsumerGroups_result_groups(const rd_kafka_DescribeConsumerGroups_result_t *result, size_t *cntp);
const char *rd_kafka_ConsumerGroupDescription_group_id(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
const rd_kafka_error_t *rd_kafka_ConsumerGroupDescription_error(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
int rd_kafka_ConsumerGroupDescription_is_simple_consumer_group(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
const char *rd_kafka_ConsumerGroupDescription_partition_assignor(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
const rd_kafka_AclOperation_t *rd_kafka_ConsumerGroupDescription_authorized_operations(const rd_kafka_ConsumerGroupDescription_t *grpdesc, size_t *cntp);
rd_kafka_consumer_group_state_t rd_kafka_ConsumerGroupDescription_state(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
const rd_kafka_Node_t *rd_kafka_ConsumerGroupDescription_coordinator(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
size_t rd_kafka_ConsumerGroupDescription_member_count(const rd_kafka_ConsumerGroupDescription_t *grpdesc);
const rd_kafka_MemberDescription_t *rd_kafka_ConsumerGroupDescription_member(const rd_kafka_ConsumerGroupDescription_t *grpdesc, size_t idx);
const char *rd_kafka_MemberDescription_client_id(const rd_kafka_MemberDescription_t *member);
const char *rd_kafka_MemberDescription_group_instance_id(const rd_kafka_MemberDescription_t *member);
const char *rd_kafka_MemberDescription_consumer_id(const rd_kafka_MemberDescription_t *member);
const char *rd_kafka_MemberDescription_host(const rd_kafka_MemberDescription_t *member);
const rd_kafka_MemberAssignment_t *rd_kafka_MemberDescription_assignment(const rd_kafka_MemberDescription_t *member);
const rd_kafka_topic_partition_list_t *rd_kafka_MemberAssignment_partitions(const rd_kafka_MemberAssignment_t *assignment);
typedef struct rd_kafka_DeleteGroup_s rd_kafka_DeleteGroup_t;
rd_kafka_DeleteGroup_t *rd_kafka_DeleteGroup_new(const char *group);
void rd_kafka_DeleteGroup_destroy(rd_kafka_DeleteGroup_t *del_group);
void rd_kafka_DeleteGroup_destroy_array(rd_kafka_DeleteGroup_t **del_groups, size_t del_group_cnt);
void rd_kafka_DeleteGroups(rd_kafka_t *rk, rd_kafka_DeleteGroup_t **del_groups, size_t del_group_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_DeleteGroups_result_groups(const rd_kafka_DeleteGroups_result_t *result, size_t *cntp);
typedef struct rd_kafka_ListConsumerGroupOffsets_s rd_kafka_ListConsumerGroupOffsets_t;
rd_kafka_ListConsumerGroupOffsets_t *rd_kafka_ListConsumerGroupOffsets_new(const char *group_id, const rd_kafka_topic_partition_list_t *partitions);
void rd_kafka_ListConsumerGroupOffsets_destroy(rd_kafka_ListConsumerGroupOffsets_t *list_grpoffsets);
void rd_kafka_ListConsumerGroupOffsets_destroy_array(rd_kafka_ListConsumerGroupOffsets_t **list_grpoffsets, size_t list_grpoffset_cnt);
void rd_kafka_ListConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_ListConsumerGroupOffsets_t **list_grpoffsets, size_t list_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_ListConsumerGroupOffsets_result_groups(const rd_kafka_ListConsumerGroupOffsets_result_t *result, size_t *cntp);
typedef struct rd_kafka_AlterConsumerGroupOffsets_s rd_kafka_AlterConsumerGroupOffsets_t;
rd_kafka_AlterConsumerGroupOffsets_t *rd_kafka_AlterConsumerGroupOffsets_new(const char *group_id, const rd_kafka_topic_partition_list_t *partitions);
void rd_kafka_AlterConsumerGroupOffsets_destroy(rd_kafka_AlterConsumerGroupOffsets_t *alter_grpoffsets);
void rd_kafka_AlterConsumerGroupOffsets_destroy_array(rd_kafka_AlterConsumerGroupOffsets_t **alter_grpoffsets, size_t alter_grpoffset_cnt);
void rd_kafka_AlterConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_AlterConsumerGroupOffsets_t **alter_grpoffsets, size_t alter_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_AlterConsumerGroupOffsets_result_groups(const rd_kafka_AlterConsumerGroupOffsets_result_t *result, size_t *cntp);
typedef struct rd_kafka_DeleteConsumerGroupOffsets_s rd_kafka_DeleteConsumerGroupOffsets_t;
rd_kafka_DeleteConsumerGroupOffsets_t *rd_kafka_DeleteConsumerGroupOffsets_new(const char *group, const rd_kafka_topic_partition_list_t *partitions);
void rd_kafka_DeleteConsumerGroupOffsets_destroy(rd_kafka_DeleteConsumerGroupOffsets_t *del_grpoffsets);
void rd_kafka_DeleteConsumerGroupOffsets_destroy_array(rd_kafka_DeleteConsumerGroupOffsets_t **del_grpoffsets, size_t del_grpoffset_cnt);
void rd_kafka_DeleteConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_DeleteConsumerGroupOffsets_t **del_grpoffsets, size_t del_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_group_result_t **rd_kafka_DeleteConsumerGroupOffsets_result_groups(const rd_kafka_DeleteConsumerGroupOffsets_result_t *result, size_t *cntp);
typedef enum rd_kafka_OffsetSpec_t {
  RD_KAFKA_OFFSET_SPEC_MAX_TIMESTAMP = (- 3),
  RD_KAFKA_OFFSET_SPEC_EARLIEST = (- 2),
  RD_KAFKA_OFFSET_SPEC_LATEST = (- 1),
} rd_kafka_OffsetSpec_t;
typedef struct rd_kafka_ListOffsetsResultInfo_s rd_kafka_ListOffsetsResultInfo_t;
const rd_kafka_topic_partition_t *rd_kafka_ListOffsetsResultInfo_topic_partition(const rd_kafka_ListOffsetsResultInfo_t *result_info);
int64_t rd_kafka_ListOffsetsResultInfo_timestamp(const rd_kafka_ListOffsetsResultInfo_t *result_info);
const rd_kafka_ListOffsetsResultInfo_t **rd_kafka_ListOffsets_result_infos(const rd_kafka_ListOffsets_result_t *result, size_t *cntp);
void rd_kafka_ListOffsets(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *topic_partitions, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
typedef enum rd_kafka_ScramMechanism_t {
  RD_KAFKA_SCRAM_MECHANISM_UNKNOWN = 0,
  RD_KAFKA_SCRAM_MECHANISM_SHA_256 = 1,
  RD_KAFKA_SCRAM_MECHANISM_SHA_512 = 2,
  RD_KAFKA_SCRAM_MECHANISM__CNT,
} rd_kafka_ScramMechanism_t;
typedef struct rd_kafka_ScramCredentialInfo_s rd_kafka_ScramCredentialInfo_t;
rd_kafka_ScramMechanism_t rd_kafka_ScramCredentialInfo_mechanism(const rd_kafka_ScramCredentialInfo_t *scram_credential_info);
int32_t rd_kafka_ScramCredentialInfo_iterations(const rd_kafka_ScramCredentialInfo_t *scram_credential_info);
typedef struct rd_kafka_UserScramCredentialsDescription_s rd_kafka_UserScramCredentialsDescription_t;
const char *rd_kafka_UserScramCredentialsDescription_user(const rd_kafka_UserScramCredentialsDescription_t *description);
const rd_kafka_error_t *rd_kafka_UserScramCredentialsDescription_error(const rd_kafka_UserScramCredentialsDescription_t *description);
size_t rd_kafka_UserScramCredentialsDescription_scramcredentialinfo_count(const rd_kafka_UserScramCredentialsDescription_t *description);
const rd_kafka_ScramCredentialInfo_t *rd_kafka_UserScramCredentialsDescription_scramcredentialinfo(const rd_kafka_UserScramCredentialsDescription_t *description, size_t idx);
const rd_kafka_UserScramCredentialsDescription_t **rd_kafka_DescribeUserScramCredentials_result_descriptions(const rd_kafka_DescribeUserScramCredentials_result_t *result, size_t *cntp);
void rd_kafka_DescribeUserScramCredentials(rd_kafka_t *rk, const char **users, size_t user_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
typedef struct rd_kafka_UserScramCredentialAlteration_s rd_kafka_UserScramCredentialAlteration_t;
rd_kafka_UserScramCredentialAlteration_t *rd_kafka_UserScramCredentialUpsertion_new(const char *username, rd_kafka_ScramMechanism_t mechanism, int32_t iterations, const unsigned char *password, size_t password_size, const unsigned char *salt, size_t salt_size);
rd_kafka_UserScramCredentialAlteration_t *rd_kafka_UserScramCredentialDeletion_new(const char *username, rd_kafka_ScramMechanism_t mechanism);
void rd_kafka_UserScramCredentialAlteration_destroy(rd_kafka_UserScramCredentialAlteration_t *alteration);
void rd_kafka_UserScramCredentialAlteration_destroy_array(rd_kafka_UserScramCredentialAlteration_t **alterations, size_t alteration_cnt);
typedef struct rd_kafka_AlterUserScramCredentials_result_response_s rd_kafka_AlterUserScramCredentials_result_response_t;
const char *rd_kafka_AlterUserScramCredentials_result_response_user(const rd_kafka_AlterUserScramCredentials_result_response_t *response);
const rd_kafka_error_t *rd_kafka_AlterUserScramCredentials_result_response_error(const rd_kafka_AlterUserScramCredentials_result_response_t *response);
const rd_kafka_AlterUserScramCredentials_result_response_t **rd_kafka_AlterUserScramCredentials_result_responses(const rd_kafka_AlterUserScramCredentials_result_t *result, size_t *cntp);
void rd_kafka_AlterUserScramCredentials(rd_kafka_t *rk, rd_kafka_UserScramCredentialAlteration_t **alterations, size_t alteration_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
typedef struct rd_kafka_AclBinding_s rd_kafka_AclBinding_t;
typedef rd_kafka_AclBinding_t rd_kafka_AclBindingFilter_t;
const rd_kafka_error_t *rd_kafka_acl_result_error(const rd_kafka_acl_result_t *aclres);
const char *rd_kafka_AclOperation_name(rd_kafka_AclOperation_t acl_operation);
typedef enum rd_kafka_AclPermissionType_t {
  RD_KAFKA_ACL_PERMISSION_TYPE_UNKNOWN = 0,
  RD_KAFKA_ACL_PERMISSION_TYPE_ANY = 1,
  RD_KAFKA_ACL_PERMISSION_TYPE_DENY = 2,
  RD_KAFKA_ACL_PERMISSION_TYPE_ALLOW = 3,
  RD_KAFKA_ACL_PERMISSION_TYPE__CNT,
} rd_kafka_AclPermissionType_t;
const char *rd_kafka_AclPermissionType_name(rd_kafka_AclPermissionType_t acl_permission_type);
rd_kafka_AclBinding_t *rd_kafka_AclBinding_new(rd_kafka_ResourceType_t restype, const char *name, rd_kafka_ResourcePatternType_t resource_pattern_type, const char *principal, const char *host, rd_kafka_AclOperation_t operation, rd_kafka_AclPermissionType_t permission_type, char *errstr, size_t errstr_size);
rd_kafka_AclBindingFilter_t *rd_kafka_AclBindingFilter_new(rd_kafka_ResourceType_t restype, const char *name, rd_kafka_ResourcePatternType_t resource_pattern_type, const char *principal, const char *host, rd_kafka_AclOperation_t operation, rd_kafka_AclPermissionType_t permission_type, char *errstr, size_t errstr_size);
rd_kafka_ResourceType_t rd_kafka_AclBinding_restype(const rd_kafka_AclBinding_t *acl);
const char *rd_kafka_AclBinding_name(const rd_kafka_AclBinding_t *acl);
const char *rd_kafka_AclBinding_principal(const rd_kafka_AclBinding_t *acl);
const char *rd_kafka_AclBinding_host(const rd_kafka_AclBinding_t *acl);
rd_kafka_AclOperation_t rd_kafka_AclBinding_operation(const rd_kafka_AclBinding_t *acl);
rd_kafka_AclPermissionType_t rd_kafka_AclBinding_permission_type(const rd_kafka_AclBinding_t *acl);
rd_kafka_ResourcePatternType_t rd_kafka_AclBinding_resource_pattern_type(const rd_kafka_AclBinding_t *acl);
const rd_kafka_error_t *rd_kafka_AclBinding_error(const rd_kafka_AclBinding_t *acl);
void rd_kafka_AclBinding_destroy(rd_kafka_AclBinding_t *acl_binding);
void rd_kafka_AclBinding_destroy_array(rd_kafka_AclBinding_t **acl_bindings, size_t acl_bindings_cnt);
const rd_kafka_acl_result_t **rd_kafka_CreateAcls_result_acls(const rd_kafka_CreateAcls_result_t *result, size_t *cntp);
void rd_kafka_CreateAcls(rd_kafka_t *rk, rd_kafka_AclBinding_t **new_acls, size_t new_acls_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
const rd_kafka_AclBinding_t **rd_kafka_DescribeAcls_result_acls(const rd_kafka_DescribeAcls_result_t *result, size_t *cntp);
void rd_kafka_DescribeAcls(rd_kafka_t *rk, rd_kafka_AclBindingFilter_t *acl_filter, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
typedef struct rd_kafka_DeleteAcls_result_response_s rd_kafka_DeleteAcls_result_response_t;
const rd_kafka_DeleteAcls_result_response_t **rd_kafka_DeleteAcls_result_responses(const rd_kafka_DeleteAcls_result_t *result, size_t *cntp);
const rd_kafka_error_t *rd_kafka_DeleteAcls_result_response_error(const rd_kafka_DeleteAcls_result_response_t *result_response);
const rd_kafka_AclBinding_t **rd_kafka_DeleteAcls_result_response_matching_acls(const rd_kafka_DeleteAcls_result_response_t *result_response, size_t *matching_acls_cntp);
void rd_kafka_DeleteAcls(rd_kafka_t *rk, rd_kafka_AclBindingFilter_t **del_acls, size_t del_acls_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token(rd_kafka_t *rk, const char *token_value, int64_t md_lifetime_ms, const char *md_principal_name, const char **extensions, size_t extension_size, char *errstr, size_t errstr_size);
rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token_failure(rd_kafka_t *rk, const char *errstr);
rd_kafka_error_t *rd_kafka_init_transactions(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_begin_transaction(rd_kafka_t *rk);
rd_kafka_error_t *rd_kafka_send_offsets_to_transaction(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, const rd_kafka_consumer_group_metadata_t *cgmetadata, int timeout_ms);
rd_kafka_error_t *rd_kafka_commit_transaction(rd_kafka_t *rk, int timeout_ms);
rd_kafka_error_t *rd_kafka_abort_transaction(rd_kafka_t *rk, int timeout_ms);
typedef struct rd_kafka_mock_cluster_s rd_kafka_mock_cluster_t;
rd_kafka_mock_cluster_t *rd_kafka_mock_cluster_new(rd_kafka_t *rk, int broker_cnt);
void rd_kafka_mock_cluster_destroy(rd_kafka_mock_cluster_t *mcluster);
rd_kafka_t *rd_kafka_mock_cluster_handle(const rd_kafka_mock_cluster_t *mcluster);
rd_kafka_mock_cluster_t *rd_kafka_handle_mock_cluster(const rd_kafka_t *rk);
const char *rd_kafka_mock_cluster_bootstraps(const rd_kafka_mock_cluster_t *mcluster);
void rd_kafka_mock_clear_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey);
void rd_kafka_mock_push_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, ...);
void rd_kafka_mock_push_request_errors_array(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, const rd_kafka_resp_err_t *errors);
rd_kafka_resp_err_t rd_kafka_mock_broker_push_request_error_rtts(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int16_t ApiKey, size_t cnt, ...);
rd_kafka_resp_err_t rd_kafka_mock_broker_error_stack_cnt(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int16_t ApiKey, size_t *cntp);
void rd_kafka_mock_topic_set_error(rd_kafka_mock_cluster_t *mcluster, const char *topic, rd_kafka_resp_err_t err);
rd_kafka_resp_err_t rd_kafka_mock_topic_create(rd_kafka_mock_cluster_t *mcluster, const char *topic, int partition_cnt, int replication_factor);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_leader(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower_wmarks(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int64_t lo, int64_t hi);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_down(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_up(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rtt(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int rtt_ms);
rd_kafka_resp_err_t rd_kafka_mock_broker_set_rack(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, const char *rack);
rd_kafka_resp_err_t rd_kafka_mock_coordinator_set(rd_kafka_mock_cluster_t *mcluster, const char *key_type, const char *key, int32_t broker_id);
rd_kafka_resp_err_t rd_kafka_mock_set_apiversion(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, int16_t MinVersion, int16_t MaxVersion);
void rd_kafka_mock_start_request_tracking(rd_kafka_mock_cluster_t *mcluster);
void rd_kafka_mock_stop_request_tracking(rd_kafka_mock_cluster_t *mcluster);
typedef struct rd_kafka_mock_request_s rd_kafka_mock_request_t;
void rd_kafka_mock_request_destroy(rd_kafka_mock_request_t *mreq);
int32_t rd_kafka_mock_request_id(rd_kafka_mock_request_t *mreq);
int16_t rd_kafka_mock_request_api_key(rd_kafka_mock_request_t *mreq);
int64_t rd_kafka_mock_request_timestamp(rd_kafka_mock_request_t *mreq);
rd_kafka_mock_request_t **rd_kafka_mock_get_requests(rd_kafka_mock_cluster_t *mcluster, size_t *cntp);
void rd_kafka_mock_clear_requests(rd_kafka_mock_cluster_t *mcluster);
'
rdkafka.h, rdkafka_mock.h