ps-dioxus-native 0.7.2

Native renderer for Dioxus based on blitz
[package]
# Published as `ps-*` because `dioxus-native` on crates.io is DioxusLabs', and
# this is a fork built on this repository's engine rather than theirs. The
# `[lib]` name below stays `dioxus_native`, so every path is unchanged.
name = "ps-dioxus-native"
version = "0.7.2"
authors = ["Jonathan Kelley", "Nico Burns"]
edition = "2024"
description = "Native renderer for Dioxus based on blitz"
license = "MIT OR Apache-2.0"
repository = "https://github.com/pathscale/ps-blitz"
homepage = "https://dioxuslabs.com/learn/0.7/getting_started"
keywords = ["dom", "ui", "gui", "react"]

[lib]
name = "dioxus_native"

[features]
default = ["accessibility", "hot-reload", "net", "html", "svg", "system-fonts", "clipboard", "file-dialog", "vello-hybrid", "woff", "apple-font-embolden"]
prelude = ["dep:dioxus-core-macro", "dep:dioxus-hooks", "dep:dioxus-signals", "dep:dioxus-stores", "dep:manganis"]

# DOM features
svg = ["blitz-dom/svg", "blitz-paint/svg"]
floats = ["blitz-dom/floats"]
autofocus = ["blitz-dom/autofocus"]
system-fonts = ["blitz-dom/system-fonts"]
# complex-scripts: enable dictionary-based line-breaking
complex-scripts = ["blitz-dom/complex-scripts"]
# WOFF/WOFF2 decoder. Default-on so wasm callers (which can't use system fonts)
# can bundle compressed fonts without extra setup.
woff = ["blitz-dom/woff"]

# Shell Features
clipboard = ["blitz-shell/clipboard"]
file-dialog = ["blitz-shell/file-dialog"]
accessibility = ["blitz-shell/accessibility", "blitz-dom/accessibility"]
data-uri = ["blitz-shell/data-uri"]

# Renderer features
vello = ["dep:anyrender_vello", "dep:wgpu_context"]
vello-hybrid = ["dep:anyrender_vello_hybrid", "dep:wgpu_context"]
skia = ["dep:anyrender_skia"]
skia-pixels = ["skia-raster-base", "anyrender_skia/pixels_window_renderer"]
skia-softbuffer = ["skia-raster-base", "anyrender_skia/softbuffer_window_renderer"]
skia-raster-base = ["dep:anyrender_skia"]
vello-cpu = ["vello-cpu-pixels"]
vello-cpu-pixels = ["vello-cpu-base", "anyrender_vello_cpu/pixels_window_renderer"]
vello-cpu-softbuffer = ["vello-cpu-base", "anyrender_vello_cpu/softbuffer_window_renderer"]
vello-cpu-base = ["dep:anyrender_vello_cpu"]

font-embolden = ["blitz-paint/font-embolden"]
apple-font-embolden = ["blitz-paint/apple-font-embolden"]
scrollbars = ["blitz-paint/scrollbars"]

# Other features
# No-op on wasm32 (blitz_net::Provider needs tokio's threaded runtime); launch_cfg
# falls back to the in-process DioxusNativeNetProvider there.
net = ["dep:tokio", "dep:blitz-net"]
html = ["dep:blitz-html"]

# Dev
hot-reload = ["dep:dioxus-devtools"]

# Debug/Logging
log-times = ["log-phase-times", "log-frame-times"]
log-phase-times = ["blitz-dom/log-phase-times"]
log-frame-times = [
  "anyrender_vello_cpu?/log_frame_times",
  "anyrender_vello?/log_frame_times",
  "anyrender_vello_hybrid?/log_frame_times",
  "anyrender_skia?/log_frame_times",
]
tracing = ["dep:tracing", "dioxus-native-dom/tracing", "blitz-shell/tracing", "blitz-dom/tracing", "blitz-html/tracing", "blitz-net/tracing"]

[dependencies]
# Blitz dependencies
blitz-dom = { workspace = true, features = ["custom-widget"] }
blitz-html = { workspace = true, optional = true }
blitz-net = { workspace = true, optional = true }
blitz-paint = { workspace = true, optional = true, features = ["custom-widget"] }
blitz-traits = { workspace = true }
blitz-shell = { workspace = true }

# AnyRender dependencies
anyrender = { workspace = true }
peniko = { workspace = true }
anyrender_vello = { workspace = true, optional = true}
anyrender_vello_hybrid = { workspace = true, optional = true}
anyrender_vello_cpu = { workspace = true, optional = true}
anyrender_skia = { workspace = true, optional = true}
wgpu_context = { workspace = true, optional = true}

# DioxusLabs dependencies
dioxus-core = { workspace = true }
dioxus-html = { workspace = true }
dioxus-native-dom = { workspace = true }
dioxus-asset-resolver = { workspace = true, features = ["native"] }
dioxus-history = { workspace = true }
dioxus-document = { workspace = true }
dioxus-cli-config = { workspace = true }

# Dioxus hot reload
dioxus-devtools = { workspace = true, optional = true }

# Dioxus prelude
dioxus-hooks = { workspace = true, optional = true }
dioxus-signals = { workspace = true, optional = true }
dioxus-stores = { workspace = true, optional = true }
dioxus-core-macro = { workspace = true, optional = true }
manganis = { workspace = true, features = ["dioxus"], optional = true }

# Windowing & Input
winit = { workspace = true }
keyboard-types = { workspace = true }

# IO & Networking
tokio = { workspace = true, features = ["rt"], optional = true }
webbrowser = { workspace = true }

# Other dependencies
tracing = { workspace = true, optional = true }
rustc-hash = { workspace = true }
futures-util = { workspace = true }
cfg-if = "1.0.4"
slotmap = { workspace = true }

[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
tokio = { workspace = true, features = ["rt-multi-thread"], optional = true }

[target.'cfg(target_os = "android")'.dependencies]
android-activity = { version = "0.6", default-features = false }

[target.'cfg(all(target_os = "ios", target_abi = "sim"))'.dependencies]
anyrender_vello_cpu = { workspace = true, features = ["pixels_window_renderer"]}

[package.metadata.docs.rs]
all-features = true