[package] name = "velvet-web" version = "0.6.13" edition = "2021" authors = ["Raffaele Ragni "] license = "MIT OR Apache-2.0" description = "Wrapper stack for webapp apis" homepage = "https://github.com/raffaeleragni/velvet" repository = "https://github.com/raffaeleragni/velvet" documentation = "https://github.com/raffaeleragni/velvet/blob/master/README.md" readme = "README.md" keywords = ["webapp", "api", "microservice"] categories = ["web-programming", "web-programming::http-server"] include = ["/src", "/LICENSE-MIT", "/LICENSE-APACHE", "/templates/login.html", "/templates/register.html", "/templates/mail_confirm.txt", "/templates/mail_confirm.html", "/templates/confirm.html"] [features] #default = ["login", "sqlite"] login = ["auth", "dep:argon2", "dep:futures-core"] auth = ["dep:axum-extra", "dep:jsonwebtoken"] mysql = ["dep:sqlx", "sqlx/mysql"] postgres = ["dep:sqlx", "sqlx/postgres"] sqlite = ["dep:sqlx", "sqlx/sqlite"] # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] tokio = { version = "1", features = ["macros", "rt-multi-thread"] } serde = { version = "1", features = ["derive"] } axum = { version = "0.7", features = ["http2", "macros"] } axum-prometheus = "0.7" axum-server = { version = "0.7.1", features = ["rustls", "tls-rustls", "tokio-rustls", "rustls-pemfile"] } askama = { version = "0.12", features = ["with-axum"] } askama_axum = "0.4" sqlx = { version = "0.8", optional = true, features = ["runtime-tokio"] } dotenvy = "0.15" anyhow = "1" sentry = { version = "0.34", default-features = false, features = ["anyhow", "tower", "tracing", "rustls"] } sentry-tower = { version = "0.34", features = ["axum", "http"] } tracing = "0.1" valuable = { version = "0.1.0", features = ["derive", "valuable-derive"] } tracing-subscriber = { version = "0.3", features = ["json", "env-filter"] } reqwest = { version = "0.12", default-features = false, features = ["rustls-tls", "charset", "http2", "macos-system-configuration", "gzip", "brotli", "deflate", "zstd", "cookies", "json", "multipart", "stream"] } rust-embed = { version = "8.5", features = ["axum", "tokio"] } mime_guess = "2.0" tower-http = { version = "0.6.0", features = ["compression-full", "decompression-full"] } axum-extra = { optional = true, version = "0.9", features = ["cookie"] } jsonwebtoken = { optional = true, version = "9.3" } axum-test = "16.1.0" serial_test = "3.1.1" argon2 = { version = "0.5.3", optional = true, features = ["std"] } futures-core = { version = "0.3.31", optional = true } lettre = { version = "0.11", default-features = false, features = ["builder", "hostname", "pool", "rustls-tls", "smtp-transport", "tokio1-rustls-tls"] } rustls = "0.23" [[example]] name = "04_database" required-features = ["sqlite"] [[example]] name = "06_token" required-features = ["auth"] [[example]] name = "08_full" required-features = ["sqlite", "auth"] [[example]] name = "10_login" required-features = ["sqlite", "auth", "login"] [[example]] name = "12_login_mail" required-features = ["sqlite", "auth", "login"]