[[bin]]
name = "acton-dx"
path = "src/bin/main.rs"
required-features = ["cli"]
[dependencies.Inflector]
features = ["heavyweight"]
optional = true
version = "0.11.4"
[dependencies.acton-reactive]
optional = true
version = "5"
[dependencies.anyhow]
version = "1"
[dependencies.argon2]
optional = true
version = "0.5"
[dependencies.askama]
optional = true
version = "0.14"
[dependencies.async-trait]
optional = true
version = "0.1"
[dependencies.aws-config]
optional = true
version = "1.8.11"
[dependencies.aws-sdk-sesv2]
optional = true
version = "1.82.0"
[dependencies.axum]
features = ["multipart"]
optional = true
version = "0.8"
[dependencies.axum-htmx]
features = ["auto-vary", "guards", "serde"]
optional = true
version = "0.8"
[dependencies.base64]
optional = true
version = "0.22.1"
[dependencies.bytes]
optional = true
version = "1.11.0"
[dependencies.cedar-policy]
optional = true
version = "4.3"
[dependencies.chrono]
features = ["serde"]
version = "0.4"
[dependencies.clamav-client]
features = ["tokio"]
optional = true
version = "2.2.0"
[dependencies.clap]
features = ["derive", "cargo"]
optional = true
version = "4"
[dependencies.console]
optional = true
version = "0.16"
[dependencies.convert_case]
optional = true
version = "0.9.0"
[dependencies.cron]
optional = true
version = "0.15.0"
[dependencies.deadpool-redis]
optional = true
version = "0.22"
[dependencies.dialoguer]
optional = true
version = "0.12"
[dependencies.dirs]
optional = true
version = "6.0.0"
[dependencies.figment]
features = ["toml", "env", "json"]
optional = true
version = "0.10"
[dependencies.futures-util]
optional = true
version = "0.3.31"
[dependencies.governor]
optional = true
version = "0.10.2"
[dependencies.hex]
optional = true
version = "0.4.3"
[dependencies.http]
optional = true
version = "1"
[dependencies.httpdate]
optional = true
version = "1.0.3"
[dependencies.hyper]
optional = true
version = "1"
[dependencies.image]
features = ["jpeg", "png", "gif", "webp"]
optional = true
version = "0.25.6"
[dependencies.indicatif]
optional = true
version = "0.18"
[dependencies.infer]
features = ["alloc"]
optional = true
version = "0.19.0"
[dependencies.kamadak-exif]
optional = true
version = "0.6.1"
[dependencies.lettre]
features = ["smtp-transport", "builder", "tokio1-native-tls"]
optional = true
version = "0.11.19"
[dependencies.mime]
optional = true
version = "0.3.17"
[dependencies.mime_guess]
optional = true
version = "2.0.5"
[dependencies.minijinja]
features = ["loader"]
optional = true
version = "2"
[dependencies.multer]
features = ["tokio-io"]
optional = true
version = "3.1.0"
[dependencies.notify]
optional = true
version = "7"
[dependencies.oauth2]
optional = true
version = "5.0.0"
[dependencies.once_cell]
optional = true
version = "1"
[dependencies.openidconnect]
optional = true
version = "4.0.1"
[dependencies.opentelemetry]
optional = true
version = "0.31"
[dependencies.opentelemetry-otlp]
features = ["grpc-tonic"]
optional = true
version = "0.31"
[dependencies.parking_lot]
optional = true
version = "0.12"
[dependencies.phf]
features = ["macros"]
optional = true
version = "0.11"
[dependencies.rand]
optional = true
version = "0.9"
[dependencies.redis]
optional = true
version = "0.32"
[dependencies.regex]
optional = true
version = "1.12.2"
[dependencies.reqwest]
features = ["json"]
optional = true
version = "0.12.24"
[dependencies.serde]
features = ["derive"]
version = "1"
[dependencies.serde_json]
version = "1"
[dependencies.sha2]
optional = true
version = "0.10"
[dependencies.similar]
optional = true
version = "2"
[dependencies.sqlx]
features = ["runtime-tokio", "postgres", "sqlite", "chrono", "uuid", "json"]
optional = true
version = "0.8"
[dependencies.thiserror]
optional = true
version = "2"
[dependencies.time]
features = ["macros"]
optional = true
version = "0.3"
[dependencies.tokio]
features = ["full"]
version = "1"
[dependencies.toml]
optional = true
version = "0.9"
[dependencies.tower]
optional = true
version = "0.5"
[dependencies.tower-http]
features = ["compression-full", "cors", "trace", "timeout", "limit"]
optional = true
version = "0.6"
[dependencies.tower-resilience]
optional = true
version = "0.3"
[dependencies.tracing]
optional = true
version = "0.1"
[dependencies.tracing-subscriber]
features = ["json", "env-filter"]
optional = true
version = "0.3"
[dependencies.ureq]
optional = true
version = "3.1.4"
[dependencies.uuid]
features = ["v4", "serde"]
optional = true
version = "1"
[dependencies.validator]
features = ["derive", "derive"]
optional = true
version = "0.20"
[dependencies.walkdir]
optional = true
version = "2"
[dev-dependencies.anyhow]
version = "1"
[dev-dependencies.axum-test]
version = "18.3"
[dev-dependencies.mockall]
version = "0.13"
[dev-dependencies.proptest]
version = "1"
[dev-dependencies.tempfile]
version = "3.23.0"
[dev-dependencies.tokio]
features = ["full", "test-util"]
version = "1"
[[example]]
name = "basic_server"
path = "examples/basic_server.rs"
[[example]]
name = "email_demo"
path = "examples/email_demo.rs"
[[example]]
name = "forms_demo"
path = "examples/forms_demo.rs"
[[example]]
name = "htmx_templates"
path = "examples/htmx_templates.rs"
[[example]]
name = "simple_htmx"
path = "examples/simple_htmx.rs"
[features]
aws-ses = ["htmx", "dep:aws-sdk-sesv2", "dep:aws-config"]
cedar = ["htmx", "dep:cedar-policy"]
clamav = ["htmx", "dep:clamav-client"]
cli = ["dep:clap", "dep:console", "dep:indicatif", "dep:dialoguer", "dep:walkdir", "dep:Inflector", "dep:ureq", "dep:convert_case", "dep:similar", "dep:minijinja", "dep:dirs"]
default = ["htmx", "cli", "postgres", "redis", "cedar"]
htmx = ["dep:axum", "dep:tower", "dep:tower-http", "dep:sqlx", "dep:figment", "dep:tracing", "dep:tracing-subscriber", "dep:tower-resilience", "dep:governor", "dep:acton-reactive", "dep:axum-htmx", "dep:askama", "dep:validator", "dep:argon2", "dep:rand", "dep:sha2", "dep:uuid", "dep:toml", "dep:thiserror", "dep:async-trait", "dep:http", "dep:hyper", "dep:once_cell", "dep:parking_lot", "dep:base64", "dep:cron", "dep:multer", "dep:bytes", "dep:mime", "dep:futures-util", "dep:infer", "dep:image", "dep:kamadak-exif", "dep:httpdate", "dep:lettre", "dep:oauth2", "dep:openidconnect", "dep:hex", "dep:time", "dep:reqwest", "dep:regex", "dep:dirs", "dep:mime_guess", "dep:minijinja", "dep:notify", "dep:phf"]
mysql = ["htmx", "sqlx/mysql"]
otel-metrics = ["htmx", "dep:opentelemetry", "dep:opentelemetry-otlp"]
postgres = ["htmx", "sqlx/postgres"]
redis = ["htmx", "dep:redis", "dep:deadpool-redis"]
sqlite = ["htmx", "sqlx/sqlite"]
[lib]
name = "acton_dx"
path = "src/lib.rs"
[lints.clippy]
cargo_common_metadata = "allow"
doc_markdown = "allow"
module_name_repetitions = "allow"
[lints.clippy.all]
level = "deny"
priority = -1
[lints.clippy.cargo]
level = "warn"
priority = -1
[lints.clippy.multiple_crate_versions]
level = "allow"
priority = 1
[lints.clippy.nursery]
level = "deny"
priority = -1
[lints.clippy.pedantic]
level = "deny"
priority = -1
[lints.rust]
missing_docs = "warn"
unsafe_code = "forbid"
warnings = "deny"
[package]
authors = ["Acton Contributors"]
autobenches = false
autobins = false
autoexamples = false
autolib = false
autotests = false
build = false
categories = ["web-programming::http-server", "command-line-utilities"]
description = "Acton DX - Developer experience focused web framework for HTMX applications in Rust"
edition = "2021"
homepage = "https://acton.dev"
keywords = ["web", "framework", "htmx", "axum", "hypermedia"]
license = "MIT"
name = "acton-dx"
readme = "README.md"
repository = "https://github.com/GovCraft/acton-dx"
rust-version = "1.83.0"
version = "1.0.0-beta.10"
[[test]]
name = "htmx_extractors"
path = "tests/htmx_extractors.rs"
[[test]]
name = "htmx_responders"
path = "tests/htmx_responders.rs"
[[test]]
name = "oauth2_integration"
path = "tests/oauth2_integration.rs"