distributed 1.7.4

CQRS/ES framework for Rust using Plain Old Rust Structs — append-only events, replay, snapshots, outbox, service bus, and pluggable infrastructure
Documentation
[workspace]
members = ["distributed_macros", "distributed_cli"]
resolver = "2"

[workspace.package]
version = "1.7.4"
edition = "2021"
license = "MIT"
repository = "https://github.com/patrickleet/distributed"

[workspace.dependencies.distributed_macros]
version = "1.7.4"
path = "distributed_macros"

[package]
name = "distributed"
version.workspace = true
edition.workspace = true
description = "CQRS/ES framework for Rust using Plain Old Rust Structs — append-only events, replay, snapshots, outbox, service bus, and pluggable infrastructure"
license.workspace = true
repository.workspace = true
readme = "README.md"
keywords = ["event-sourcing", "cqrs", "ddd", "aggregate", "domain-driven-design"]
categories = ["data-structures", "database"]

[lib]
path = "src/lib.rs"

[features]
default = ["emitter"]
emitter = ["dep:event-emitter-rs"]
http = ["dep:axum", "dep:reqwest", "dep:tokio"]
grpc = ["dep:tonic", "dep:tonic-prost", "dep:prost", "dep:tokio"]
postgres = ["dep:sqlx", "dep:tokio", "sqlx/postgres", "sqlx/runtime-tokio"]
sqlite = ["dep:sqlx", "dep:tokio", "sqlx/runtime-tokio", "sqlx/sqlite"]
nats = ["dep:async-nats", "dep:futures", "dep:tokio"]
rabbitmq = ["dep:lapin", "dep:futures", "dep:tokio"]
kafka = ["dep:rdkafka", "dep:tokio"]

[dependencies]
async-nats = { version = "0.49", optional = true }
axum = { version = "0.8", optional = true }
base64 = "0.22.1"
futures = { version = "0.3", optional = true }
lapin = { version = "4", optional = true }
rdkafka = { version = "0.39", features = ["cmake-build", "tokio"], optional = true }
reqwest = { version = "0.13", default-features = false, optional = true }
bitcode = { version = "0.6.9", features = ["serde"] }
event-emitter-rs = { version = "0.1.4", optional = true }
serde = { version = "1.0.210", features = ["derive"] }
serde_json = "1.0.128"
distributed_macros = { workspace = true }
sqlx = { version = "0.9", default-features = false, optional = true }
tonic = { version = "0.14", default-features = false, features = ["router", "transport", "codegen"], optional = true }
tonic-prost = { version = "0.14", optional = true }
prost = { version = "0.14", optional = true }
tokio = { version = "1", features = ["rt-multi-thread", "net", "macros", "time"], optional = true }

[build-dependencies]
tonic-build = { version = "0.14", default-features = false, features = ["transport"] }

[dev-dependencies]
axum = "0.8"
prost = "0.14"
reqwest = { version = "0.13", features = ["json"] }
serde_json = "1.0"
tokio = { version = "1", features = ["full"] }
tokio-stream = "0.1"
tonic = { version = "0.14", default-features = false, features = ["router", "transport", "codegen"] }