[package]
name = "azumi"
version = "47.44.0"
edition = "2021"
rust-version = "1.70"
authors = ["DraconDev <dracsharp@gmail.com>"]
license = "AGPL-3.0-only"
description = "Server-rendered HTML framework for Rust. Client interactivity without JavaScript. HTMX alternative with compile-time validation."
repository = "https://github.com/DraconDev/azumi-live-ssr-framework"
keywords = ["html", "htmx", "ssr", "web-framework", "compile-time"]
categories = ["template-engine", "web-programming", "gui"]
readme = "README.md"

[workspace]
members = ["macros", "demo", "examples/todo"]
resolver = "2"

[features]
default = ["axum"]
schema = ["azumi-macros/schema"]
test-utils = ["dep:scraper"]
devtools = ["dep:notify", "dep:lru", "tokio/sync", "axum"]
axum = ["dep:axum", "dep:inventory", "dep:futures"]

[dependencies]
azumi-macros = { version = "8.0.0", path = "macros" }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
axum = { version = "0.8", features = ["ws"], optional = true }
inventory = { version = "0.3", optional = true }
scraper = { version = "0.18", optional = true }
hmac = "0.12"
sha2 = "0.10"
base64 = "0.22"
getrandom = "0.3"
fnv = "1.0"
thiserror = "2"
tokio = { version = "1.0", features = ["macros", "rt"] }
notify = { version = "6.1", optional = true }
lru = { version = "0.16", optional = true }
futures = { version = "0.3", optional = true }

[dev-dependencies]
# azumi = { version = "47", path = ".", features = ["test-utils"] }
trybuild = "1.0"
criterion = { version = "0.5", features = ["html_reports"] }
proptest = "1.5"
tower = "0.5"
http-body-util = "0.1"

[[bench]]
name = "escape"
harness = false

[[bench]]
name = "render"
harness = false

[[bench]]
name = "scope_css"
harness = false

[[bench]]
name = "full_page"
harness = false
