tauri-runtime-blitz 0.1.2

Tauri runtime backed by Blitz and Boa
[package]
name = "tauri-runtime-blitz"
description = "Tauri runtime backed by Blitz and Boa"
version.workspace = true
edition.workspace = true
license.workspace = true
publish.workspace = true
homepage.workspace = true
repository.workspace = true

[dependencies]
anyrender_vello = { package = "ps-anyrender-vello", version = "^0.14.0" }
anyrender_vello_hybrid = { package = "ps-anyrender-vello-hybrid", version = "^0.10.0", optional = true }
style = { version = "0.20.0", package = "stylo" }
blitz-dom = { package = "ps-blitz-dom", version = "^0.3.0-beta.6", optional = true }
blitz-script = { package = "ps-blitz-script", version = "^0.3.0-beta.6", features = ["system-fonts"] }
blitz-control-protocol = { path = "../blitz-control-protocol", version = "0.1.2", optional = true }
anyrender = { package = "ps-anyrender", version = "^0.13.0" }
# Offscreen capture, behind `diagnostics` so a shipping build carries neither.
#
# The CPU renderer on purpose: capture must not need a GPU, a surface or a
# display server, or it stops working in the places it is most needed (CI, a
# headless Linux box, an Android target). It draws the same scene through the
# same `blitz-paint` entry point the window uses, so what it returns is the
# real frame rather than a second opinion about it.
anyrender_vello_cpu = { package = "ps-anyrender-vello-cpu", version = "^0.17.0", optional = true }
blitz-paint = { package = "ps-blitz-paint", version = "^0.3.0-beta.6", optional = true }
base64 = { version = "0.22", optional = true }
peniko = "0.6"

blitz-shell = { package = "ps-blitz-shell", version = "^0.3.0-beta.6", default-features = false, features = ["clipboard", "svg"] }
blitz-traits = { package = "ps-blitz-traits", version = "^0.3.0-beta.6", optional = true }
http = "1"
endpoint-libs = { version = "2.1.5", default-features = false, features = ["agent-control"], optional = true }
keyboard-types = { version = "0.7", optional = true }
raw-window-handle = "0.6"
serde = { version = "1", features = ["derive"], optional = true }
serde_json = { version = "1", optional = true }
tauri = { version = "=2.11.5", default-features = false }
tauri-runtime = "=2.11.3"
tauri-utils = "=2.9.3"
url = "2"
winit = "=0.31.0-beta.2"
tokio = { version = "1", features = ["io-util", "macros", "net", "rt", "sync"], optional = true }

[features]
default = ["agent-control"]
agent-control = ["blitz-shell/debug-control", "dep:blitz-control-protocol", "dep:blitz-dom", "dep:blitz-traits", "dep:endpoint-libs", "dep:keyboard-types", "dep:serde", "dep:serde_json", "dep:tokio"]
debug-control = ["blitz-script/debug-control", "blitz-shell/debug-control"]
diagnostics = [
    "agent-control",
    "debug-control",
    "dep:anyrender_vello_cpu",
    "dep:base64",
    "dep:blitz-paint",
]
# Swap the general-purpose Vello renderer for the lighter hybrid pipeline.
# UI is overwhelmingly rectangles and text, which Vello tessellates and bins
# through a compute pass built for arbitrary vector art. The hybrid backend
# does far less per primitive, which is the same bet GPUI makes.
hybrid-renderer = ["dep:anyrender_vello_hybrid"]
devtools = ["tauri-runtime/devtools"]
# Forwarded, not an empty flag. `WindowBuilder::transparent` is declared behind
# this feature in `tauri-runtime` and implemented behind it here, so enabling it
# on only one side leaves the impl carrying a method the trait does not declare:
# "method `transparent` is not a member of trait `WindowBuilder`". An empty
# feature here meant `--all-features` turned this on without turning it on for
# `tauri-runtime`, which is exactly that mismatch, and it is why this crate
# could not be packaged: crates.io verifies with every feature enabled.
macos-private-api = ["tauri/macos-private-api", "tauri-runtime/macos-private-api"]

[dev-dependencies]
tauri = { version = "=2.11.5", default-features = false, features = ["test"] }

[target.'cfg(target_os = "macos")'.dependencies]
window-vibrancy = "0.8.0"

# AppKit, for the window backdrop.
#
# `window_vibrancy::apply_liquid_glass` inserts its glass view as a *subview of
# the renderer's own view*, so the glass sits on top of the content and frosts
# the application. A window backdrop has to be a sibling behind the renderer, in
# the window's `contentView`, which needs the view hierarchy directly. Versions
# match what `window-vibrancy` already resolves so there is one copy of each.
[target.'cfg(target_os = "macos")'.dependencies.objc2]
version = "0.6"

[target.'cfg(target_os = "macos")'.dependencies.objc2-app-kit]
version = "0.3.2"
default-features = false
features = [
    "std",
    "objc2-core-foundation",
    "objc2-quartz-core",
    "NSColor",
    "NSGlassEffectView",
    "NSResponder",
    "NSUserInterfaceItemIdentification",
    "NSView",
    "NSVisualEffectView",
    "NSWindow",
]

[target.'cfg(target_os = "macos")'.dependencies.objc2-foundation]
version = "0.3"
default-features = false
features = ["std", "NSGeometry"]