[package]
name = "celers-protocol"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
description = "Celery Protocol v2/v5 implementation for CeleRS"
keywords = ["celery", "protocol", "messaging", "serialization", "kombu"]
categories = ["encoding", "network-programming"]
[dependencies]
serde = { workspace = true }
serde_json = { workspace = true }
uuid = { workspace = true }
chrono = { workspace = true }
base64 = { workspace = true }
hex = { workspace = true, optional = true }
rmp-serde = { workspace = true, optional = true }
oxicode = { workspace = true, optional = true }
serde_yaml = { workspace = true, optional = true }
flate2 = { workspace = true, optional = true }
zstd = { workspace = true, optional = true }
hmac = { workspace = true, optional = true }
sha2 = { workspace = true, optional = true }
aes-gcm = { workspace = true, optional = true }
prost = { workspace = true, optional = true }
bson = { workspace = true, optional = true }
[features]
default = ["json"]
json = []
msgpack = ["rmp-serde"]
binary = ["oxicode"]
yaml = ["serde_yaml"]
protobuf = ["prost"]
bson-format = ["bson"]
gzip = ["flate2"]
zstd-compression = ["zstd"]
compression = ["gzip", "zstd-compression"]
signing = ["hmac", "sha2", "hex"]
encryption = ["aes-gcm", "hex"]
crypto = ["signing", "encryption"]
all-serializers = ["msgpack", "yaml", "protobuf", "bson-format"]
[dev-dependencies]
criterion = { workspace = true }
[[bench]]
name = "message_benchmarks"
harness = false