[package]
edition = "2021"
name = "webhooksmith"
version = "0.1.0"
authors = ["Biplab Das <biplabku@gmail.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Production-grade webhook delivery engine with transactional outbox, HMAC signing, and dead letter queue"
readme = "README.md"
keywords = [
"webhook",
"outbox",
"delivery",
"postgres",
"async",
]
categories = [
"web-programming",
"asynchronous",
"database",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/biplabku/webhooksmith"
[lib]
name = "webhooksmith"
path = "src/lib.rs"
[[example]]
name = "basic"
path = "examples/basic.rs"
[[example]]
name = "demo"
path = "examples/demo.rs"
[[example]]
name = "outbox"
path = "examples/outbox.rs"
[[test]]
name = "adversarial"
path = "tests/adversarial.rs"
[[test]]
name = "bombardment"
path = "tests/bombardment.rs"
[[test]]
name = "crud_and_ops"
path = "tests/crud_and_ops.rs"
[[test]]
name = "dns_rebinding"
path = "tests/dns_rebinding.rs"
[[test]]
name = "e2e"
path = "tests/e2e.rs"
[[test]]
name = "edge_cases"
path = "tests/edge_cases.rs"
[[test]]
name = "endpoint_lifecycle"
path = "tests/endpoint_lifecycle.rs"
[[test]]
name = "fanout"
path = "tests/fanout.rs"
[[test]]
name = "full_api_exercise"
path = "tests/full_api_exercise.rs"
[[test]]
name = "graceful_shutdown"
path = "tests/graceful_shutdown.rs"
[[test]]
name = "idempotency"
path = "tests/idempotency.rs"
[[test]]
name = "new_api"
path = "tests/new_api.rs"
[[test]]
name = "stress"
path = "tests/stress.rs"
[[test]]
name = "timeouts"
path = "tests/timeouts.rs"
[[test]]
name = "updated_at"
path = "tests/updated_at.rs"
[dependencies.chrono]
version = "0.4"
features = ["serde"]
[dependencies.futures]
version = "0.3"
[dependencies.hex]
version = "0.4"
[dependencies.hmac]
version = "0.12"
[dependencies.rand]
version = "0.8"
[dependencies.reqwest]
version = "0.12"
features = [
"json",
"rustls-tls",
"stream",
]
default-features = false
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.sha2]
version = "0.10"
[dependencies.sqlx]
version = "0.8"
features = [
"runtime-tokio-rustls",
"postgres",
"uuid",
"chrono",
"json",
"migrate",
]
[dependencies.subtle]
version = "2"
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1"
features = ["full"]
[dependencies.tracing]
version = "0.1"
[dependencies.url]
version = "2"
[dependencies.uuid]
version = "1"
features = [
"v4",
"serde",
]
[dev-dependencies.axum]
version = "0.7"
[dev-dependencies.futures]
version = "0.3"
[dev-dependencies.tokio]
version = "1"
features = ["full"]
[dev-dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
[dev-dependencies.wiremock]
version = "0.6"