[package]
name = "rustango"
description = "A Django-inspired ORM + admin + multi-tenancy for Rust. One crate, opt in via features."
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",
]
tenancy = [
"admin",
"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",
]
[dependencies]
rustango-macros = { version = "0.8.0", 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 }
[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 }
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
dotenvy = { workspace = true }
[[example]]
name = "project_layout"
path = "examples/project_layout/main.rs"
[[example]]
name = "multitenant_demo"
path = "examples/multitenant_demo.rs"
required-features = ["tenancy"]
[[example]]
name = "tenancy_manage"
path = "examples/tenancy_manage.rs"
required-features = ["tenancy"]