[package] name = "server" version = "0.1.0" edition = "2024" authors = ["Rustelo Contributors"] license = "MIT" description = "A modular Rust web application template built with Leptos, Axum, and optional components" documentation = "https://docs.rs/server" repository = "https://github.com/yourusername/rustelo" homepage = "https://rustelo.dev" readme = "../../README.md" keywords = ["rust", "web", "leptos", "axum", "template"] categories = ["web-programming", "template-engine"] [lib] crate-type = ["cdylib", "lib"] [dependencies] leptos = { workspace = true, features = ["ssr"] } leptos_router = { workspace = true } leptos_axum = { workspace = true } leptos_config = { workspace = true } leptos_meta = { workspace = true } serde = { workspace = true } serde_json = { workspace = true } shared = { workspace = true } tracing = { workspace = true } tracing-subscriber = { workspace = true, features = ["env-filter"] } toml = { workspace = true } fluent = { workspace = true } fluent-bundle = { workspace = true } unic-langid = { workspace = true } client = { path = "../client" } axum = { version = "0.8"} tokio = { version = "1", features = ["rt-multi-thread"]} tower = { version = "0.5.2"} tower-http = { version = "0.6.6", features = ["fs"]} dotenvy = "0.15" thiserror = "2.0.12" regex = { workspace = true } rand = "0.9.1" gloo-timers = "0.3" async-trait = "0.1" anyhow = "1.0" hex = "0.4" reqwest = { version = "0.12", features = ["json"] } rhai = { version = "1.22", features = ["serde", "only_i64", "no_float"] } # Email support lettre = { version = "0.11", features = ["tokio1-native-tls", "smtp-transport", "pool", "hostname", "builder"], optional = true } handlebars = { version = "6.3", optional = true } urlencoding = { version = "2.1", optional = true } # TLS Support (optional) axum-server = { version = "0.7", features = ["tls-rustls"], optional = true } rustls = { version = "0.23", optional = true } rustls-pemfile = { version = "2.2", optional = true } # Authentication & Authorization (optional) jsonwebtoken = { version = "9.3", optional = true } argon2 = { version = "0.5", optional = true } uuid = { version = "1.17", features = ["v4", "serde", "js"], optional = true } chrono = { version = "0.4", features = ["serde"], optional = true } oauth2 = { version = "5.0", optional = true } tower-sessions = { version = "0.14", optional = true } sqlx = { version = "0.8", features = ["runtime-tokio-rustls", "postgres", "sqlite", "chrono", "uuid", "migrate"], optional = true } tower-cookies = { version = "0.11", optional = true } time = { version = "0.3.41", features = ["serde"], optional = true } # 2FA Support (optional) totp-rs = { version = "5.7.0", optional = true } qrcode = { version = "0.14", features = ["svg"], optional = true } base32 = { version = "0.5", optional = true } sha2 = { version = "0.10", optional = true } base64 = { version = "0.22", optional = true } # Cryptography dependencies aes-gcm = { version = "0.10", optional = true } clap = { version = "4.5", features = ["derive"] } # Metrics dependencies prometheus = { version = "0.14", optional = true } # Content Management & Rendering (optional) pulldown-cmark = { version = "0.13.0", features = ["simd"], optional = true } syntect = { version = "5.2", optional = true } serde_yaml = { version = "0.9", optional = true } tempfile = { version = "3.20", optional = true } tera = { version = "1.20", optional = true } # Binary targets [[bin]] name = "server" path = "src/main.rs" [[bin]] name = "config_tool" path = "src/bin/config_tool.rs" [[bin]] name = "crypto_tool" path = "src/bin/crypto_tool.rs" [[bin]] name = "config_crypto_tool" path = "src/bin/config_crypto_tool.rs" [[bin]] name = "test_config" path = "src/bin/test_config.rs" [[bin]] name = "test_database" path = "src/bin/test_database.rs" [dev-dependencies] tempfile = "3.20" [features] default = ["auth", "content-db", "crypto", "email", "metrics", "examples"] hydrate = [] ssr = [] rbac = [ "auth" ] # Optional features tls = ["axum-server/tls-rustls", "rustls", "rustls-pemfile"] auth = [ "jsonwebtoken", "argon2", "aes-gcm", "uuid", "chrono", "oauth2", "tower-sessions", "sqlx", "totp-rs", "qrcode", "base32", "sha2", "base64", "tower-cookies", "time", "crypto" ] crypto = ["aes-gcm", "chrono"] content-db = [ "sqlx", "pulldown-cmark", "syntect", "serde_yaml", "tempfile", "uuid", "chrono", "tera" ] email = [ "lettre", "handlebars", "urlencoding" ] metrics = ["prometheus", "chrono"] examples = [] production = ["auth", "content-db", "crypto", "email", "metrics", "tls"] [package.metadata.docs.rs] # Configuration for docs.rs all-features = true rustdoc-args = ["--cfg", "docsrs"] # [features] # hydrate = ["leptos/hydrate"] # ssr = [ # "axum", # "tokio", # "tower", # "tower-http", # "leptos_axum", # "leptos/ssr", # "leptos_meta/ssr", # "leptos_router/ssr", # # "dep:tracing", # ] # [package.metadata.cargo-all-features] # denylist = ["axum", "tokio", "tower", "tower-http", "leptos_axum"] # skip_feature_sets = [["ssr", "hydrate"], []]