# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# Local copy trims registry examples/tests/docs; runtime dependencies
# and library/build targets stay aligned with the published crate.

[package]
edition = "2024"
name = "gpui"
version = "0.2.2"
authors = ["Nathan Sobo <nathan@zed.dev>"]
build = "build.rs"
publish = true
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Zed's GPU-accelerated UI framework"
homepage = "https://gpui.rs"
readme = "README.md"
keywords = [
    "desktop",
    "gui",
    "immediate",
]
categories = ["gui"]
license = "Apache-2.0"
repository = "https://github.com/zed-industries/zed"
resolver = "2"

[features]
default = [
    "font-kit",
    "wayland",
    "x11",
    "windows-manifest",
]
inspector = ["gpui_macros/inspector"]
leak-detection = ["backtrace"]
macos-blade = [
    "blade-graphics",
    "blade-macros",
    "blade-util",
    "bytemuck",
    "objc2",
    "objc2-metal",
]
runtime_shaders = []
screen-capture = ["scap"]
test-support = [
    "leak-detection",
    "collections/test-support",
    "rand",
    "util/test-support",
    "http_client/test-support",
    "wayland",
    "x11",
]
wayland = [
    "blade-graphics",
    "blade-macros",
    "blade-util",
    "bytemuck",
    "ashpd/wayland",
    "cosmic-text",
    "font-kit",
    "calloop-wayland-source",
    "wayland-backend",
    "wayland-client",
    "wayland-cursor",
    "wayland-protocols",
    "wayland-protocols-plasma",
    "filedescriptor",
    "xkbcommon",
    "open",
]
windows-manifest = []
x11 = [
    "blade-graphics",
    "blade-macros",
    "blade-util",
    "bytemuck",
    "ashpd",
    "cosmic-text",
    "font-kit",
    "as-raw-xcb-connection",
    "x11rb",
    "xkbcommon",
    "xim",
    "x11-clipboard",
    "filedescriptor",
    "open",
    "scap?/x11",
]

[lib]
name = "gpui"
path = "src/gpui.rs"
doctest = false

[dependencies.anyhow]
version = "1.0.86"

[dependencies.async-task]
version = "4.7"

[dependencies.backtrace]
version = "0.3"
optional = true

[dependencies.blade-graphics]
version = "0.7.0"
optional = true

[dependencies.blade-macros]
version = "0.3.0"
optional = true

[dependencies.blade-util]
version = "0.3.0"
optional = true

[dependencies.bytemuck]
version = "1"
optional = true

[dependencies.collections]
version = "0.2.2"
package = "gpui_collections"

[dependencies.ctor]
version = "0.4.0"

[dependencies.derive_more]
version = "0.99.17"

[dependencies.etagere]
version = "0.2"

[dependencies.futures]
version = "0.3"

[dependencies.gpui_macros]
version = "0.2.2"
package = "gpui-macros"

[dependencies.http_client]
version = "0.2.2"
package = "gpui_http_client"

[dependencies.image]
version = "0.25.1"

[dependencies.inventory]
version = "0.3.19"

[dependencies.itertools]
version = "0.14.0"

[dependencies.libc]
version = "0.2"

[dependencies.log]
version = "0.4.16"
features = [
    "kv_unstable_serde",
    "serde",
]

[dependencies.lyon]
version = "1.0"

[dependencies.num_cpus]
version = "1.13"

[dependencies.parking]
version = "2.0.0"

[dependencies.parking_lot]
version = "0.12.1"

[dependencies.pin-project]
version = "1.1.10"

[dependencies.postage]
version = "0.5"
features = ["futures-traits"]

[dependencies.profiling]
version = "1"

[dependencies.rand]
version = "0.9"
optional = true

[dependencies.raw-window-handle]
version = "0.6"

[dependencies.refineable]
version = "0.2.2"
package = "gpui_refineable"

[dependencies.resvg]
version = "0.45.0"
features = [
    "text",
    "system-fonts",
    "memmap-fonts",
]
default-features = false

[dependencies.schemars]
version = "1.0"
features = ["indexmap2"]

[dependencies.seahash]
version = "4.1"

[dependencies.semantic_version]
version = "0.2.2"
package = "gpui_semantic_version"

[dependencies.serde]
version = "1.0.221"
features = [
    "derive",
    "rc",
]

[dependencies.serde_json]
version = "1.0.144"
features = [
    "preserve_order",
    "raw_value",
]

[dependencies.slotmap]
version = "1.0.6"

[dependencies.smallvec]
version = "1.6"
features = ["union"]

[dependencies.smol]
version = "2.0"

[dependencies.stacksafe]
version = "0.1"

[dependencies.strum]
version = "0.27.2"
features = ["derive"]

[dependencies.sum_tree]
version = "0.2.2"
package = "gpui_sum_tree"

[dependencies.taffy]
version = "=0.9.0"

[dependencies.thiserror]
version = "2.0.12"

[dependencies.usvg]
version = "0.45.0"
default-features = false

[dependencies.util]
version = "0.2.2"
package = "gpui_util"

[dependencies.util_macros]
version = "0.2.2"
package = "gpui_util_macros"

[dependencies.uuid]
version = "1.1.2"
features = [
    "v4",
    "v5",
    "v7",
    "serde",
]

[dependencies.waker-fn]
version = "1.2.0"

[dev-dependencies.backtrace]
version = "0.3"

[dev-dependencies.collections]
version = "0.2.2"
features = ["test-support"]
package = "gpui_collections"

[dev-dependencies.env_logger]
version = "0.11"

[dev-dependencies.http_client]
version = "0.2.2"
features = ["test-support"]
package = "gpui_http_client"

[dev-dependencies.lyon]
version = "1.0"
features = ["extra"]

[dev-dependencies.pretty_assertions]
version = "1.3.0"
features = ["unstable"]

[dev-dependencies.rand]
version = "0.9"

[dev-dependencies.unicode-segmentation]
version = "1.10"

[dev-dependencies.util]
version = "0.2.2"
features = ["test-support"]
package = "gpui_util"

[target.'cfg(any(target_os = "linux", target_os = "freebsd"))'.dependencies.as-raw-xcb-connection]
version = "1"
optional = true

[target.'cfg(any(target_os = "linux", target_os = "freebsd"))'.dependencies.ashpd]
version = "0.11"
features = ["async-std"]
optional = true
default-features = false

[target.'cfg(any(target_os = "linux", target_os = "freebsd"))'.dependencies.blade-graphics]
version = "0.7.0"
optional = true

[target.'cfg(any(target_os = "linux", target_os = "freebsd"))'.dependencies.blade-macros]
version = "0.3.0"
optional = true

[target.'cfg(any(target_os = "linux", target_os = "freebsd"))'.dependencies.blade-util]
version = "0.3.0"
optional = true

[target.'cfg(any(target_os = "linux", target_os = "freebsd"))'.dependencies.bytemuck]
version = "1"
optional = true

[target.'cfg(any(target_os = "linux", target_os = "freebsd"))'.dependencies.calloop]
version = "0.13.0"

[target.'cfg(any(target_os = "linux", target_os = "freebsd"))'.dependencies.calloop-wayland-source]
version = "0.3.0"
optional = true

[target.'cfg(any(target_os = "linux", target_os = "freebsd"))'.dependencies.cosmic-text]
version = "0.14.0"
optional = true

[target.'cfg(any(target_os = "linux", target_os = "freebsd"))'.dependencies.filedescriptor]
version = "0.8.2"
optional = true

[target.'cfg(any(target_os = "linux", target_os = "freebsd"))'.dependencies.flume]
version = "0.11"

[target.'cfg(any(target_os = "linux", target_os = "freebsd"))'.dependencies.font-kit]
version = "0.14.1-zed"
features = ["source-fontconfig-dlopen"]
optional = true
package = "zed-font-kit"

[target.'cfg(any(target_os = "linux", target_os = "freebsd"))'.dependencies.oo7]
version = "0.5.0"
features = [
    "async-std",
    "native_crypto",
]
default-features = false

[target.'cfg(any(target_os = "linux", target_os = "freebsd"))'.dependencies.open]
version = "5.2.0"
optional = true

[target.'cfg(any(target_os = "linux", target_os = "freebsd"))'.dependencies.wayland-backend]
version = "0.3.3"
features = [
    "client_system",
    "dlopen",
]
optional = true

[target.'cfg(any(target_os = "linux", target_os = "freebsd"))'.dependencies.wayland-client]
version = "0.31.2"
optional = true

[target.'cfg(any(target_os = "linux", target_os = "freebsd"))'.dependencies.wayland-cursor]
version = "0.31.1"
optional = true

[target.'cfg(any(target_os = "linux", target_os = "freebsd"))'.dependencies.wayland-protocols]
version = "0.31.2"
features = [
    "client",
    "staging",
    "unstable",
]
optional = true

[target.'cfg(any(target_os = "linux", target_os = "freebsd"))'.dependencies.wayland-protocols-plasma]
version = "0.2.0"
features = ["client"]
optional = true

[target.'cfg(any(target_os = "linux", target_os = "freebsd"))'.dependencies.x11-clipboard]
version = "0.9.3"
optional = true

[target.'cfg(any(target_os = "linux", target_os = "freebsd"))'.dependencies.x11rb]
version = "0.13.1"
features = [
    "allow-unsafe-code",
    "xkb",
    "randr",
    "xinput",
    "cursor",
    "resource_manager",
    "sync",
]
optional = true

[target.'cfg(any(target_os = "linux", target_os = "freebsd"))'.dependencies.xim]
version = "0.4.0-zed"
features = [
    "x11rb-xcb",
    "x11rb-client",
]
optional = true
package = "zed-xim"

[target.'cfg(any(target_os = "linux", target_os = "freebsd"))'.dependencies.xkbcommon]
version = "0.8.0"
features = [
    "wayland",
    "x11",
]
optional = true

[target.'cfg(any(target_os = "linux", target_os = "freebsd"))'.build-dependencies.naga]
version = "25.0"
features = ["wgsl-in"]

[target.'cfg(any(target_os = "linux", target_os = "freebsd", target_os = "macos"))'.dependencies.pathfinder_geometry]
version = "0.5"

[target.'cfg(any(target_os = "linux", target_os = "freebsd", target_os = "windows"))'.dependencies.scap]
version = "0.0.8-zed"
optional = true
default-features = false
package = "zed-scap"

[target.'cfg(target_os = "macos")'.dependencies.block]
version = "0.1"

[target.'cfg(target_os = "macos")'.dependencies.cocoa]
version = "=0.26.0"

[target.'cfg(target_os = "macos")'.dependencies.cocoa-foundation]
version = "=0.2.0"

[target.'cfg(target_os = "macos")'.dependencies.core-foundation]
version = "=0.10.0"

[target.'cfg(target_os = "macos")'.dependencies.core-foundation-sys]
version = "0.8.6"

[target.'cfg(target_os = "macos")'.dependencies.core-graphics]
version = "0.24"

[target.'cfg(target_os = "macos")'.dependencies.core-text]
version = "21"

[target.'cfg(target_os = "macos")'.dependencies.core-video]
version = "0.4.3"
features = ["metal"]

[target.'cfg(target_os = "macos")'.dependencies.font-kit]
version = "0.14.1-zed"
optional = true
package = "zed-font-kit"

[target.'cfg(target_os = "macos")'.dependencies.foreign-types]
version = "0.5"

[target.'cfg(target_os = "macos")'.dependencies.log]
version = "0.4.16"
features = [
    "kv_unstable_serde",
    "serde",
]

[target.'cfg(target_os = "macos")'.dependencies.media]
version = "0.2.2"
package = "gpui_media"

[target.'cfg(target_os = "macos")'.dependencies.metal]
version = "0.29"

[target.'cfg(target_os = "macos")'.dependencies.objc]
version = "0.2"

[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 = "macos")'.build-dependencies.bindgen]
version = "0.71"

[target.'cfg(target_os = "macos")'.build-dependencies.cbindgen]
version = "0.28.0"
default-features = false

[target.'cfg(target_os = "macos")'.build-dependencies.naga]
version = "25.0"
features = ["wgsl-in"]

[target.'cfg(target_os = "windows")'.dependencies.flume]
version = "0.11"

[target.'cfg(target_os = "windows")'.dependencies.rand]
version = "0.9"

[target.'cfg(target_os = "windows")'.dependencies.windows]
version = "0.61"
features = [
    "Foundation_Numerics",
    "Storage_Search",
    "Storage_Streams",
    "System_Threading",
    "UI_ViewManagement",
    "Wdk_System_SystemServices",
    "Win32_Globalization",
    "Win32_Graphics_Direct3D",
    "Win32_Graphics_Direct3D11",
    "Win32_Graphics_Direct3D_Fxc",
    "Win32_Graphics_DirectComposition",
    "Win32_Graphics_DirectWrite",
    "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_DataExchange",
    "Win32_System_IO",
    "Win32_System_LibraryLoader",
    "Win32_System_Memory",
    "Win32_System_Ole",
    "Win32_System_Performance",
    "Win32_System_Pipes",
    "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_Shell",
    "Win32_UI_Shell_Common",
    "Win32_UI_Shell_PropertiesSystem",
    "Win32_UI_WindowsAndMessaging",
]

[target.'cfg(target_os = "windows")'.dependencies.windows-core]
version = "0.61"

[target.'cfg(target_os = "windows")'.dependencies.windows-numerics]
version = "0.2"

[target.'cfg(target_os = "windows")'.dependencies.windows-registry]
version = "0.5"

[target.'cfg(target_os = "windows")'.build-dependencies.embed-resource]
version = "3.0"

[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
