#![doc = include_str!("../README.md")]

mod api;

mod admin;
mod consumer;
mod core;
mod metadata;
mod network;
mod producer;

pub(crate) use self::core::constants;
pub use self::core::{config, error, types};

pub use admin::{
    AlterConfigOp, AlterConfigOpType, BrokerDescription, BrokerFeatureLevel, ClusterDescription,
    ConfigEntry, ConfigResource, ConfigResourceConfig, ConfigResourceType,
    ConsumerGroupDescription, ConsumerGroupListing, ConsumerGroupMemberDescription, KafkaAdmin,
    NewPartitions, NewTopic, TopicDescription, TopicListing, TopicPartitionDescription,
};
pub use api::{KafkaClient, KafkaTopic};
pub use config::{
    AdminConfig, AutoOffsetReset, ClientConfig, ConsumerConfig, IsolationLevel,
    ProducerCompression, ProducerConfig, ProducerPartitioner, SaslConfig, SaslMechanism,
    SecurityProtocol, TlsConfig,
};
pub use consumer::{
    AcknowledgeType, AcknowledgementCommitCallback, KafkaConsumer, KafkaShareConsumer,
    ShareAcknowledgementCommit, ShareAcquireMode, ShareConsumerOptions, ShareRecord, ShareRecords,
};
pub use error::{
    AdminError, ConsumerError, ConsumerGroupMetadataError, Error, ProducerError, Result,
    TransactionStateError,
};
pub use producer::KafkaProducer;
pub use types::{
    CommitOffset, ConsumerGroupMetadata, ConsumerRecord, ConsumerRecords, KafkaMessage,
    OffsetAndTimestamp, ProduceAck, ProduceRecord, RecordHeader, SubscriptionPattern,
    TopicPartition, TopicPartitionInfo, TopicPartitionKey, TopicPartitionOffset,
    TopicPartitionOffsetAndTimestamp, TopicPartitionTimestamp,
};
