[package]
edition = "2024"
name = "open-gpui"
version = "0.1.0"
authors = ["Mingzhen Zhuang <superfrankie621@gmail.com>"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Open GPUI's GPU-accelerated UI framework forked from Zed GPUI."
homepage = "https://github.com/Latias94/open-gpui"
documentation = "https://docs.rs/open-gpui"
readme = "README.md"
keywords = [
"desktop",
"gui",
"immediate",
]
categories = ["gui"]
license = "Apache-2.0"
repository = "https://github.com/Latias94/open-gpui"
resolver = "2"
[features]
default = [
"font-kit",
"wayland",
"x11",
"windows-manifest",
]
input-latency-histogram = ["dep:hdrhistogram"]
inspector = ["open_gpui_macros/inspector"]
leak-detection = ["backtrace"]
screen-capture = ["scap"]
test-support = [
"leak-detection",
"open_gpui_collections/test-support",
"open_gpui_http_client/test-support",
"wayland",
"x11",
"proptest",
]
wayland = ["bitflags"]
windows-manifest = ["dep:embed-resource"]
x11 = ["scap?/x11"]
[lib]
name = "open_gpui"
path = "src/gpui.rs"
doctest = false
[[test]]
name = "action_macros"
path = "tests/action_macros.rs"
[dependencies.accesskit]
version = "0.24.0"
[dependencies.anyhow]
version = "1.0.86"
[dependencies.async-channel]
version = "2.5.0"
[dependencies.async-task]
version = "4.7"
[dependencies.backtrace]
version = "0.3"
optional = true
[dependencies.bitflags]
version = "2.6.0"
optional = true
[dependencies.chrono]
version = "0.4"
features = ["serde"]
[dependencies.ctor]
version = "1.0.6"
[dependencies.derive_more]
version = "2.1.1"
features = [
"add",
"add_assign",
"deref",
"deref_mut",
"display",
"from_str",
"mul",
"mul_assign",
"not",
]
[dependencies.etagere]
version = "0.2"
[dependencies.futures]
version = "0.3.32"
[dependencies.futures-concurrency]
version = "7.7.1"
[dependencies.hdrhistogram]
version = "7"
optional = true
[dependencies.heapless]
version = "0.9.2"
[dependencies.image]
version = "0.25.1"
[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.open_gpui_collections]
version = "0.1.0"
package = "open-gpui-collections"
[dependencies.open_gpui_core_util]
version = "0.1.0"
package = "open-gpui-core-util"
[dependencies.open_gpui_http_client]
version = "0.1.0"
package = "open-gpui-http-client"
[dependencies.open_gpui_macros]
version = "0.1.0"
package = "open-gpui-macros"
[dependencies.open_gpui_refineable]
version = "0.1.0"
package = "open-gpui-refineable"
[dependencies.open_gpui_scheduler]
version = "0.1.0"
package = "open-gpui-scheduler"
[dependencies.open_gpui_shared_string]
version = "0.1.0"
package = "open-gpui-shared-string"
[dependencies.open_gpui_sum_tree]
version = "0.1.0"
package = "open-gpui-sum-tree"
[dependencies.open_gpui_util_macros]
version = "0.1.0"
package = "open-gpui-util-macros"
[dependencies.parking]
version = "2.0.0"
[dependencies.parking_lot]
version = "0.12.1"
[dependencies.pin-project]
version = "1.1.10"
[dependencies.pollster]
version = "0.4.0"
[dependencies.postage]
version = "0.5"
features = ["futures-traits"]
[dependencies.profiling]
version = "1"
[dependencies.proptest]
version = "=1.10.0"
features = ["attr-macro"]
optional = true
[dependencies.rand]
version = "0.9"
[dependencies.raw-window-handle]
version = "0.6"
[dependencies.regex]
version = "1.5"
[dependencies.resvg]
version = "0.45.0"
features = [
"text",
"system-fonts",
"memmap-fonts",
"raster-images",
]
default-features = false
[dependencies.schemars]
version = "1.0"
features = ["indexmap2"]
[dependencies.seahash]
version = "4.1"
[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",
"const_new",
]
[dependencies.spin]
version = "0.10.0"
[dependencies.stacksafe]
version = "0.1"
[dependencies.strum]
version = "0.27.2"
features = ["derive"]
[dependencies.taffy]
version = "=0.10.1"
[dependencies.thiserror]
version = "2.0.12"
[dependencies.ttf-parser]
version = "0.25"
[dependencies.url]
version = "2.2"
[dependencies.usvg]
version = "0.45.0"
default-features = false
[dependencies.uuid]
version = "1.1.2"
features = [
"v4",
"v5",
"v7",
"serde",
]
[dependencies.waker-fn]
version = "1.2.0"
[dependencies.web-time]
version = "1.1.0"
[dev-dependencies.backtrace]
version = "0.3"
[dev-dependencies.env_logger]
version = "0.11"
[dev-dependencies.lyon]
version = "1.0"
features = ["extra"]
[dev-dependencies.open_gpui_collections]
version = "0.1.0"
features = ["test-support"]
package = "open-gpui-collections"
[dev-dependencies.open_gpui_core_util]
version = "0.1.0"
package = "open-gpui-core-util"
[dev-dependencies.open_gpui_scheduler]
version = "0.1.0"
features = ["test-support"]
package = "open-gpui-scheduler"
[dev-dependencies.proptest]
version = "=1.10.0"
features = ["attr-macro"]
[dev-dependencies.rand]
version = "0.9"
[dev-dependencies.unicode-segmentation]
version = "1.10"
[build-dependencies.embed-resource]
version = "3.0"
optional = true
[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.1.0-beta.1"
optional = true
default-features = false
package = "open-gpui-scap"
[target.'cfg(not(target_family = "wasm"))'.dev-dependencies.open_gpui_http_client]
version = "0.1.0"
features = ["test-support"]
package = "open-gpui-http-client"
[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_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.5.2"
features = ["metal"]
[target.'cfg(target_os = "macos")'.dependencies.font-kit]
version = "0.14.3"
optional = true
package = "open-gpui-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.mach2]
version = "0.5"
[target.'cfg(target_os = "macos")'.dependencies.metal]
version = "0.33"
[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")'.dependencies.open_gpui_media]
version = "0.1.0"
package = "open-gpui-media"
[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 = "windows")'.dependencies.windows]
version = "0.61"
features = ["Win32_Foundation"]
[lints.clippy]
dbg_macro = "deny"
todo = "deny"
unwrap_used = "warn"
[lints.rust]
unsafe_op_in_unsafe_fn = "warn"
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = ["cfg(rust_analyzer)"]