[package]
edition = "2024"
name = "vyuh"
version = "0.2.2"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Vyuh web framework for Axum and SQLx with handler-first APIs"
documentation = "https://docs.rs/vyuh"
readme = "README.md"
license = "MIT"
repository = "https://github.com/vivsh/vyuh"
[features]
argon2 = ["dep:argon2"]
cors = ["tower-http/cors"]
default = ["postgres"]
mysql = ["sqlx/mysql"]
postgres = ["sqlx/postgres"]
sqlite = ["sqlx/sqlite"]
[lib]
name = "vyuh"
path = "src/lib.rs"
[[example]]
name = "auth_basic"
path = "examples/auth_basic.rs"
[[example]]
name = "auth_roles_openapi"
path = "examples/auth_roles_openapi.rs"
[[example]]
name = "commands_basic"
path = "examples/commands_basic.rs"
[[example]]
name = "commands_reindex"
path = "examples/commands_reindex.rs"
[[example]]
name = "commands_site"
path = "examples/commands_site.rs"
[[example]]
name = "db_basic"
path = "examples/db_basic.rs"
[[example]]
name = "db_raw_statement"
path = "examples/db_raw_statement.rs"
[[example]]
name = "db_sqlx"
path = "examples/db_sqlx.rs"
[[example]]
name = "db_transactions"
path = "examples/db_transactions.rs"
[[example]]
name = "db_writes"
path = "examples/db_writes.rs"
[[example]]
name = "emitters_cron"
path = "examples/emitters_cron.rs"
[[example]]
name = "emitters_direct"
path = "examples/emitters_direct.rs"
[[example]]
name = "emitters_periodic"
path = "examples/emitters_periodic.rs"
[[example]]
name = "emitters_pgnotify"
path = "examples/emitters_pgnotify.rs"
[[example]]
name = "logging_basic"
path = "examples/logging_basic.rs"
[[example]]
name = "middlewares_basic"
path = "examples/middlewares_basic.rs"
[[example]]
name = "middlewares_slashes"
path = "examples/middlewares_slashes.rs"
[[example]]
name = "openapi_basic"
path = "examples/openapi_basic.rs"
[[example]]
name = "openapi_responses"
path = "examples/openapi_responses.rs"
[[example]]
name = "routes_basic"
path = "examples/routes_basic.rs"
[[example]]
name = "routes_direct"
path = "examples/routes_direct.rs"
[[example]]
name = "routes_reverse"
path = "examples/routes_reverse.rs"
[[example]]
name = "routes_validation"
path = "examples/routes_validation.rs"
[[example]]
name = "services_basic"
path = "examples/services_basic.rs"
[[example]]
name = "services_direct"
path = "examples/services_direct.rs"
[[example]]
name = "services_facade"
path = "examples/services_facade.rs"
[[example]]
name = "services_worker"
path = "examples/services_worker.rs"
[[example]]
name = "signals_basic"
path = "examples/signals_basic.rs"
[[example]]
name = "signals_direct"
path = "examples/signals_direct.rs"
[[example]]
name = "signals_multiple_handlers"
path = "examples/signals_multiple_handlers.rs"
[[example]]
name = "signals_scheduled"
path = "examples/signals_scheduled.rs"
[[example]]
name = "tasks_basic"
path = "examples/tasks_basic.rs"
[[example]]
name = "tasks_concurrency"
path = "examples/tasks_concurrency.rs"
[[example]]
name = "tasks_direct"
path = "examples/tasks_direct.rs"
[[example]]
name = "tasks_mysql"
path = "examples/tasks_mysql.rs"
[[example]]
name = "tasks_sleep"
path = "examples/tasks_sleep.rs"
[[example]]
name = "tasks_sqlite"
path = "examples/tasks_sqlite.rs"
[[example]]
name = "tasks_suspend_resume"
path = "examples/tasks_suspend_resume.rs"
[[example]]
name = "templates_assets"
path = "examples/templates_assets.rs"
[[example]]
name = "templates_basic"
path = "examples/templates_basic.rs"
[[example]]
name = "templates_config"
path = "examples/templates_config.rs"
[[example]]
name = "templates_datetime"
path = "examples/templates_datetime.rs"
[[example]]
name = "templates_route"
path = "examples/templates_route.rs"
[[test]]
name = "auth"
path = "tests/auth.rs"
[[test]]
name = "emitters"
path = "tests/emitters.rs"
[[test]]
name = "passwords"
path = "tests/passwords.rs"
[[test]]
name = "request_data_docs"
path = "tests/request_data_docs.rs"
[[test]]
name = "services"
path = "tests/services.rs"
[[test]]
name = "task_stores"
path = "tests/task_stores.rs"
[[test]]
name = "validatable"
path = "tests/validatable.rs"
[[test]]
name = "validation_routes"
path = "tests/validation_routes.rs"
[[test]]
name = "validators"
path = "tests/validators.rs"
[dependencies.argon2]
version = "0.5"
optional = true
[dependencies.axum]
version = "0.8.4"
features = [
"macros",
"ws",
"multipart",
"http2",
]
[dependencies.axum-extra]
version = "0.10.1"
features = [
"typed-header",
"query",
"multipart",
"form",
"cookie",
"cookie-private",
"cookie-signed",
]
[dependencies.axum-test]
version = "17.3.0"
[dependencies.base64]
version = "0.21"
[dependencies.blake3]
version = "1.8.2"
[dependencies.bytes]
version = "1.8"
[dependencies.chrono]
version = "0.4.41"
features = ["serde"]
[dependencies.chrono-tz]
version = "0.10"
[dependencies.cron]
version = "0.12"
[dependencies.dotenvy]
version = "0.15.7"
[dependencies.either]
version = "1.15.0"
[dependencies.futures]
version = "0.3.31"
[dependencies.garde]
version = "0.22.1"
[dependencies.http-serde]
version = "2.1.1"
[dependencies.indexmap]
version = "2.10.0"
features = ["serde"]
[dependencies.jsonwebtoken]
version = "9.3.1"
[dependencies.mime_guess]
version = "2.0.5"
[dependencies.minijinja]
version = "2.11.0"
features = ["loader"]
[dependencies.notify]
version = "^8.1"
[dependencies.once_cell]
version = "1.21.3"
features = ["parking_lot"]
[dependencies.openapiv3]
version = "2.2.0"
[dependencies.openapiv3_1]
version = "0.1.3"
[dependencies.parking_lot]
version = "0.12.5"
[dependencies.percent-encoding]
version = "2.3.2"
[dependencies.rand]
version = "0.9.1"
features = ["serde"]
[dependencies.regex]
version = "1.12.2"
[dependencies.ring]
version = "0.16"
[dependencies.rust-silos]
version = "^0.3"
[dependencies.schemars]
version = "1.0.4"
[dependencies.serde]
version = "1.0.219"
features = [
"derive",
"rc",
"serde_derive",
]
[dependencies.serde_json]
version = "1.0.140"
features = [
"indexmap",
"raw_value",
"preserve_order",
]
[dependencies.serde_urlencoded]
version = "0.7"
[dependencies.smallvec]
version = "1.13"
[dependencies.sqlx]
version = "^0.8.6"
features = [
"chrono",
"postgres",
"runtime-tokio",
"uuid",
"json",
]
[dependencies.strum]
version = "0.27.1"
features = [
"derive",
"strum_macros",
]
[dependencies.sysinfo]
version = "0.33"
[dependencies.thiserror]
version = "2.0.12"
[dependencies.time]
version = "0.3.41"
[dependencies.tokio]
version = "1.46.1"
features = ["full"]
[dependencies.tokio-stream]
version = "0.1"
features = ["sync"]
[dependencies.tokio-util]
version = "0.7.18"
[dependencies.tower]
version = "0.5.2"
[dependencies.tower-http]
version = "0.6.2"
features = [
"catch-panic",
"compression-full",
"cors",
"fs",
"trace",
]
[dependencies.tracing]
version = "0.1.41"
[dependencies.tracing-appender]
version = "0.2"
[dependencies.tracing-log]
version = "0.2"
[dependencies.tracing-subscriber]
version = "0.3.19"
features = [
"env-filter",
"json",
"time",
"ansi",
]
[dependencies.twox-hash]
version = "1.6"
[dependencies.url]
version = "2.5.4"
[dependencies.uuid]
version = "1.17.0"
features = [
"v4",
"v7",
"serde",
]
[dependencies.vyuh-macros]
version = "0.2.1"
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.tokio]
version = "1.46.1"
features = [
"full",
"test-util",
]