[package]
edition = "2024"
name = "outbox-core"
version = "0.1.2"
authors = ["Suzdaltsev Denis <suzdaltsevdenis@icloud.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Core traits and logic for modular transactional outbox pattern in Rust"
documentation = "https://docs.rs/outbox-core"
readme = "README.md"
keywords = [
"outbox",
"transactional",
"event-driven",
]
categories = [
"database",
"asynchronous",
]
license = "MIT"
repository = "https://github.com/Vancoola/oxide-outbox"
resolver = "2"
[features]
default = []
full = ["sqlx"]
[lib]
name = "outbox_core"
path = "src/lib.rs"
[dependencies.async-trait]
version = "0.1.89"
[dependencies.serde_json]
version = "1.0.149"
[dependencies.sqlx]
version = "0.8.6"
features = [
"postgres",
"runtime-tokio",
"macros",
"uuid",
"time",
]
optional = true
[dependencies.thiserror]
version = "2.0.18"
[dependencies.time]
version = "0.3.46"
features = ["serde"]
[dependencies.tokio]
version = "1.49.0"
features = [
"macros",
"rt-multi-thread",
"sync",
"time",
]
[dependencies.tracing]
version = "0.1.44"
[dependencies.uuid]
version = "1.20.0"
features = ["v4"]
[dev-dependencies.mockall]
version = "0.14.0"
[dev-dependencies.rstest]
version = "0.26.1"
[lints.clippy]
enum_glob_use = "deny"
explicit_iter_loop = "warn"
must_use_candidate = "allow"
panic = "deny"
pedantic = "warn"
perf = "warn"
redundant_closure_for_method_calls = "warn"
todo = "warn"
unreachable = "warn"
unwrap_used = "deny"