[package]name = "gpui"version = "0.2.2"edition.workspace = trueauthors = ["Nathan Sobo <nathan@zed.dev>"]description = "Zed's GPU-accelerated UI framework"repository = "https://github.com/zed-industries/zed"publish = truelicense = "Apache-2.0"homepage = "https://gpui.rs"readme = "README.md"keywords = ["desktop", "gui", "immediate"]categories = ["gui"] [lints]workspace = true [features]default = ["font-kit", "wayland", "x11", "windows-manifest"]test-support = [ "leak-detection", "collections/test-support", "http_client/test-support", "wayland", "x11", "proptest",]bench = ["test-support", "dep:criterion", "dep:hdrhistogram"]inspector = ["gpui_macros/inspector"]leak-detection = ["backtrace"]wayland = []x11 = [ "scap?/x11",]screen-capture = [ "scap",]windows-manifest = ["dep:embed-resource"]input-latency-histogram = ["dep:hdrhistogram"]profiler = [] [lib]path = "src/gpui.rs"doctest = false [dependencies]accesskit.workspace = trueanyhow.workspace = trueasync-task.workspace = truebacktrace = { workspace = true, optional = true }bitflags.workspace = true collections.workspace = truecriterion = { workspace = true, optional = true }ctor.workspace = truederive_more.workspace = trueetagere.workspace = truefutures.workspace = truefutures-concurrency.workspace = truegpui_macros.workspace = truegpui_shared_string.workspace = truehttp_client.workspace = trueimage.workspace = trueinventory.workspace = trueitertools.workspace = truelog.workspace = truenum_cpus = "1.13"parking = "2.0.0"parking_lot.workspace = truepostage.workspace = trueproptest = { workspace = true, optional = true }chrono.workspace = trueprofiling.workspace = truerand.workspace = trueraw-window-handle.workspace = trueregex.workspace = truerefineable.workspace = truescheduler.workspace = trueresvg.workspace = trueusvg.workspace = truettf-parser = "0.25"util_macros.workspace = trueschemars.workspace = trueseahash = "4.1"serde.workspace = trueserde_json.workspace = trueslotmap.workspace = truesmallvec.workspace = trueasync-channel.workspace = truestacksafe.workspace = truestrum.workspace = truesum_tree.workspace = truetaffy = "=0.12.2"thiserror.workspace = truegpui_util.workspace = truehdrhistogram = { workspace = true, optional = true }waker-fn = "1.2.0"lyon = "1.0"pin-project = "1.1.10"spin = "0.10.0"pollster.workspace = trueurl.workspace = trueuuid.workspace = trueweb-time.workspace = trueheapless.workspace = true [target.'cfg(target_family = "wasm")'.dependencies]getrandom = { version = "0.3.4", features = ["wasm_js"] }uuid = { workspace = true, features = ["js"] } [target.'cfg(target_os = "macos")'.dependencies]block.workspace = truecocoa.workspace = truecocoa-foundation.workspace = truecore-foundation.workspace = truecore-foundation-sys.workspace = truecore-graphics.workspace = truecore-video.workspace = truecore-text.workspace = true# WARNING: If you change this, you must also publish a new version of zed-font-kit to crates.iofont-kit = { git = "https://github.com/zed-industries/font-kit", rev = "94b0f28166665e8fd2f53ff6d268a14955c82269", package = "zed-font-kit", version = "0.14.1-zed", optional = true }foreign-types.workspace = truelog.workspace = truemedia.workspace = trueobjc.workspace = trueobjc2 = { workspace = true, optional = true }objc2-metal = { version = "0.3", optional = true }mach2.workspace = true#TODO: replace with "objc2"metal.workspace = true [target.'cfg(any(target_os = "linux", target_os = "freebsd", target_os = "macos"))'.dependencies]pathfinder_geometry.workspace = true [target.'cfg(any(target_os = "linux", target_os = "freebsd", target_os = "windows"))'.dependencies]scap = { workspace = true, optional = true } [target.'cfg(target_os = "windows")'.dependencies]windows = { workspace = true, features = ["Win32_Foundation", "Win32_System_Power"] } [dev-dependencies]backtrace.workspace = truecollections = { workspace = true, features = ["test-support"] }env_logger.workspace = truegpui_platform = { workspace = true, features = ["font-kit", "wayland", "x11"] }gpui_util = { workspace = true }lyon = { version = "1.0", features = ["extra"] }rand.workspace = truescheduler = { workspace = true, features = ["test-support"] }unicode-segmentation = { workspace = true } [target.'cfg(not(target_family = "wasm"))'.dev-dependencies]http_client = { workspace = true, features = ["test-support"] }proptest = { workspace = true }reqwest_client = { workspace = true, features = ["test-support"] } [target.'cfg(target_family = "wasm")'.dev-dependencies]wasm-bindgen = { workspace = true }gpui_web.workspace = true [build-dependencies]embed-resource = { version = "3.0", optional = true } [target.'cfg(target_os = "macos")'.build-dependencies]bindgen = "0.71"cbindgen.workspace = true [[example]]name = "hello_world"path = "examples/hello_world.rs" [[example]]name = "move_entity_between_windows"path = "examples/move_entity_between_windows.rs" [[example]]name = "image"path = "examples/image/image.rs" [[example]]name = "input"path = "examples/input.rs" [[example]]name = "on_window_close_quit"path = "examples/on_window_close_quit.rs" [[example]]name = "window_movable"path = "examples/window_movable.rs" [[example]]name = "opacity"path = "examples/opacity.rs" [[example]]name = "pattern"path = "examples/pattern.rs" [[example]]name = "set_menus"path = "examples/set_menus.rs" [[example]]name = "system_notifications"path = "examples/system_notifications.rs" [[example]]name = "shadow"path = "examples/shadow.rs" [[example]]name = "svg"path = "examples/svg/svg.rs" [[example]]name = "tab_stop"path = "examples/tab_stop.rs" [[example]]name = "text"path = "examples/text.rs" [[example]]name = "text_wrapper"path = "examples/text_wrapper.rs" [[example]]name = "tree"path = "examples/tree.rs" [[example]]name = "uniform_list"path = "examples/uniform_list.rs" [[example]]name = "window_shadow"path = "examples/window_shadow.rs" [[example]]name = "grid_layout"path = "examples/grid_layout.rs" [[example]]name = "list_example"path = "examples/list_example.rs" [[example]]name = "mouse_pressure"path = "examples/mouse_pressure.rs" [[example]]name = "a11y"path = "examples/a11y.rs" [[example]]name = "view_example"path = "examples/view_example/view_example_main.rs"
[package]
name = "gpui"
version = "0.2.2"
edition.workspace = true
authors = ["Nathan Sobo <nathan@zed.dev>"]
description = "Zed's GPU-accelerated UI framework"
repository = "https://github.com/zed-industries/zed"
publish = true
license = "Apache-2.0"
homepage = "https://gpui.rs"
readme = "README.md"
keywords = ["desktop", "gui", "immediate"]
categories = ["gui"]
[lints]
workspace = true
[features]
default = ["font-kit", "wayland", "x11", "windows-manifest"]
test-support = [
"leak-detection",
"collections/test-support",
"http_client/test-support",
"wayland",
"x11",
"proptest",
]
bench = ["test-support", "dep:criterion", "dep:hdrhistogram"]
inspector = ["gpui_macros/inspector"]
leak-detection = ["backtrace"]
wayland = []
x11 = [
"scap?/x11",
]
screen-capture = [
"scap",
]
windows-manifest = ["dep:embed-resource"]
input-latency-histogram = ["dep:hdrhistogram"]
profiler = []
[lib]
path = "src/gpui.rs"
doctest = false
[dependencies]
accesskit.workspace = true
anyhow.workspace = true
async-task.workspace = true
backtrace = { workspace = true, optional = true }
bitflags.workspace = true
collections.workspace = true
criterion = { workspace = true, optional = true }
ctor.workspace = true
derive_more.workspace = true
etagere.workspace = true
futures.workspace = true
futures-concurrency.workspace = true
gpui_macros.workspace = true
gpui_shared_string.workspace = true
http_client.workspace = true
image.workspace = true
inventory.workspace = true
itertools.workspace = true
log.workspace = true
num_cpus = "1.13"
parking = "2.0.0"
parking_lot.workspace = true
postage.workspace = true
proptest = { workspace = true, optional = true }
chrono.workspace = true
profiling.workspace = true
rand.workspace = true
raw-window-handle.workspace = true
regex.workspace = true
refineable.workspace = true
scheduler.workspace = true
resvg.workspace = true
usvg.workspace = true
ttf-parser = "0.25"
util_macros.workspace = true
schemars.workspace = true
seahash = "4.1"
serde.workspace = true
serde_json.workspace = true
slotmap.workspace = true
smallvec.workspace = true
async-channel.workspace = true
stacksafe.workspace = true
strum.workspace = true
sum_tree.workspace = true
taffy = "=0.12.2"
thiserror.workspace = true
gpui_util.workspace = true
hdrhistogram = { workspace = true, optional = true }
waker-fn = "1.2.0"
lyon = "1.0"
pin-project = "1.1.10"
spin = "0.10.0"
pollster.workspace = true
url.workspace = true
uuid.workspace = true
web-time.workspace = true
heapless.workspace = true
[target.'cfg(target_family = "wasm")'.dependencies]
getrandom = { version = "0.3.4", features = ["wasm_js"] }
uuid = { workspace = true, features = ["js"] }
[target.'cfg(target_os = "macos")'.dependencies]
block.workspace = true
cocoa.workspace = true
cocoa-foundation.workspace = true
core-foundation.workspace = true
core-foundation-sys.workspace = true
core-graphics.workspace = true
core-video.workspace = true
core-text.workspace = true
# WARNING: If you change this, you must also publish a new version of zed-font-kit to crates.io
font-kit = { git = "https://github.com/zed-industries/font-kit", rev = "94b0f28166665e8fd2f53ff6d268a14955c82269", package = "zed-font-kit", version = "0.14.1-zed", optional = true }
foreign-types.workspace = true
log.workspace = true
media.workspace = true
objc.workspace = true
objc2 = { workspace = true, optional = true }
objc2-metal = { version = "0.3", optional = true }
mach2.workspace = true
#TODO: replace with "objc2"
metal.workspace = true
[target.'cfg(any(target_os = "linux", target_os = "freebsd", target_os = "macos"))'.dependencies]
pathfinder_geometry.workspace = true
[target.'cfg(any(target_os = "linux", target_os = "freebsd", target_os = "windows"))'.dependencies]
scap = { workspace = true, optional = true }
[target.'cfg(target_os = "windows")'.dependencies]
windows = { workspace = true, features = ["Win32_Foundation", "Win32_System_Power"] }
[dev-dependencies]
backtrace.workspace = true
collections = { workspace = true, features = ["test-support"] }
env_logger.workspace = true
gpui_platform = { workspace = true, features = ["font-kit", "wayland", "x11"] }
gpui_util = { workspace = true }
lyon = { version = "1.0", features = ["extra"] }
rand.workspace = true
scheduler = { workspace = true, features = ["test-support"] }
unicode-segmentation = { workspace = true }
[target.'cfg(not(target_family = "wasm"))'.dev-dependencies]
http_client = { workspace = true, features = ["test-support"] }
proptest = { workspace = true }
reqwest_client = { workspace = true, features = ["test-support"] }
[target.'cfg(target_family = "wasm")'.dev-dependencies]
wasm-bindgen = { workspace = true }
gpui_web.workspace = true
[build-dependencies]
embed-resource = { version = "3.0", optional = true }
[target.'cfg(target_os = "macos")'.build-dependencies]
bindgen = "0.71"
cbindgen.workspace = true
[[example]]
name = "hello_world"
path = "examples/hello_world.rs"
[[example]]
name = "move_entity_between_windows"
path = "examples/move_entity_between_windows.rs"
[[example]]
name = "image"
path = "examples/image/image.rs"
[[example]]
name = "input"
path = "examples/input.rs"
[[example]]
name = "on_window_close_quit"
path = "examples/on_window_close_quit.rs"
[[example]]
name = "window_movable"
path = "examples/window_movable.rs"
[[example]]
name = "opacity"
path = "examples/opacity.rs"
[[example]]
name = "pattern"
path = "examples/pattern.rs"
[[example]]
name = "set_menus"
path = "examples/set_menus.rs"
[[example]]
name = "system_notifications"
path = "examples/system_notifications.rs"
[[example]]
name = "shadow"
path = "examples/shadow.rs"
[[example]]
name = "svg"
path = "examples/svg/svg.rs"
[[example]]
name = "tab_stop"
path = "examples/tab_stop.rs"
[[example]]
name = "text"
path = "examples/text.rs"
[[example]]
name = "text_wrapper"
path = "examples/text_wrapper.rs"
[[example]]
name = "tree"
path = "examples/tree.rs"
[[example]]
name = "uniform_list"
path = "examples/uniform_list.rs"
[[example]]
name = "window_shadow"
path = "examples/window_shadow.rs"
[[example]]
name = "grid_layout"
path = "examples/grid_layout.rs"
[[example]]
name = "list_example"
path = "examples/list_example.rs"
[[example]]
name = "mouse_pressure"
path = "examples/mouse_pressure.rs"
[[example]]
name = "a11y"
path = "examples/a11y.rs"
[[example]]
name = "view_example"
path = "examples/view_example/view_example_main.rs"