celers-protocol 0.1.0

Celery Protocol v2/v5 implementation for CeleRS
Documentation
[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 }

# Optional serialization formats
rmp-serde = { workspace = true, optional = true }  # MessagePack
oxicode = { workspace = true, optional = true }  # Binary (OxiCode)
serde_yaml = { workspace = true, optional = true }  # YAML

# Optional compression
flate2 = { workspace = true, optional = true }  # gzip/deflate
zstd = { workspace = true, optional = true }  # Zstandard

# Optional security/crypto
hmac = { workspace = true, optional = true }  # HMAC for message signing
sha2 = { workspace = true, optional = true }  # SHA-256 for HMAC
aes-gcm = { workspace = true, optional = true }  # AES-256-GCM encryption

# Optional serialization formats
prost = { workspace = true, optional = true }  # Protobuf
bson = { workspace = true, optional = true }  # BSON

[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