[package]
edition = "2024"
rust-version = "1.95"
name = "gpui-ce"
version = "0.3.0"
authors = ["Nathan Sobo <nathan@zed.dev>"]
build = "build.rs"
publish = true
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A community fork of Zed's GPU-accelerated UI framework"
homepage = "https://gpui-ce.github.io/"
readme = "README.md"
keywords = [
"desktop",
"gui",
"immediate",
]
categories = ["gui"]
license = "Apache-2.0"
repository = "https://github.com/gpui-ce/gpui-ce"
[package.metadata.docs.rs]
features = ["test-support"]
[package.metadata.cargo-shear]
ignored = [
"getrandom",
"objc2",
"objc2-metal",
"tracing",
]
ignored-paths = [
"src/_ownership_and_data_flow.rs",
"benches/focus_cleanup.rs",
]
[features]
bench = ["bench-support"]
bench-support = [
"profiler",
"dep:criterion",
"dep:libc",
"dep:perf-event",
]
custom-gpu = []
default = [
"font-kit",
"wayland",
"x11",
"windows-manifest",
"image-default-formats",
]
embedded-assets = ["dep:rust-embed"]
font-kit = []
hot-patching = [
"dep:dioxus-devtools",
"dep:subsecond",
]
image-default-formats = ["image/default-formats"]
inspector = ["gpui_macros/inspector"]
leak-detection = []
profiler = ["dep:hdrhistogram"]
screen-capture = ["dep:windows-capture"]
stacker = ["dep:stacksafe"]
test-support = [
"leak-detection",
"collections/test-support",
"wayland",
"x11",
"proptest",
"dep:futures-concurrency",
"dep:postage",
"dep:web-time",
]
wayland = []
wgpu-surfaces = []
windows-manifest = ["dep:embed-resource"]
x11 = []
[lib]
name = "gpui"
path = "src/gpui.rs"
doctest = true
[[example]]
name = "animation"
path = "examples/animation.rs"
[[example]]
name = "canvas"
path = "examples/canvas.rs"
[[example]]
name = "counter"
path = "examples/counter.rs"
[[example]]
name = "custom_element"
path = "examples/custom_element.rs"
[[example]]
name = "data_table"
path = "examples/bench/data_table.rs"
[[example]]
name = "events"
path = "examples/events.rs"
[[example]]
name = "haptics"
path = "examples/haptics.rs"
[[example]]
name = "hello_world"
path = "examples/hello_world.rs"
[[example]]
name = "images"
path = "examples/images.rs"
[[example]]
name = "interaction"
path = "examples/interaction.rs"
[[example]]
name = "keyboard"
path = "examples/keyboard.rs"
[[example]]
name = "keyring"
path = "examples/keyring.rs"
[[example]]
name = "layer_shell"
path = "examples/layer_shell.rs"
[[example]]
name = "layout"
path = "examples/layout.rs"
[[example]]
name = "list"
path = "examples/list.rs"
[[example]]
name = "notifications"
path = "examples/notifications.rs"
[[example]]
name = "paths_bench"
path = "examples/bench/paths_bench.rs"
[[example]]
name = "pattern"
path = "examples/bench/pattern.rs"
[[example]]
name = "shadow"
path = "examples/bench/shadow.rs"
[[example]]
name = "styling"
path = "examples/styling.rs"
[[example]]
name = "tasks"
path = "examples/tasks.rs"
[[example]]
name = "text"
path = "examples/text.rs"
[[example]]
name = "text_input"
path = "examples/text_input.rs"
[[example]]
name = "todos"
path = "examples/todos.rs"
[[example]]
name = "toggle_headless"
path = "examples/toggle_headless.rs"
[[example]]
name = "windows"
path = "examples/windows.rs"
[[test]]
name = "action_macros"
path = "tests/action_macros.rs"
[[test]]
name = "derive_context"
path = "tests/derive_context.rs"
[[test]]
name = "derive_element_traits"
path = "tests/derive_element_traits.rs"
[[test]]
name = "derive_inspector_reflection"
path = "tests/derive_inspector_reflection.rs"
[[test]]
name = "render_macro"
path = "tests/render_macro.rs"
[[test]]
name = "renderer_source_audit"
path = "tests/renderer_source_audit.rs"
[dependencies.accesskit]
version = "0.24.1"
features = ["enumn"]
[dependencies.anyhow]
version = "1.0.86"
[dependencies.async-task]
version = "4.7"
[dependencies.backtrace]
version = "0.3"
[dependencies.bitflags]
version = "2.6.0"
[dependencies.chrono]
version = "0.4"
features = ["serde"]
default-features = true
[dependencies.collections]
version = "0.3.0"
package = "gpui_ce_collections"
[dependencies.criterion]
version = "0.8.2"
features = ["html_reports"]
optional = true
[dependencies.ctor]
version = "1.0.12"
[dependencies.derive_more]
version = "2.1.1"
features = [
"add",
"add_assign",
"deref",
"deref_mut",
"display",
"from_str",
"mul",
"mul_assign",
"not",
"add",
"add_assign",
"mul",
"mul_assign",
"not",
]
[dependencies.derive_setters]
version = "0.1.9"
[dependencies.etagere]
version = "0.2"
[dependencies.futures]
version = "0.3.34"
[dependencies.futures-concurrency]
version = "7.7.1"
optional = true
[dependencies.gpui_macros]
version = "0.3.0"
package = "gpui_ce_macros"
[dependencies.gpui_shared_string]
version = "0.3.0"
package = "gpui_ce_shared_string"
[dependencies.gpui_util]
version = "0.3.0"
package = "gpui_ce_util"
[dependencies.hdrhistogram]
version = "7"
optional = true
[dependencies.heapless]
version = "0.9.2"
[dependencies.http]
version = "1.3"
[dependencies.image]
version = "0.25.1"
features = [
"gif",
"webp",
]
default-features = false
[dependencies.inventory]
version = "0.3.19"
[dependencies.itertools]
version = "0.14.0"
[dependencies.log]
version = "0.4.16"
features = [
"kv_unstable_serde",
"serde",
]
[dependencies.lyon]
version = "1.0"
[dependencies.num_cpus]
version = "1.13"
[dependencies.palette]
version = "0.7.6"
features = ["serializing"]
[dependencies.parking]
version = "2.0.0"
[dependencies.parking_lot]
version = "0.12.1"
[dependencies.phf]
version = "0.13.1"
features = ["macros"]
[dependencies.pin-project]
version = "1.1.10"
[dependencies.postage]
version = "0.5"
features = [
"futures-traits",
"blocking",
]
optional = true
[dependencies.profiling]
version = "1"
[dependencies.proptest]
version = "1.10"
features = ["attr-macro"]
optional = true
[dependencies.rand]
version = "0.9.4"
features = [
"small_rng",
"thread_rng",
]
[dependencies.raw-window-handle]
version = "0.6"
[dependencies.refineable]
version = "0.3.0"
package = "gpui_ce_refineable"
[dependencies.regex]
version = "1.5"
default-features = true
[dependencies.resvg]
version = "0.48.1"
features = [
"text",
"system-fonts",
"memmap-fonts",
"raster-images",
]
default-features = false
[dependencies.rust-embed]
version = "8.12"
optional = true
[dependencies.scheduler]
version = "0.3.0"
package = "gpui_ce_scheduler"
[dependencies.schemars]
version = "1.0"
features = [
"indexmap2",
"derive",
]
[dependencies.seahash]
version = "4.1"
[dependencies.serde]
version = "1.0.221"
features = [
"derive",
"rc",
"derive",
]
[dependencies.serde_json]
version = "1.0.144"
features = [
"preserve_order",
"raw_value",
]
[dependencies.skrifa]
version = "0.44.0"
[dependencies.slotmap]
version = "1.0.6"
[dependencies.smallvec]
version = "1.6"
features = [
"union",
"const_new",
]
[dependencies.spin]
version = "0.10"
features = [
"mutex",
"spin_mutex",
"lock_api",
]
default-features = false
[dependencies.stacksafe]
version = "1.0"
optional = true
[dependencies.strum]
version = "0.28"
features = ["derive"]
[dependencies.sum_tree]
version = "0.3.0"
package = "gpui_ce_sum_tree"
[dependencies.taffy]
version = "=0.14.0"
features = [
"std",
"flexbox",
"grid",
"block_layout",
"float_layout",
]
default-features = false
[dependencies.thiserror]
version = "2.0.12"
[dependencies.tracing]
version = "0.1.44"
features = ["attributes"]
[dependencies.ttf-parser]
version = "0.25"
[dependencies.unicode-bidi]
version = "0.3.18"
features = ["hardcoded-data"]
default-features = false
[dependencies.unicode-segmentation]
version = "1.10"
[dependencies.url]
version = "2.2"
[dependencies.usvg]
version = "0.48.1"
default-features = false
[dependencies.uuid]
version = "1.1.2"
features = [
"v4",
"v5",
"v7",
"serde",
"v4",
]
[dependencies.waker-fn]
version = "1.2.0"
[dependencies.web-time]
version = "1.1.0"
optional = true
[dev-dependencies.accesskit_consumer]
version = "0.38.0"
[dev-dependencies.backtrace]
version = "0.3"
[dev-dependencies.collections]
version = "0.3.0"
features = ["test-support"]
package = "gpui_ce_collections"
[dev-dependencies.env_logger]
version = "0.11"
[dev-dependencies.futures-concurrency]
version = "7.7.1"
[dev-dependencies.gpui_util]
version = "0.3.0"
package = "gpui_ce_util"
[dev-dependencies.image]
version = "0.25.1"
features = [
"gif",
"webp",
"png",
]
default-features = false
[dev-dependencies.lyon]
version = "1.0"
features = ["extra"]
[dev-dependencies.postage]
version = "0.5"
features = [
"futures-traits",
"blocking",
]
[dev-dependencies.rand]
version = "0.9.4"
default-features = true
[dev-dependencies.scheduler]
version = "0.3.0"
features = ["test-support"]
package = "gpui_ce_scheduler"
[dev-dependencies.smol]
version = "2.0"
[dev-dependencies.unicode-segmentation]
version = "1.10"
[dev-dependencies.web-time]
version = "1.1.0"
[build-dependencies.embed-resource]
version = "3.0"
optional = true
[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dependencies.async-channel]
version = "2.5.0"
[target.'cfg(any(target_os = "linux", target_os = "android"))'.dependencies.libc]
version = "0.2"
[target.'cfg(any(target_os = "macos", target_os = "ios"))'.dependencies.objc2-core-foundation]
version = "=0.3.2"
default-features = false
[target.'cfg(any(target_os = "macos", target_os = "ios"))'.dependencies.objc2-core-video]
version = "=0.3.2"
features = [
"CVBuffer",
"CVImageBuffer",
"CVPixelBuffer",
]
default-features = false
[target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dependencies.async-channel]
version = "2.5.0"
features = ["std"]
[target.'cfg(not(target_family = "wasm"))'.dependencies.dioxus-devtools]
version = "=0.7.10"
features = ["serve"]
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.pollster]
version = "0.4.0"
[target.'cfg(not(target_family = "wasm"))'.dependencies.subsecond]
version = "=0.7.10"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dev-dependencies.proptest]
version = "1.10"
features = ["attr-macro"]
[target.'cfg(target_family = "wasm")'.dependencies.getrandom]
version = "0.3.4"
features = ["wasm_js"]
[target.'cfg(target_family = "wasm")'.dependencies.uuid]
version = "1.1.2"
features = [
"v4",
"v5",
"v7",
"serde",
"js",
]
[target.'cfg(target_family = "wasm")'.dev-dependencies.wasm-bindgen]
version = "0.2.120"
[target.'cfg(target_family = "wasm")'.dev-dependencies.web-sys]
version = "0.3"
[target.'cfg(target_os = "linux")'.dependencies.perf-event]
version = "0.7.4"
optional = true
package = "perf-event2"
[target.'cfg(target_os = "macos")'.dependencies.log]
version = "0.4.16"
features = [
"kv_unstable_serde",
"serde",
]
[target.'cfg(target_os = "macos")'.dependencies.objc2]
version = "0.6"
optional = true
[target.'cfg(target_os = "macos")'.dependencies.objc2-metal]
version = "0.3"
optional = true
[target.'cfg(target_os = "windows")'.dependencies.windows]
version = "0.62.2"
features = [
"Foundation_Numerics",
"Globalization_DateTimeFormatting",
"Storage_Search",
"Storage_Streams",
"System_Threading",
"UI_ViewManagement",
"Wdk_System_SystemServices",
"Win32_Foundation",
"Win32_Globalization",
"Win32_Graphics_Direct3D",
"Win32_Graphics_Direct3D11",
"Win32_Graphics_Direct3D_Fxc",
"Win32_Graphics_Direct2D",
"Win32_Graphics_Direct2D_Common",
"Win32_Graphics_DirectComposition",
"Win32_Graphics_DirectWrite",
"Win32_Graphics_DirectManipulation",
"Win32_Graphics_Dwm",
"Win32_Graphics_Dxgi",
"Win32_Graphics_Dxgi_Common",
"Win32_Graphics_Gdi",
"Win32_Graphics_Imaging",
"Win32_Graphics_Hlsl",
"Win32_Networking_WinSock",
"Win32_Security",
"Win32_Security_Credentials",
"Win32_Security_Cryptography",
"Win32_Storage_FileSystem",
"Win32_System_Com",
"Win32_System_Com_StructuredStorage",
"Win32_System_Console",
"Win32_System_Diagnostics_Debug",
"Win32_System_DataExchange",
"Win32_System_IO",
"Win32_System_LibraryLoader",
"Win32_System_Memory",
"Win32_System_Ole",
"Win32_System_Performance",
"Win32_System_Pipes",
"Win32_System_RestartManager",
"Win32_System_SystemInformation",
"Win32_System_SystemServices",
"Win32_System_Threading",
"Win32_System_Variant",
"Win32_System_WinRT",
"Win32_UI_Controls",
"Win32_UI_HiDpi",
"Win32_UI_Input_Ime",
"Win32_UI_Input_KeyboardAndMouse",
"Win32_UI_Input_Pointer",
"Win32_UI_Shell",
"Win32_UI_Shell_Common",
"Win32_UI_Shell_PropertiesSystem",
"Win32_UI_WindowsAndMessaging",
"Win32_Media",
"Data",
"Data_Xml",
"Data_Xml_Dom",
"Win32_Storage_Packaging",
"Win32_Storage_Packaging_Appx",
"Win32_System_JobObjects",
"UI_Notifications",
"Win32_Foundation",
"Win32_System_Power",
"Win32_System_RemoteDesktop",
"Win32_System_WindowsProgramming",
]
[target.'cfg(target_os = "windows")'.dependencies.windows-061]
version = "0.61.3"
features = ["Win32_Graphics_Direct3D11"]
package = "windows"
[target.'cfg(target_os = "windows")'.dependencies.windows-capture]
version = "1.5.0"
optional = true
[target."cfg(unix)".dependencies.libc]
version = "0.2"
optional = true
[lints.clippy]
dbg_macro = "deny"
declare_interior_mutable_const = "deny"
disallowed_methods = "deny"
large_enum_variant = "allow"
let_underscore_future = "allow"
nonminimal_bool = "allow"
redundant_clone = "deny"
single_range_in_vec_init = "allow"
todo = "deny"
too_many_arguments = "allow"
type_complexity = "allow"
[lints.clippy.style]
level = "allow"
priority = -1
[lints.rust.unexpected_cfgs]
level = "allow"
priority = 0