[workspace] members = ["protocol_codegen"] [package] name = "kafka-protocol" version = "0.14.0" authors = [ "Diggory Blake ", "Charlotte McElwain ", "belltoy ", ] edition = "2021" license = "MIT/Apache-2.0" description = "Implementation of Kafka wire protocol." homepage = "https://github.com/tychedelia/kafka-protocol-rs" repository = "https://github.com/tychedelia/kafka-protocol-rs" documentation = "https://docs.rs/kafka-protocol" readme = "README.md" keywords = ["kafka"] [features] # adds the ResponseKind + RequestKind enums with variants for every message type. # disabled by default since it doubles clean release build times due to lots of generated code. messages_enums = [] # Enable this feature if you are implementing a kafka client. # It will enable encoding of requests and decoding of responses. client = [] # Enable this feature if you are implementing a kafka protocol compatible broker. # It will enable encoding of responses and decoding of requests. broker = [] # Enable compression of records using gzip gzip = ["dep:flate2"] # Enable compression of records using zstd zstd = ["dep:zstd"] # Enable compression of records using snap snappy = ["dep:snap"] # Enable compression of records using lz4 lz4 = ["dep:lz4"] default = ["client", "broker", "gzip", "zstd", "snappy", "lz4"] [dependencies] bytes = "1.0.1" uuid = "1.3.0" indexmap = "2.0.0" crc = "3.0.0" snap = { version = "1.0.5", optional = true } flate2 = { version = "1.0.20", optional = true } zstd = { version = "0.13", optional = true } lz4 = { version = "1.24", optional = true } paste = "1.0.7" crc32c = "0.6.4" anyhow = "1.0.80" [dev-dependencies] testcontainers = { version = "0.20.1", features = ["blocking", "watchdog"] } # Display required features for items when rendering for docs.rs [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "docsrs"]