[workspace] resolver = "2" members = [ "packages/dioxus", "packages/dioxus-lib", "packages/core", "packages/core-types", "packages/cli", "packages/cli-opt", "packages/core-types", "packages/core-macro", "packages/config-macro", "packages/router-macro", "packages/extension", "packages/router", "packages/html", "packages/html-internal-macro", "packages/hooks", "packages/web", "packages/ssr", "packages/desktop", "packages/mobile", "packages/interpreter", "packages/liveview", "packages/autofmt", "packages/check", "packages/cli-config", "packages/cli", "packages/config-macro", "packages/core-macro", "packages/core-types", "packages/core", "packages/desktop", "packages/devtools-types", "packages/devtools", "packages/dioxus-lib", "packages/dioxus", "packages/document", "packages/extension", "packages/fullstack", "packages/fullstack-hooks", "packages/fullstack-protocol", "packages/generational-box", "packages/history", "packages/hooks", "packages/html-internal-macro", "packages/html", "packages/interpreter", "packages/lazy-js-bundle", "packages/liveview", "packages/mobile", "packages/router-macro", "packages/router", "packages/rsx-hotreload", "packages/rsx-rosetta", "packages/rsx", "packages/server-macro", "packages/signals", "packages/ssr", "packages/lazy-js-bundle", "packages/cli-config", "packages/devtools", "packages/devtools-types", "packages/isrg", "packages/rsx-hotreload", "packages/const-serialize", "packages/const-serialize-macro", "packages/dx-wire-format", "packages/logger", "packages/config-macros", "packages/native", "packages/asset-resolver", "packages/depinfo", "packages/server", # Playwright tests "packages/playwright-tests/liveview", "packages/playwright-tests/web", "packages/playwright-tests/fullstack", "packages/playwright-tests/suspense-carousel", "packages/playwright-tests/nested-suspense", # manganis "packages/manganis/manganis", "packages/manganis/manganis-core", "packages/manganis/manganis-macro", # wasm-split "packages/wasm-split/wasm-split", "packages/wasm-split/wasm-split-macro", "packages/wasm-split/wasm-split-cli", "packages/wasm-split/wasm-used", # subsecond "packages/subsecond/subsecond", "packages/subsecond/subsecond-types", "packages/subsecond/subsecond-tests/cross-tls-crate", "packages/subsecond/subsecond-tests/cross-tls-crate-dylib", "packages/subsecond/subsecond-tests/cross-tls-test", # Full project examples "example-projects/fullstack-hackernews", "example-projects/ecommerce-site", "example-projects/wifi-scanner", "example-projects/file-explorer", # Simple examples that require a crate "examples/tailwind", "examples/pwa", "examples/fullstack-hello-world", "examples/fullstack-router", "examples/fullstack-streaming", "examples/fullstack-desktop", "examples/fullstack-auth", "examples/fullstack-websockets", "examples/wgpu-texture", # Playwright tests "packages/playwright-tests/liveview", "packages/playwright-tests/web", "packages/playwright-tests/web-routing", "packages/playwright-tests/web-hash-routing", "packages/playwright-tests/barebones-template", "packages/playwright-tests/fullstack", "packages/playwright-tests/fullstack-mounted", "packages/playwright-tests/fullstack-routing", "packages/playwright-tests/suspense-carousel", "packages/playwright-tests/nested-suspense", "packages/playwright-tests/cli-optimization", "packages/playwright-tests/wasm-split-harness", "packages/playwright-tests/default-features-disabled", ] [workspace.package] version = "0.7.0-alpha.1" # dependencies that are shared across packages [workspace.dependencies] dioxus = { path = "packages/dioxus", version = "0.7.0-alpha.1" } dioxus-lib = { path = "packages/dioxus-lib", version = "0.7.0-alpha.1", default-features = false } dioxus-core = { path = "packages/core", version = "0.7.0-alpha.1" } dioxus-core-types = { path = "packages/core-types", version = "0.7.0-alpha.1" } dioxus-core-macro = { path = "packages/core-macro", version = "0.7.0-alpha.1" } dioxus-config-macro = { path = "packages/config-macro", version = "0.7.0-alpha.1" } dioxus-router = { path = "packages/router", version = "0.7.0-alpha.1" } dioxus-router-macro = { path = "packages/router-macro", version = "0.7.0-alpha.1" } dioxus-document = { path = "packages/document", version = "0.7.0-alpha.1", default-features = false } dioxus-history = { path = "packages/history", version = "0.7.0-alpha.1", default-features = false } dioxus-html = { path = "packages/html", version = "0.7.0-alpha.1", default-features = false } dioxus-html-internal-macro = { path = "packages/html-internal-macro", version = "0.7.0-alpha.1" } dioxus-hooks = { path = "packages/hooks", version = "0.7.0-alpha.1" } dioxus-web = { path = "packages/web", version = "0.7.0-alpha.1", default-features = false } dioxus-isrg = { path = "packages/isrg", version = "0.7.0-alpha.1" } dioxus-ssr = { path = "packages/ssr", version = "0.7.0-alpha.1", default-features = false } dioxus-desktop = { path = "packages/desktop", version = "0.7.0-alpha.1", default-features = false } dioxus-mobile = { path = "packages/mobile", version = "0.7.0-alpha.1" } dioxus-interpreter-js = { path = "packages/interpreter", version = "0.7.0-alpha.1" } dioxus-liveview = { path = "packages/liveview", version = "0.7.0-alpha.1" } dioxus-autofmt = { path = "packages/autofmt", version = "0.7.0-alpha.1" } dioxus-check = { path = "packages/check", version = "0.7.0-alpha.1" } dioxus-rsx = { path = "packages/rsx", version = "0.7.0-alpha.1" } dioxus-rsx-hotreload = { path = "packages/rsx-hotreload", version = "0.7.0-alpha.1" } dioxus-rsx-rosetta = { path = "packages/rsx-rosetta", version = "0.7.0-alpha.1" } dioxus-signals = { path = "packages/signals", version = "0.7.0-alpha.1" } dioxus-cli-config = { path = "packages/cli-config", version = "0.7.0-alpha.1" } dioxus-cli-opt = { path = "packages/cli-opt", version = "0.7.0-alpha.1" } dioxus-devtools = { path = "packages/devtools", version = "0.7.0-alpha.1" } dioxus-devtools-types = { path = "packages/devtools-types", version = "0.7.0-alpha.1" } dioxus-server = { path = "packages/server", version = "0.7.0-alpha.1" } dioxus-fullstack = { path = "packages/fullstack", version = "0.7.0-alpha.1" } dioxus-fullstack-hooks = { path = "packages/fullstack-hooks", version = "0.7.0-alpha.1" } dioxus-fullstack-protocol = { path = "packages/fullstack-protocol", version = "0.7.0-alpha.1" } dioxus_server_macro = { path = "packages/server-macro", version = "0.7.0-alpha.1", default-features = false } dioxus-dx-wire-format = { path = "packages/dx-wire-format", version = "0.7.0-alpha.1" } dioxus-logger = { path = "packages/logger", version = "0.7.0-alpha.1" } dioxus-native = { path = "packages/native", version = "0.7.0-alpha.1" } dioxus-asset-resolver = { path = "packages/asset-resolver", version = "0.7.0-alpha.1" } dioxus-config-macros = { path = "packages/config-macros", version = "0.7.0-alpha.1" } const-serialize = { path = "packages/const-serialize", version = "0.7.0-alpha.1" } const-serialize-macro = { path = "packages/const-serialize-macro", version = "0.7.0-alpha.1" } generational-box = { path = "packages/generational-box", version = "0.7.0-alpha.1" } lazy-js-bundle = { path = "packages/lazy-js-bundle", version = "0.7.0-alpha.1" } # subsecond subsecond-types = { path = "packages/subsecond/subsecond-types", version = "0.7.0-alpha.1" } subsecond = { path = "packages/subsecond/subsecond", version = "0.7.0-alpha.1" } # manganis manganis = { path = "packages/manganis/manganis", version = "0.7.0-alpha.1" } manganis-core = { path = "packages/manganis/manganis-core", version = "0.7.0-alpha.1" } manganis-macro = { path = "packages/manganis/manganis-macro", version = "0.7.0-alpha.1" } # wasm-split wasm-splitter = { path = "packages/wasm-split/wasm-split", version = "0.7.0-alpha.1" } wasm-split-macro = { path = "packages/wasm-split/wasm-split-macro", version = "0.7.0-alpha.1" } wasm-split-cli = { path = "packages/wasm-split/wasm-split-cli", version = "0.7.0-alpha.1" } wasm-split-harness = { path = "packages/playwright-tests/wasm-split-harness", version = "0.7.0-alpha.1" } wasm-used = { path = "packages/wasm-split/wasm-used", version = "0.7.0-alpha.1" } depinfo = { path = "packages/depinfo", version = "0.7.0-alpha.1" } warnings = { version = "0.2.1" } # a fork of pretty please for tests - let's get off of this if we can! prettier-please = { version = "0.3.0", features = ["verbatim"] } anyhow = "1.0.97" clap = { version = "4.5.31" } askama_escape = "0.13.0" tracing = "0.1.41" tracing-futures = "0.2.5" tracing-subscriber = { version = "0.3.19", default-features = false } toml = "0.8" tokio = "1.43" tokio-util = { version = "0.7.13" } tokio-stream = { version = "0.1.17" } slab = "0.4.9" slotmap = { version = "1.0.7", features = ["serde"] } futures = "0.3.31" futures-channel = "0.3.31" futures-util = { version = "0.3", default-features = false } rustc-hash = "2.1.1" wasm-bindgen = "0.2.100" wasm-bindgen-futures = "0.4.50" js-sys = "0.3.77" web-sys = { version = "0.3.77", default-features = false } html_parser = "0.7.0" thiserror = "2.0.12" prettyplease = { version = "0.2.30", features = ["verbatim"] } const_format = "0.2.34" cargo_toml = { version = "0.21.0" } tauri-utils = { version = "2.2.0" } tauri-bundler = { version = "2.2.4" } lru = "0.13.0" async-trait = "0.1.87" axum = { version = "0.8.1", default-features = false } axum-server = { version = "0.7.1", default-features = false } server_fn = { version = "0.8.2", default-features = false } server_fn_macro = { version = "0.8.2" } tower = "0.5.2" http = "1.2.0" notify = { version = "8.0.0" } tower-http = "0.6.2" hyper = "1.6.0" hyper-rustls = { version = "0.27.5", default-features = false, features = [ "native-tokio", "http1", "http2", "tls12", "logging", "ring", ] } rustls = { version = "0.23.23", default-features = false, features = ["logging", "std", "tls12", "ring"] } serde_json = "1.0.140" serde = "1.0.218" syn = "2.0" quote = "1.0" proc-macro2 = "1.0" axum_session = "0.16.0" axum_session_auth = "0.16.0" axum_session_sqlx = "0.5.0" axum-extra = "0.10.0" reqwest = "0.12.12" owo-colors = "4.2.0" ciborium = "0.2.2" base64 = "0.22.1" uuid = "1.15.1" convert_case = "0.8.0" tungstenite = { version = "0.26.2" } tokio-tungstenite = { version = "0.26.2" } gloo-timers = "0.3.0" fluent-uri = { version = "0.3.2", features = ["serde"] } internment = { version = "0.8.6" } proc-macro2-diagnostics = { version = "0.10", default-features = false } env_logger = "0.11.6" chrono = { version = "0.4.40" } gloo = { version = "0.11.0" } gloo-utils = { version = "0.2.0" } rustversion = "1.0.20" rand = "0.8" longest-increasing-subsequence = "0.1.0" trybuild = "1.0" dirs = "6.0.0" cargo-config2 = "0.1.32" criterion = { version = "0.5" } cargo_metadata = "0.19.2" parking_lot = "0.12.3" tracing-wasm = "0.2.1" console_error_panic_hook = "0.1.7" base16 = "0.2.1" digest = "0.10.7" sha2 = "0.10.8" walrus = { version = "0.23.3", features = ["parallel"] } id-arena = "2.2.1" async-compression = { version = "0.4.20", features = ["futures-io", "gzip", "brotli"] } getrandom = { version = "0.2.0" } async-once-cell = { version = "0.5.4" } rayon = "1.10.0" wasmparser = "0.226.0" itertools = "0.14.0" object = { version = "0.36.0" } bincode = "1.3.3" inventory = { version = "0.3.5" } macro-string = "0.1.4" walkdir = "2.5.0" url = "2.3.1" separator = "0.4.1" pretty_assertions = "1.4.0" serde_repr = "0.1" hyper-util = "0.1.10" krates = { version = "0.19.0" } libloading = "0.8.6" libc = "0.2.170" memmap2 = "0.9.5" memfd = "0.6.4" # desktop wry = { version = "0.45.0", default-features = false } tao = { version = "0.33.0", features = ["rwh_05"] } infer = "0.19.0" dunce = "1.0.5" percent-encoding = "2.3.1" global-hotkey = "0.7.0" rfd = { version = "0.15.2", default-features = false } muda = "0.16.1" cocoa = "0.26" core-foundation = "0.10.0" objc = { version = "0.2.7", features = ["exception"] } objc_id = "0.1.1" tray-icon = "0.20.0" open = "5.1.2" # web gloo-dialogs = "0.2.0" # tui stuff ansi-to-tui = "7.0" ansi-to-html = "0.2.1" path-absolutize = "3.1" crossterm = { version = "0.29.0" } ratatui = { version = "0.29.0" } shell-words = "1.1.0" color-eyre = "0.6.3" # native keyboard-types = { version = "0.7", default-features = false } winit = { version = "0.30.2", features = ["rwh_06"] } [profile.dev] # our release profile should be fast to compile and fast to run # when we ship our CI builds, we turn on LTO which improves perf leftover by turning on incremental [profile.release] incremental = true # crank up the opt level for wasm-split-cli in dev mode # important here that lto is on and the debug symbols are present (since they're used by wasm-opt)a [profile.wasm-split-release] inherits = "release" opt-level = 'z' lto = true debug = true # a profile for running the CLI that's also incremental [profile.cli-release-dev] inherits = "release" opt-level = 3 incremental = true # crank up walrus since it's quite slow in dev mode [profile.dev.package.walrus] opt-level = 3 [profile.release-max-opt] inherits = "release" lto = true codegen-units = 1 # Disable debug assertions to check the released path of core and other packages, but build without optimizations to keep build times quick [profile.release-unoptimized] inherits = "dev" debug-assertions = false incremental = true [profile.wasm-dev] inherits = "dev" opt-level = 1 [profile.server-dev] inherits = "dev" [profile.android-dev] inherits = "dev" # This is a "virtual package" # It is not meant to be published, but is used so "cargo run --example XYZ" works properly [package] name = "dioxus-examples" authors = ["Jonathan Kelley"] edition = "2021" description = "Top level crate for the Dioxus repository" license = "MIT OR Apache-2.0" repository = "https://github.com/DioxusLabs/dioxus/" homepage = "https://dioxuslabs.com" documentation = "https://dioxuslabs.com" keywords = ["dom", "ui", "gui", "react", "wasm"] rust-version = "1.80.0" publish = false version = "0.7.0-alpha.1" [dependencies] reqwest = { workspace = true, features = ["json"], optional = true } ciborium = { workspace = true, optional = true } base64 = { workspace = true, optional = true } http-range = { version = "0.1.5", optional = true } wgpu = { version = "0.19", optional = true } ouroboros = { version = "*", optional = true } wasm-splitter = { workspace = true, package = "wasm-split" } [dev-dependencies] dioxus = { workspace = true, features = ["router"] } dioxus-ssr = { workspace = true } futures-util = { workspace = true } separator = { workspace = true } serde = { workspace = true, features = ["derive"] } serde_json = { workspace = true } rand = { workspace = true, features = ["small_rng"] } form_urlencoded = "1.2.0" async-std = "1.12.0" web-time = "1.1.0" [target.'cfg(target_arch = "wasm32")'.dev-dependencies] getrandom = { workspace = true, features = ["js"] } tokio = { version = "1.43", default-features = false, features = ["sync", "macros", "io-util", "rt", "time"] } [target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies] tokio = { version = "1.43", features = ["full"] } # force vendored openssl on android [target.'cfg(target_os = "android")'.dev-dependencies] openssl = { version = "0.10", features = ["vendored"] } # To make most examples faster to compile, we split out assets and http-related stuff # This trims off like 270 dependencies, leading to a significant speedup in compilation time [features] default = ["desktop"] desktop = ["dioxus/desktop"] native = ["dioxus/native"] liveview = ["dioxus/liveview"] fullstack = ["dioxus/fullstack"] server = ["dioxus/server"] mobile = ["dioxus/mobile"] web = ["dioxus/web"] http = ["dep:reqwest", "dep:http-range"] gpu = ["dep:ouroboros", "dep:wgpu"] [[example]] name = "login_form" required-features = ["http"] doc-scrape-examples = true [[example]] name = "dog_app" required-features = ["http"] doc-scrape-examples = true [[example]] name = "video_stream" required-features = ["http", "desktop"] doc-scrape-examples = true [[example]] name = "suspense" required-features = ["http", "desktop"] doc-scrape-examples = true [[example]] name = "weather_app" required-features = ["http"] doc-scrape-examples = true [[example]] name = "image_generator_openai" required-features = ["http"] doc-scrape-examples = true [[example]] name = "hash_fragment_state" required-features = ["ciborium", "base64"] doc-scrape-examples = true [[example]] name = "backgrounded_futures" required-features = ["desktop"] doc-scrape-examples = true [[example]] name = "calculator_mutable" required-features = ["desktop"] doc-scrape-examples = true [[example]] name = "calculator" required-features = ["desktop"] doc-scrape-examples = true [[example]] name = "clock" doc-scrape-examples = true [[example]] name = "crm" required-features = ["desktop"] doc-scrape-examples = true [[example]] name = "custom_html" required-features = ["desktop"] doc-scrape-examples = true [[example]] name = "custom_menu" required-features = ["desktop"] doc-scrape-examples = true [[example]] name = "dynamic_asset" required-features = ["desktop"] doc-scrape-examples = true [[example]] name = "errors" required-features = ["desktop"] doc-scrape-examples = true [[example]] name = "future" doc-scrape-examples = true [[example]] name = "hydration" required-features = ["desktop"] doc-scrape-examples = true [[example]] name = "multiwindow" required-features = ["desktop"] doc-scrape-examples = true [[example]] name = "overlay" required-features = ["desktop"] doc-scrape-examples = true [[example]] name = "popup" required-features = ["desktop"] doc-scrape-examples = true [[example]] name = "read_size" required-features = ["desktop"] doc-scrape-examples = true [[example]] name = "shortcut" required-features = ["desktop"] doc-scrape-examples = true [[example]] name = "streams" doc-scrape-examples = true [[example]] name = "visible" doc-scrape-examples = true [[example]] name = "window_event" required-features = ["desktop"] doc-scrape-examples = true [[example]] name = "window_focus" required-features = ["desktop"] doc-scrape-examples = true [[example]] name = "window_zoom" required-features = ["desktop"] doc-scrape-examples = true [[example]] name = "wgpu_child_window" required-features = ["desktop", "gpu"] [[example]] name = "control_focus" doc-scrape-examples = true [[example]] name = "eval" doc-scrape-examples = true [[example]] name = "logging" doc-scrape-examples = true