[package]
edition = "2024"
rust-version = "1.94"
name = "mailbridge"
version = "0.1.1"
build = false
include = [
"Cargo.lock",
"Cargo.toml",
"LICENSE",
"README.md",
"docs/**",
"examples/**",
"src/**",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Provider-neutral transactional email library for Rust services"
homepage = "https://github.com/boniface/mailbridge"
documentation = "https://docs.rs/mailbridge"
readme = "README.md"
keywords = [
"email",
"smtp",
"transactional",
"queue",
"mail",
]
categories = [
"api-bindings",
"email",
"web-programming",
]
license = "MIT"
repository = "https://github.com/boniface/mailbridge"
[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]
api = ["dep:reqwest"]
default = [
"hyvor-relay",
"api",
"rustls",
"queue-memory",
"rate-limit",
]
dotenv = ["dep:dotenvy"]
hyvor-relay = []
mailgun = []
native-tls = ["reqwest/native-tls"]
queue-memory = []
queue-postgres = [
"dep:sqlx",
"sqlx/postgres",
"sqlx/runtime-tokio",
"sqlx/tls-rustls",
]
queue-scylla = ["dep:scylla"]
queue-sqlite = [
"dep:sqlx",
"sqlx/sqlite",
"sqlx/runtime-tokio",
"sqlx/tls-rustls",
]
rate-limit = ["dep:governor"]
rustls = ["reqwest/rustls"]
sendgrid = []
sendpulse = []
smtp = ["dep:lettre"]
telemetry = ["dep:tracing"]
test-utils = []
[lib]
name = "mailbridge"
path = "src/lib.rs"
[[example]]
name = "queue_worker"
path = "examples/queue_worker.rs"
required-features = [
"hyvor-relay",
"api",
"queue-memory",
]
[[example]]
name = "send_http"
path = "examples/send_http.rs"
required-features = [
"hyvor-relay",
"api",
]
[dependencies.anyhow]
version = "1"
[dependencies.async-trait]
version = "0.1"
[dependencies.base64]
version = "0.22"
[dependencies.dotenvy]
version = "0.15"
optional = true
[dependencies.governor]
version = "0.10"
optional = true
[dependencies.lettre]
version = "0.11"
features = [
"tokio1-rustls-tls",
"smtp-transport",
"builder",
]
optional = true
default-features = false
[dependencies.reqwest]
version = "0.13"
features = ["json"]
optional = true
default-features = false
[dependencies.scylla]
version = "1"
optional = true
[dependencies.secrecy]
version = "0.10"
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.sqlx]
version = "0.9"
optional = true
default-features = false
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1"
features = [
"macros",
"rt-multi-thread",
"time",
"sync",
]
[dependencies.tracing]
version = "0.1"
optional = true
[dependencies.url]
version = "2"
[dependencies.uuid]
version = "1"
features = [
"v4",
"serde",
]
[dev-dependencies.tokio]
version = "1"
features = [
"macros",
"rt-multi-thread",
"time",
"sync",
"test-util",
]