[package]
name = "rustango"
description = "Django-shaped web framework for Rust: ORM, migrations, auto-admin, multi-tenancy, audit log."
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
documentation.workspace = true
keywords.workspace = true
categories.workspace = true
exclude = ["examples/", "tests/"]
[lints]
workspace = true
[features]
default = ["postgres", "admin", "config", "forms"]
postgres = ["sqlx/postgres"]
config = ["dep:toml"]
forms = []
csrf = ["forms", "dep:axum", "dep:base64", "dep:cookie", "dep:rand", "dep:tower"]
admin = [
"forms",
"csrf",
"dep:axum",
"dep:tera",
"dep:base64",
"dep:http",
"dep:http-body-util",
"dep:serde_urlencoded",
"dep:tokio",
]
tenancy = [
"admin",
"runtime",
"dep:async-trait",
"dep:argon2",
"dep:cookie",
"dep:hmac",
"dep:password-hash",
"dep:rand",
"dep:rpassword",
"dep:serde_urlencoded",
"dep:sha2",
"dep:subtle",
"dep:tokio",
"dep:tower",
]
runtime = ["dep:tracing-subscriber"]
[dependencies]
rustango-macros = { version = "0.17.4", path = "../rustango-macros" }
chrono = { workspace = true }
indexmap = { workspace = true }
inventory = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
sqlx = { workspace = true }
thiserror = { workspace = true }
tracing = { workspace = true }
uuid = { workspace = true }
toml = { workspace = true, optional = true }
axum = { workspace = true, optional = true }
base64 = { workspace = true, optional = true }
http = { workspace = true, optional = true }
http-body-util = { workspace = true, optional = true }
tera = { workspace = true, optional = true }
argon2 = { workspace = true, optional = true }
async-trait = { workspace = true, optional = true }
cookie = { workspace = true, optional = true }
hmac = { workspace = true, optional = true }
password-hash = { workspace = true, optional = true }
rand = { workspace = true, optional = true }
rpassword = { workspace = true, optional = true }
serde_urlencoded = { workspace = true, optional = true }
sha2 = { workspace = true, optional = true }
subtle = { workspace = true, optional = true }
tokio = { workspace = true, optional = true }
tower = { workspace = true, optional = true }
tracing-subscriber = { version = "0.3", default-features = false, features = ["fmt", "env-filter"], optional = true }
[dev-dependencies]
tokio = { workspace = true }
chrono = { workspace = true }
uuid = { workspace = true }
serde_json = { workspace = true }
tower = { workspace = true }
http-body-util = { workspace = true }
axum = { workspace = true }
base64 = { workspace = true }
dotenvy = { workspace = true }