[package]
name = "webhooksmith"
description = "Webhook delivery for Rust backed by Postgres. Atomic outbox pattern, HMAC-SHA256 signing, automatic retry with exponential backoff, dead letter queue. No external services."
keywords = ["webhook", "outbox", "delivery", "postgres", "async"]
categories = ["web-programming", "asynchronous", "database"]
readme = "README.md"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
[dependencies]
tokio = { workspace = true }
sqlx = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
uuid = { workspace = true }
chrono = { workspace = true }
reqwest = { workspace = true }
hmac = { workspace = true }
sha2 = { workspace = true }
hex = { workspace = true }
thiserror = { workspace = true }
rand = { workspace = true }
subtle = { workspace = true }
url = { workspace = true }
tracing = { workspace = true }
futures = { workspace = true }
[dev-dependencies]
tokio = { workspace = true }
wiremock = "0.6"
futures = "0.3"
tracing-subscriber = { workspace = true }
axum = { workspace = true }
webhooksmith-axum = { path = "../webhooksmith-axum" }
[[example]]
name = "demo"
path = "examples/demo.rs"
[[example]]
name = "basic"
path = "examples/basic.rs"
[[example]]
name = "outbox"
path = "examples/outbox.rs"