[package]
edition = "2024"
rust-version = "1.85"
name = "tideway"
version = "0.7.9"
authors = ["JD"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A batteries-included Rust web framework built on Axum for building SaaS applications quickly"
documentation = "https://docs.rs/tideway"
readme = "README.md"
keywords = [
"web",
"framework",
"axum",
"api",
"async",
]
categories = ["web-programming::http-server"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/jordcodes/tideway-rs"
[features]
admin = ["chrono"]
auth = ["argon2"]
auth-breach = ["sha1"]
auth-mfa = [
"auth",
"totp-rs",
]
billing = [
"hex",
"secrecy",
"async-stripe",
]
billing-seaorm = [
"billing",
"database",
]
cache = ["moka"]
cache-redis = [
"redis",
"cache",
]
database = [
"sea-orm",
"sea-orm-migration",
"chrono",
]
database-sqlx = ["sqlx"]
default = [
"database",
"openapi",
"macros",
]
email = ["lettre"]
feature-gate-errors = []
feature-gate-warnings = []
jobs = ["chrono"]
jobs-redis = [
"redis",
"jobs",
]
macros = [
"tideway-macros",
"openapi",
]
metrics = ["prometheus"]
openapi = [
"utoipa",
"utoipa-axum",
"utoipa-swagger-ui",
]
organizations = []
organizations-billing = [
"organizations",
"billing",
]
organizations-seaorm = [
"organizations",
"database",
]
sessions = [
"cookie",
"hex",
]
test-auth-bypass = []
test-billing = []
test-organizations = ["organizations"]
validation = ["validator"]
websocket = ["dashmap"]
[lib]
name = "tideway"
path = "src/lib.rs"
[[example]]
name = "api_macro_example"
path = "examples/api_macro_example.rs"
[[example]]
name = "auth_flow"
path = "examples/auth_flow.rs"
[[example]]
name = "background_jobs"
path = "examples/background_jobs.rs"
[[example]]
name = "cors_example"
path = "examples/cors_example.rs"
[[example]]
name = "custom_database"
path = "examples/custom_database.rs"
[[example]]
name = "dev_mode"
path = "examples/dev_mode.rs"
[[example]]
name = "email_example"
path = "examples/email_example.rs"
required-features = ["email"]
[[example]]
name = "production_config"
path = "examples/production_config.rs"
[[example]]
name = "redis_cache"
path = "examples/redis_cache.rs"
[[example]]
name = "saas_app"
path = "examples/saas_app.rs"
[[example]]
name = "scheduled_jobs"
path = "examples/scheduled_jobs.rs"
[[example]]
name = "seaorm_auth"
path = "examples/seaorm_auth.rs"
required-features = [
"database",
"auth",
"auth-mfa",
]
[[example]]
name = "sessions_example"
path = "examples/sessions_example.rs"
[[example]]
name = "testing_example"
path = "examples/testing_example.rs"
[[example]]
name = "validation_example"
path = "examples/validation_example.rs"
[[example]]
name = "websocket_chat"
path = "examples/websocket_chat.rs"
[[example]]
name = "websocket_notifications"
path = "examples/websocket_notifications.rs"
[[test]]
name = "app_builder_test"
path = "tests/app_builder_test.rs"
[[test]]
name = "app_context_builder_test"
path = "tests/app_context_builder_test.rs"
[[test]]
name = "auth_extractor_cache_test"
path = "tests/auth_extractor_cache_test.rs"
[[test]]
name = "auth_integration_test"
path = "tests/auth_integration_test.rs"
[[test]]
name = "cors_tests"
path = "tests/cors_tests.rs"
[[test]]
name = "email_test"
path = "tests/email_test.rs"
[[test]]
name = "ensure_macro_test"
path = "tests/ensure_macro_test.rs"
[[test]]
name = "failure_scenarios_test"
path = "tests/failure_scenarios_test.rs"
[[test]]
name = "jobs_integration_test"
path = "tests/jobs_integration_test.rs"
[[test]]
name = "metrics_integration_test"
path = "tests/metrics_integration_test.rs"
[[test]]
name = "testing_app_test"
path = "tests/testing_app_test.rs"
[[bench]]
name = "overhead"
path = "benches/overhead.rs"
harness = false
[dependencies.anyhow]
version = "1.0"
[dependencies.argon2]
version = "0.5"
optional = true
[dependencies.async-stripe]
version = "0.41"
features = [
"runtime-tokio-hyper-rustls-webpki",
"checkout",
"billing",
]
optional = true
default-features = false
[dependencies.async-trait]
version = "0.1"
[dependencies.axum]
version = "0.8.6"
features = [
"multipart",
"ws",
]
[dependencies.base64]
version = "0.22"
[dependencies.chrono]
version = "0.4"
optional = true
[dependencies.config]
version = "0.14"
[dependencies.cookie]
version = "0.18"
features = ["private"]
optional = true
[dependencies.dashmap]
version = "6.1"
optional = true
[dependencies.fastrand]
version = "2.1"
[dependencies.futures]
version = "0.3"
[dependencies.governor]
version = "0.10"
[dependencies.hex]
version = "0.4"
optional = true
[dependencies.hmac]
version = "0.12"
[dependencies.jsonwebtoken]
version = "10"
features = ["aws_lc_rs"]
[dependencies.lettre]
version = "0.11"
features = [
"tokio1-rustls-tls",
"smtp-transport",
"builder",
]
optional = true
default-features = false
[dependencies.moka]
version = "0.12"
features = ["future"]
optional = true
[dependencies.prometheus]
version = "0.13"
optional = true
[dependencies.rand]
version = "0.8"
[dependencies.redis]
version = "0.27"
features = ["tokio-comp"]
optional = true
[dependencies.reqwest]
version = "0.12"
features = [
"json",
"rustls-tls",
]
default-features = false
[dependencies.sea-orm]
version = "1.1"
features = [
"sqlx-postgres",
"sqlx-sqlite",
"runtime-tokio-rustls",
"macros",
]
optional = true
[dependencies.sea-orm-migration]
version = "1.1"
optional = true
[dependencies.secrecy]
version = "0.10"
optional = true
[dependencies.serde]
version = "1.0.228"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.serde_urlencoded]
version = "0.7"
[dependencies.sha1]
version = "0.10"
optional = true
[dependencies.sha2]
version = "0.10"
[dependencies.sqlx]
version = "0.8"
features = [
"runtime-tokio-rustls",
"postgres",
"sqlite",
]
optional = true
[dependencies.subtle]
version = "2.5"
[dependencies.thiserror]
version = "2.0"
[dependencies.tideway-macros]
version = "0.1.0"
optional = true
[dependencies.tokio]
version = "1.48.0"
features = ["full"]
[dependencies.totp-rs]
version = "5.6"
features = [
"qr",
"gen_secret",
]
optional = true
[dependencies.tower]
version = "0.5"
[dependencies.tower-http]
version = "0.6.7"
features = [
"trace",
"request-id",
"util",
"cors",
"compression-gzip",
"compression-br",
"timeout",
]
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-subscriber]
version = "0.3"
features = [
"env-filter",
"json",
]
[dependencies.url]
version = "2.5"
[dependencies.urlencoding]
version = "2.1"
[dependencies.utoipa]
version = "5.3"
features = [
"axum_extras",
"chrono",
"uuid",
]
optional = true
[dependencies.utoipa-axum]
version = "0.2"
optional = true
[dependencies.utoipa-swagger-ui]
version = "9.0"
features = ["axum"]
optional = true
[dependencies.uuid]
version = "1.0"
features = [
"v4",
"serde",
]
[dependencies.validator]
version = "0.18"
features = ["derive"]
optional = true
[dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]