[package]
name = "kafka_client"
version = "0.1.0"
edition = "2024"
rust-version = "1.85"
authors = ["zzzdong <kuwater@163.com>"]
description = "A pure Rust Kafka client library with SASL authentication support"
documentation = "https://docs.rs/kafka_client"
homepage = "https://github.com/zzzdong/kafka_client"
repository = "https://github.com/zzzdong/kafka_client"
readme = "README.md"
keywords = ["kafka", "client", "async", "sasl", "tls"]
categories = ["network-programming", "asynchronous", "api-bindings", "authentication"]
license = "Apache-2.0 OR MIT"

[dependencies]
# 异步运行时
tokio = { version = "1.44", features = ["full"] }
async-trait = "0.1"
futures = "0.3"

# 网络编解码
bytes = "1.11"
tokio-util = { version = "0.7", features = ["codec"] }

# TLS 支持
rustls = "0.23"
tokio-rustls = "0.26"
rustls-native-certs = "0.8"
rustls-pemfile = "2.2"

# 加密与认证
sha2 = "0.10"
hmac = "0.12"
pbkdf2 = "0.12"
base64 = "0.22"
rand = "0.9"

# 并发集合
dashmap = "6.1"

# 错误处理
thiserror = "2.0"

# 日志
tracing = "0.1"

# 序列化
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"

# 协议
kafka-client-protocol = { version = "0.1.0", path = "kafka-client-protocol" }

# UUID
uuid = { version = "1.0", features = ["v4"] }

[features]
default = []
integration_tests = []

[dev-dependencies]
tracing-subscriber = { version = "0.3", features = ["env-filter"] }

[workspace]
members = [
    "kafka-client-protocol-core",
    "kafka-client-protocol-codegen",
    "kafka-client-protocol-derive",
    "kafka-client-protocol"
]
