[package]
name = "jaeb"
version = "0.4.0"
edition = "2024"
authors = ["linket <t.linke@pripares.com>"]
description = "simple snapshot-driven event bus"
license = "MIT"
repository = "https://github.com/LinkeTh/jaeb"
keywords = ["event-bus", "tokio", "async", "pubsub", "snapshot"]
categories = ["asynchronous", "concurrency"]
readme = "README.md"
rust-version = "1.94"
[lib]
path = "src/lib.rs"
[workspace]
members = [
".",
"jaeb-macros",
"examples/jaeb-demo",
"examples/summer-jaeb-demo",
"examples/basic-pubsub",
"examples/sync-handler",
"examples/closure-handlers",
"examples/subscription-lifecycle",
"examples/fire-once",
"examples/retry-strategies",
"examples/dead-letters",
"examples/panic-safety",
"examples/middleware",
"examples/backpressure",
"examples/graceful-shutdown",
"examples/concurrency-limit",
"examples/introspection",
"examples/macro-handlers",
"examples/jaeb-visualizer",
"examples/axum-integration",
"examples/observability-stack",
"summer-jaeb-macros",
"summer-jaeb",
]
[dependencies]
arc-swap = "1.7"
jaeb-macros = { version = "0.3.0", path = "jaeb-macros", optional = true }
metrics = { version = "0.24", optional = true }
tokio = { version = "1.51", features = ["rt", "rt-multi-thread", "sync", "macros", "time"] }
futures-util = { version = "0.3", default-features = false, features = ["std"] }
tracing = { version = "0.1", features = ["std", "log"], optional = true }
[features]
default = []
macros = ["dep:jaeb-macros"]
metrics = ["dep:metrics"]
test-utils = []
trace = ["dep:tracing"]
[dev-dependencies]
criterion = { version = "0.8", features = ["async_tokio"] }
tokio = { version = "1.51", features = ["full", "test-util"] }
async-trait = "0.1"
eventbuzz = { version = "0.2", features = ["asynchronous"] }
evno = "1.0.2"
eventador = { version = "0.0.18", features = ["async"] }
metrics-util = { version = "0.20.1", default-features = false, features = ["debugging"] }
proptest = "1.9.0"
tracing-test = "0.2"
tracing-subscriber = { version = "0.3", features = ["fmt"] }
[[bench]]
name = "throughput"
harness = false
[[bench]]
name = "comparison"
harness = false
[[bench]]
name = "evno_contention"
harness = false
[[test]]
name = "macro_dep_handlers"
required-features = ["macros"]