[package]
edition = "2024"
rust-version = "1.94"
name = "runique"
version = "3.0.3"
authors = ["Itsuki"]
build = false
exclude = [
"tests/*",
"**/*.db",
"**/*.sqlite",
"**/target/*",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A Django-inspired web framework for Rust with ORM, templates, and comprehensive security middleware"
homepage = "https://runique.io/"
documentation = "https://runique.io/docs/en"
readme = "README.md"
keywords = [
"web",
"framework",
"django",
"sea-orm",
"runique",
]
categories = ["web-programming::http-server"]
license = "MIT"
repository = "https://github.com/seb-alliot/runique"
resolver = "2"
[package.metadata.docs.rs]
default-target = "x86_64-unknown-linux-gnu"
features = ["all-databases"]
[features]
acme = [
"dep:instant-acme",
"dep:axum-server",
"dep:rustls",
]
all-databases = [
"sqlite",
"postgres",
"mysql",
"derive_form/all-databases",
]
big-pk = [
"derive_form/big-pk",
"runique_dsl/big-pk",
]
default = ["orm"]
mariadb = ["mysql"]
mysql = [
"orm",
"sea-orm/sqlx-mysql",
"sea-orm/runtime-tokio-rustls",
"derive_form/mysql",
]
orm = [
"dep:sea-orm",
"dep:sea-orm-migration",
]
pk-uuid = [
"derive_form/pk-uuid",
"runique_dsl/pk-uuid",
"sea-orm/with-uuid",
]
postgres = [
"orm",
"sea-orm/sqlx-postgres",
"sea-orm/runtime-tokio-rustls",
"derive_form/postgres",
]
sqlite = [
"orm",
"sea-orm/sqlx-sqlite",
"sea-orm/runtime-tokio-rustls",
"derive_form/sqlite",
]
test-utils = ["orm"]
[lib]
name = "runique"
path = "src/lib.rs"
[[bin]]
name = "runique"
path = "src/bin/runique.rs"
[dependencies.ammonia]
version = "4.1.4"
[dependencies.anyhow]
version = "1.0"
[dependencies.argon2]
version = "0.6"
[dependencies.async-trait]
version = "0.1"
[dependencies.axum]
version = "0.8.9"
features = [
"macros",
"form",
"multipart",
]
[dependencies.axum-server]
version = "0.7"
features = ["tls-rustls"]
optional = true
[dependencies.base64]
version = "0.23"
[dependencies.bcrypt]
version = "0.19.2"
[dependencies.byte]
version = "0.2.7"
[dependencies.chrono]
version = "0.4.45"
features = ["serde"]
[dependencies.clap]
version = "4.6.4"
features = ["derive"]
[dependencies.country]
version = "0.5.0"
[dependencies.crossterm]
version = "0.29.0"
[dependencies.derive_form]
version = "3.0.0"
[dependencies.dialoguer]
version = "0.12"
[dependencies.dotenvy]
version = "0.15"
[dependencies.dyn-clone]
version = "1.0.20"
[dependencies.fancy-regex]
version = "0.19.0"
[dependencies.form_urlencoded]
version = "1"
[dependencies.futures-util]
version = "0.3.33"
[dependencies.glob]
version = "0.3"
[dependencies.hex]
version = "0.4"
[dependencies.hmac]
version = "0.13"
[dependencies.html-escape]
version = "0.2"
[dependencies.http-body-util]
version = "0.1"
[dependencies.image]
version = "0.25.10"
features = ["avif"]
[dependencies.indexmap]
version = "2.14.2"
features = ["serde"]
[dependencies.instant-acme]
version = "0.8.5"
features = ["rcgen"]
optional = true
[dependencies.lettre]
version = "0.11.22"
features = [
"tokio1",
"tokio1-native-tls",
"builder",
]
[dependencies.password-hash]
version = "0.6.1"
[dependencies.phone_number]
version = "0.1.1"
[dependencies.postal-code]
version = "0.3.0"
[dependencies.proc-macro2]
version = "1"
features = ["span-locations"]
[dependencies.pulldown-cmark]
version = "0.13.4"
[dependencies.quote]
version = "1"
[dependencies.rand]
version = "0.10.3"
[dependencies.regex]
version = "1.13"
[dependencies.rpassword]
version = "7.5.4"
[dependencies.runique_dsl]
version = "0.1.0"
[dependencies.rust_decimal]
version = "1.43.0"
features = ["serde-float"]
[dependencies.rustls]
version = "0.23"
features = ["ring"]
optional = true
[dependencies.scrypt]
version = "0.12.0"
features = [
"phc",
"getrandom",
]
[dependencies.sea-orm]
version = "=2.0.4"
optional = true
[dependencies.sea-orm-migration]
version = "=2.0.4"
optional = true
[dependencies.sea-query]
version = "1.0.1"
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.serde_urlencoded]
version = "0.7"
[dependencies.sha2]
version = "0.11"
[dependencies.subtle]
version = "2"
[dependencies.syn]
version = "3.0.6"
features = [
"full",
"visit",
]
[dependencies.tera]
version = "2.1"
[dependencies.tera-contrib]
version = "0.3.0"
features = [
"urlencode",
"slug",
"date",
"json",
"filesize_format",
"regex",
"rand",
]
[dependencies.thiserror]
version = "2.0.19"
[dependencies.time]
version = "=0.3.55"
[dependencies.tokio]
version = "1"
features = ["full"]
[dependencies.tower]
version = "0.5.3"
features = ["util"]
[dependencies.tower-http]
version = "0.7.1"
features = [
"fs",
"util",
"trace",
"timeout",
"compression-full",
"set-header",
"cors",
]
[dependencies.tower-sessions]
version = "0.15.0"
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-appender]
version = "0.2"
[dependencies.tracing-futures]
version = "0.2.5"
[dependencies.tracing-subscriber]
version = "0.3"
features = [
"env-filter",
"json",
]
[dependencies.url]
version = "2.5.8"
[dependencies.urlencoding]
version = "2.1.3"
[dependencies.uuid]
version = "1.24.0"
features = [
"v4",
"v7",
]
[dependencies.validator]
version = "0.21.0"
features = ["derive"]
[dependencies.walkdir]
version = "2.5.0"
[dev-dependencies.reqwest]
version = "0.13.2"
features = [
"json",
"rustls",
"cookies",
"form",
]
[dev-dependencies.serial_test]
version = "3"
[dev-dependencies.syn]
version = "3.0.6"
features = [
"full",
"visit",
]
[dev-dependencies.tracing-test]
version = "0.2"