[package] name = "prest" description = "Progressive RESTful framework" version = "0.5.1" edition = "2021" resolver = "2" license = "MIT OR Apache-2.0" homepage = "https://prest.blog" repository = "https://github.com/edezhic/prest" authors = ["Egor Dezhic "] keywords = ["fullstack", "progressive", "RESTful", "PWA"] categories = ["development-tools", "wasm", "web-programming"] [lib] path = "./lib.rs" [workspace] members = [ "build", "cotton", "db/macro", "embed/macro", "embed/utils", "html/macro", "init", "serde_derive_fork", "examples/bench", "examples/blog", "examples/databases/*", "examples/llm-mistral", "examples/scraping", "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-core", "gluesql-shared-memory-storage", "prest-db-macro"] embed = ["prest-embed-macro", "prest-embed-utils", "hex"] html = ["prest-html-macro"] traces = ["tracing-subscriber", "tracing-appender", "tracing-web", "ansi-to-html"] webview = ["wry", "tao"] experimental = [] [dependencies] prest-embed-macro = { path = "embed/macro", version = "0.3.0", optional = true } prest-embed-utils = { path = "embed/utils", version = "0.2.0", optional = true } prest-html-macro = { path = "html/macro", version = "0.3.0", optional = true } prest-db-macro = { path = "db/macro", version = "0.4.0", optional = true } prest-init-macro = { path = "init", version = "0.1.0" } prest-serde-derive-fork = { path = "serde_derive_fork", version = "1.0.216" } thiserror = "2" async-trait = "0.1.81" itoa = "1" mime_guess = "2" tower = "0.5" futures = "0.3" tracing = "0.1.40" serde = "1.0.216" serde_json = "1" bitcode = { version = "0.6", features = ["serde"] } chrono = "0.4" time = { version = "0.3", features = ["wasm-bindgen"] } hex = { version = "0.4", optional = true } axum-htmx = { version = "0.6", features = ["serde"] } semver = { version = "1.0", features = ["serde"] } ansi-to-html = { version = "0.2", optional = true } pin-project-lite = "0.2" iter-enum = "1" gluesql-core = { version = "0.16.3", default-features = false, optional = true } ordered-float = { version = "4", features = ["serde"] } async-oneshot-channel = "0.1" getrandom = { version = "0.2", features = ["js"] } # host [target.'cfg(not(target_arch = "wasm32"))'.dependencies] axum = "0.7.9" tokio = { version = "1", features = ["rt", "rt-multi-thread", "net", "sync", "signal"] } tower-http = { version = "0.6.2", features = ["catch-panic", "compression-br", "limit", "normalize-path"] } dotenvy = "0.15" tower-livereload = "0.9.5" uuid = { version = "1.11", features = ["v4", "v7", "serde"] } axum-server = { version = "0.7", features = ["tls-rustls"] } tracing-subscriber = { version = "0.3.18", features = ["fmt", "chrono", "env-filter", "json"], optional = true } tracing-appender = { version = "0.2", optional = true } tower-sessions = { version = "0.13", optional = true } axum-login = { version = "0.16", optional = true } openidconnect = { version = "3.5", 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 = "1.0.0-alpha.124" russh = "0.48" russh-keys = "0.48.1" russh-sftp = "2.0.6" rustls-acme = { version = "0.12", features = ["axum"] } rev_buf_reader = "0.3.0" async-broadcast = "0.7" sysinfo = "0.32" # service worker [target.'cfg(target_arch = "wasm32")'.dependencies] axum = { version = "0.7.9", default-features = false, features = ["query", "form", "json", "matched-path", "original-uri"] } wasm-bindgen = "0.2.93" wasm-bindgen-futures = "0.4" js-sys = "0.3.70" console_error_panic_hook = "0.1.7" web-sys = { version = "0.3.70", features = ["console", "FetchEvent", "Request", "ReadableStream", "ReadableStreamDefaultReader", "Headers", "ResponseInit", "Response", "ServiceWorkerGlobalScope", "WorkerGlobalScope", "WorkerLocation"] } uuid = { version = "1.6", features = ["v4", "v7", "serde", "js"] } tracing-web = { version = "0.1.3", optional = true } tracing-subscriber = { version = "0.3.18", features = ["fmt", "time"], optional = true } gluesql-shared-memory-storage = { version = "0.16.3", optional = true } [build-dependencies] prest-build = { path = "./build", version = "0.4", default-features = false, features = ["typescript", "sass"] }