mailbridge 0.1.2

Provider-neutral transactional email library for Rust services
Documentation
[package]
name = "mailbridge"
version = "0.1.2"
edition = "2024"
rust-version = "1.94"
license = "MIT"
repository = "https://github.com/boniface/mailbridge"
homepage = "https://github.com/boniface/mailbridge"
documentation = "https://docs.rs/mailbridge"
description = "Provider-neutral transactional email library for Rust services"
readme = "README.md"
keywords = ["email", "smtp", "transactional", "queue", "mail"]
categories = ["api-bindings", "email", "web-programming"]
include = [
    "Cargo.lock",
    "Cargo.toml",
    "LICENSE",
    "README.md",
    "docs/**",
    "examples/**",
    "src/**",
]

[package.metadata.docs.rs]
no-default-features = true
features = [
    "hyvor-relay",
    "api",
    "rustls",
    "queue-memory",
    "rate-limit",
    "smtp",
    "telemetry",
    "queue-sqlite",
    "queue-postgres",
    "queue-scylla",
    "sendgrid",
    "sendpulse",
    "mailgun",
    "dotenv",
]

[features]
default = ["hyvor-relay", "api", "rustls", "queue-memory", "rate-limit"]
api = ["dep:reqwest"]
smtp = ["dep:lettre"]
hyvor-relay = []
sendgrid = []
sendpulse = []
mailgun = []
rustls = ["reqwest/rustls"]
native-tls = ["reqwest/native-tls"]
queue-memory = []
queue-sqlite = ["dep:sqlx", "sqlx/sqlite", "sqlx/runtime-tokio", "sqlx/tls-rustls"]
queue-postgres = ["dep:sqlx", "sqlx/postgres", "sqlx/runtime-tokio", "sqlx/tls-rustls"]
queue-scylla = ["dep:scylla"]
rate-limit = ["dep:governor"]
dotenv = ["dep:dotenvy"]
telemetry = ["dep:tracing"]
test-utils = []

[dependencies]
anyhow = "1"
async-trait = "0.1"
base64 = "0.22"
dotenvy = { version = "0.15", optional = true }
governor = { version = "0.10", optional = true }
lettre = { version = "0.11", optional = true, default-features = false, features = ["tokio1-rustls-tls", "smtp-transport", "builder"] }
reqwest = { version = "0.13", optional = true, default-features = false, features = ["json"] }
scylla = { version = "1", optional = true }
secrecy = "0.10"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
sqlx = { version = "0.9", optional = true, default-features = false }
thiserror = "2"
tokio = { version = "1", features = ["macros", "rt-multi-thread", "time", "sync"] }
tracing = { version = "0.1", optional = true }
url = "2"
uuid = { version = "1", features = ["v4", "serde"] }

[dev-dependencies]
tokio = { version = "1", features = ["macros", "rt-multi-thread", "time", "sync", "test-util"] }

[[example]]
name = "send_http"
required-features = ["hyvor-relay", "api"]

[[example]]
name = "queue_worker"
required-features = ["hyvor-relay", "api", "queue-memory"]