kafrust 0.2.17

A pure Rust Kafka client with no librdkafka or C client binding dependency.
Documentation
#![doc = include_str!("../README.md")]
#![forbid(unsafe_code)]
#![warn(missing_docs)]

/// Kafka administration API.
pub mod admin;
/// Low-level Kafka request client.
pub mod client;
/// Shared connection configuration.
pub mod config;
/// Direct topic/partition consumer API.
pub mod consumer;
/// Error and result types.
pub mod error;
/// Classic consumer group alpha API.
pub mod group;
/// Lock-free client request metrics.
pub mod metrics;
/// Producer API.
pub mod producer;

mod scram;

pub use admin::{
    AclBinding, AclFilter, AclOperation, AclPatternType, AclPermissionType, AclResourceType,
    AdminClient, AlterClientQuotaEntryResult, AlterClientQuotasResult, AlterConfigResourceResult,
    AlterConfigsOptions, AlterConfigsResult, AlterConsumerGroupOffsetsPartitionResult,
    AlterConsumerGroupOffsetsResult, AlterConsumerGroupOffsetsTopicResult,
    AlterPartitionReassignmentResult, AlterPartitionReassignmentTopicResult,
    AlterPartitionReassignmentsResult, AlterScramCredentialResult, AlterUserScramCredentialsResult,
    BrokerDescription, ClientQuotaAlteration, ClientQuotaEntity, ClientQuotaEntityComponent,
    ClientQuotaFilter, ClientQuotaFilterComponent, ClientQuotaMatchType, ClientQuotaOperation,
    ClientQuotaValue, ClusterDescription, ConfigAlterOperation, ConfigAlterOperationKind,
    ConfigEntry, ConfigResourceResult, ConfigSource, ConfigSynonym, ConsumerGroupDescription,
    ConsumerGroupMember, ConsumerGroupOffset, ConsumerGroupOffsetDelete,
    ConsumerGroupOffsetPartitionResult, ConsumerGroupOffsetQuery, ConsumerGroupOffsetTopicResult,
    CreateAclsEntryResult, CreateAclsResult, CreatePartitionsOptions, CreatePartitionsResult,
    CreatePartitionsTopicResult, CreateTopicResult, CreateTopicsOptions, CreateTopicsResult,
    DeleteAclsFilterResult, DeleteAclsResult, DeleteConsumerGroupOffsetsPartitionResult,
    DeleteConsumerGroupOffsetsResult, DeleteConsumerGroupOffsetsTopicResult,
    DeleteConsumerGroupResult, DeleteRecordsOptions, DeleteRecordsPartition,
    DeleteRecordsPartitionResult, DeleteRecordsResult, DeleteRecordsTopic,
    DeleteRecordsTopicResult, DeleteTopicResult, DeleteTopicsOptions, DeleteTopicsResult,
    DeletedAclResult, DescribeAclsResult, DescribeClientQuotasResult, DescribeConfigsOptions,
    DescribeConfigsResult, DescribeProducersActiveProducer, DescribeProducersPartitionResult,
    DescribeProducersResult, DescribeProducersTopic, DescribeProducersTopicResult,
    DescribeTransactionsResult, DescribeUserScramCredentialsResult, GroupListing,
    ListConsumerGroupOffsetsResult, ListPartitionReassignmentsResult, ListTransactionsOptions,
    ListTransactionsResult, ListedTransaction, NewPartitions, NewTopic,
    OngoingPartitionReassignment, OngoingPartitionReassignmentTopic, PartitionReassignment,
    PartitionReassignmentOptions, PartitionReassignmentPartition, PartitionReassignmentQuery,
    ScramCredentialDeletion, ScramCredentialInfo, ScramCredentialMechanism,
    ScramCredentialUpsertion, ScramUserCredentials, TopicConfigAlteration, TopicConfigResource,
    TopicListing, TransactionDescription, TransactionDescriptionTopic,
};
pub use client::Client;
pub use config::{
    ClientConfig, OAuthBearerTokenFuture, OAuthBearerTokenProvider, SaslCredentials, SaslMechanism,
    SecurityProtocol,
};
pub use consumer::{
    Consumer, ConsumerAssignment, ConsumerConfig, ConsumerPartitionQueue, ConsumerRecord,
    ConsumerRecordHeader, IsolationLevel, LeaderEpochOffset, PartitionWatermarks,
};
pub use error::{BrokerErrorKind, Error, Result};
pub use group::{
    ConsumerGroup, ConsumerGroupAssignmentStrategy, ConsumerGroupCommitWorker, ConsumerGroupConfig,
    ConsumerGroupHeartbeat, ConsumerGroupMetadata, ConsumerGroupProtocol, OffsetResetPolicy,
    RebalanceEvent, RebalanceListener, RebalancePhase,
};
pub use kafrust_protocol as protocol;
pub use metrics::{ClientMetrics, ClientMetricsSnapshot};
pub use producer::{
    Acks, BufferedProducer, Compression, Header, Partitioner, ProducerBatchFailure,
    ProducerBatchRecordOutcome, ProducerBatchReport, ProducerConfig, ProducerDelivery,
    ProducerRecord, RecordMetadata, TransactionStatus,
};

/// Returns the crate version compiled into this build.
pub fn version() -> &'static str {
    env!("CARGO_PKG_VERSION")
}

#[cfg(test)]
mod tests {
    #[test]
    fn exposes_crate_version() {
        assert_eq!(crate::version(), env!("CARGO_PKG_VERSION"));
    }
}