[package] name = "prest" description = "Progressive RESTful framework" version = "0.3.1" edition = "2021" resolver = "2" license = "MIT OR Apache-2.0" homepage = "https://prest.blog" repository = "https://github.com/edezhic/prest" keywords = ["fullstack", "progressive", "RESTful", "PWA"] categories = ["development-tools", "wasm", "web-programming"] [lib] path = "./lib.rs" [workspace] members = [ "build", "db/macro", "html/macro", "embed/macro", "embed/utils", "examples/databases/*", "examples/blog", "examples/llm-mistral", "examples/scraper", "examples/smart-contract", "examples/todo", "examples/todo-pwa", "examples/todo-pwa-auth", "examples/todo-pwa-auth-sync" ] [features] default = ["db", "embed", "html", "traces"] auth = ["tower-sessions", "axum-login", "openidconnect", "password-auth", "db"] db = ["gluesql", "prest-db-macro"] embed = ["prest-embed-macro", "prest-embed-utils", "hex"] html = ["prest-html-macro"] traces = ["tracing-subscriber", "tracing-web", "tower-http/trace", "axum/tracing", "ansi-to-html"] lazy-embed = ["embed", "prest-embed-macro/lazy-embed", "prest-embed-utils/lazy-embed"] webview = ["wry", "tao"] validator = ["axum-valid/full_validator"] validify = ["axum-valid/full_validify"] garde = ["axum-valid/full_garde"] [dependencies] prest-html-macro = { path = "html/macro", version = "0.1.0", optional = true } prest-embed-macro = { path = "embed/macro", version = "0.1.0", optional = true } prest-embed-utils = { path = "embed/utils", version = "0.1.0", optional = true } prest-db-macro = { path = "db/macro", version = "0.2.0", optional = true } anyhow = "1.0.77" thiserror = "1.0.56" async-trait = "0.1.75" itoa = "1" mime_guess = "2" tower = "0.4.13" futures = "0.3" once_cell = "1.18" tracing = "0.1.40" serde = { version = "1", features = ["derive"] } serde_json = "1" chrono = "0.4" time = { version = "0.3", features = ["wasm-bindgen"] } hex = { version = "0.4", optional = true } axum-htmx = { version = "0.5", features = ["serde"] } axum-valid = { version = "0.14", default-features = false, features = ["form", "json", "query", "422"] } toml = "0.8.8" semver = "1.0" ansi-to-html = { version = "0.2.1", optional = true } # host [target.'cfg(not(target_arch = "wasm32"))'.dependencies] axum = "0.7.4" tokio = { version = "1", features = ["rt", "rt-multi-thread", "net", "sync"] } tower-http = { version = "0.5.1", features = ["catch-panic", "compression-br", "limit", "normalize-path"] } dotenvy = "0.15" tower-livereload = "0.9.1" uuid = { version = "1.6", features = ["v4", "serde"] } axum-server = { version = "0.6", features = ["tls-rustls"] } gluesql = { version = "0.15", default-features = false, features = ["sled-storage", "shared-memory-storage"], optional = true } tracing-subscriber = { version = "0.3.18", features = ["fmt", "chrono", "env-filter"], optional = true } tower-sessions = { version = "0.9", optional = true } axum-login = { version = "0.12", optional = true } openidconnect = { version = "3.4", optional = true } password-auth = { version = "1", optional = true } wry = { version = "0.35", optional = true } tao = { version = "0.24", default-features = false, features = [ "rwh_05" ], optional = true } tokio_schedule = "0.3.1" directories = "5.0" sled = "0.34" russh = "0.43" russh-keys = "0.43" russh-sftp = "2.0.0-beta.2" rustls-acme = { version = "0.10", features = ["axum"] } # service worker [target.'cfg(target_arch = "wasm32")'.dependencies] axum = { version = "0.7.4", default-features = false, features = ["query", "form", "json", "matched-path", "original-uri"] } wasm-bindgen = "0.2.89" wasm-bindgen-futures = "0.4" js-sys = "0.3.58" console_error_panic_hook = "0.1.7" web-sys = { version = "0.3.64", features = ["console", "FetchEvent", "Request", "ReadableStream", "ReadableStreamDefaultReader", "Headers", "ResponseInit", "Response", "ServiceWorkerGlobalScope", "WorkerGlobalScope", "WorkerLocation"] } uuid = { version = "1.6", features = ["v4", "serde", "js"] } gluesql = { version = "0.15", default-features = false, features = ["shared-memory-storage"], optional = true } tracing-web = { version = "0.1.3", optional = true } tracing-subscriber = { version = "0.3.18", features = ["fmt", "time"], optional = true } [build-dependencies] prest-build = { path = "./build", version = "0.2", default-features = false }