From 4318e5883e6593a4f788fc33d9585c1dcab5e7d5 Mon Sep 17 00:00:00 2001 From: Jason Lee Date: Tue, 6 Oct 2026 14:11:56 +0800 Subject: [PATCH 1/9] Use gpui-fast 0.1.0 for desktop rendering --- .github/workflows/ci.yml | 2 +- Cargo.lock | 683 +++++++++--------- Cargo.toml | 10 +- README.md | 3 + src/main.rs | 3 + vendor/gpui-backend/README.md | 14 + .../gpui-backend/gpui-pre-platform/Cargo.toml | 25 + vendor/gpui-backend/gpui-pre-platform/lib.rs | 1 + vendor/gpui-backend/gpui-pre/Cargo.toml | 27 + vendor/gpui-backend/gpui-pre/lib.rs | 1 + 10 files changed, 403 insertions(+), 366 deletions(-) create mode 100644 vendor/gpui-backend/README.md create mode 100644 vendor/gpui-backend/gpui-pre-platform/Cargo.toml create mode 100644 vendor/gpui-backend/gpui-pre-platform/lib.rs create mode 100644 vendor/gpui-backend/gpui-pre/Cargo.toml create mode 100644 vendor/gpui-backend/gpui-pre/lib.rs diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8c8b831..feed8ee 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -86,5 +86,5 @@ jobs: run: python scripts/test-pkgbuild.py - name: Unit and integration tests run: cargo test --locked --no-default-features - - name: GPUI interaction tests + - name: GPUI Fast interaction tests run: cargo test --locked --features ui-tests --bin omasend diff --git a/Cargo.lock b/Cargo.lock index 277f5ae..035f056 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -643,26 +643,6 @@ version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" -[[package]] -name = "bindgen" -version = "0.72.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" -dependencies = [ - "bitflags 2.13.2", - "cexpr", - "clang-sys", - "itertools 0.13.0", - "log", - "prettyplease", - "proc-macro2", - "quote", - "regex", - "rustc-hash 2.1.3", - "shlex 1.3.0", - "syn 2.0.119", -] - [[package]] name = "bit-set" version = "0.8.0" @@ -787,16 +767,6 @@ dependencies = [ "piper", ] -[[package]] -name = "borsh" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "553c5d846a6ba5150c65e3b1b8ec073bcf1abc20f9b7220de384a4443ea4e20a" -dependencies = [ - "bytes", - "cfg_aliases", -] - [[package]] name = "bstr" version = "1.13.1" @@ -957,16 +927,7 @@ dependencies = [ "find-msvc-tools", "jobserver", "libc", - "shlex 2.0.1", -] - -[[package]] -name = "cexpr" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" -dependencies = [ - "nom 7.1.3", + "shlex", ] [[package]] @@ -1026,17 +987,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "clang-sys" -version = "1.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "157a8ba7b480713b56f4c09fd13fc3e0a22a5dfab8097ba61cbc5feef950788a" -dependencies = [ - "glob", - "libc", - "libloading", -] - [[package]] name = "cmake" version = "0.1.58" @@ -1064,9 +1014,9 @@ dependencies = [ [[package]] name = "cocoa" -version = "0.26.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad36507aeb7e16159dfe68db81ccc27571c3ccd4b76fb2fb72fc59e7a4b1b64c" +checksum = "f79398230a6e2c08f5c9760610eb6924b52aa9e7950a619602baba59dcbbdbb2" dependencies = [ "bitflags 2.13.2", "block", @@ -1710,7 +1660,6 @@ checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" dependencies = [ "bitflags 2.13.2", "block2 0.6.2", - "libc", "objc2 0.6.4", ] @@ -2588,9 +2537,9 @@ dependencies = [ [[package]] name = "gpui-base" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64bb52b29a8dcdc8d3f595b8b0839c076f237572ab601ba4577d3da8ae085728" +checksum = "3cf698677b253118459f552fe15513858c669d79a25837a94e480db2ae330050" dependencies = [ "aho-corasick", "anyhow", @@ -2621,6 +2570,7 @@ dependencies = [ "smallvec", "smol", "tracing", + "unicode-linebreak", "unicode-segmentation", "web-time", "windows 0.58.0", @@ -2628,9 +2578,9 @@ dependencies = [ [[package]] name = "gpui-component" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac246c9f3d9771e56fbf90bd7d8656d0992d83940b580debf2efab4c44fe91df" +checksum = "bc8b7def8e74b0d822d3e96f6b28fb5a2c20eb7a83d30d22fa59ca8088d1159b" dependencies = [ "anyhow", "chrono", @@ -2647,7 +2597,7 @@ dependencies = [ "log", "lsp-types", "markdown", - "notify", + "notify 8.2.0", "num-traits", "objc2 0.6.4", "objc2-app-kit 0.3.2", @@ -2672,9 +2622,9 @@ dependencies = [ [[package]] name = "gpui-component-macros" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b3574bd6e108b9a09c9d584e60626c9140add6d8fe839bf57627577b7977e" +checksum = "2968cc7f4a2bd8f51b09cfe4f1e77409951b48a0e2d48f372b010e69c3d7fb49" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -2683,61 +2633,16 @@ dependencies = [ ] [[package]] -name = "gpui-kit" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8edb2a8eafdb6e65ad1a80625347b93f8e54cbf3fac82a584e4924cda674d5c2" -dependencies = [ - "gpui-base", - "gpui-component", - "gpui-kit-assets", - "gpui-pre", - "gpui-pre-platform", - "gpui-pre-web", -] - -[[package]] -name = "gpui-kit-assets" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "885a2abd416e29a76ef1553aea06eb2645a9290cf5e1d3fa02d218ecac6d318f" -dependencies = [ - "anyhow", - "gpui-pre", - "gpui-pre-reqwest", - "log", - "rust-embed", - "wasm-bindgen", - "wasm-bindgen-futures", -] - -[[package]] -name = "gpui-omarchy" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e527176d8b0fddd1e67abfdaaef128db907c43d0e03a56b5deaeb523da721110" -dependencies = [ - "async-channel", - "chrono", - "gpui-kit", - "itertools 0.13.0", - "notify", - "num-traits", - "toml 0.8.23", -] - -[[package]] -name = "gpui-pre" -version = "0.3.7" +name = "gpui-fast" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e87a42bb37c7cb4e76dd1ac0ce88851e46e976e0373a47ab3e0757abffee54d" +checksum = "063c617c09f2799eeef3fbe8c4e28b45accc30dfab1faa8bcd96786d2b11241d" dependencies = [ "accesskit", "anyhow", "async-channel", "async-task", "backtrace", - "bindgen", "bitflags 2.13.2", "chrono", "core-video", @@ -2748,24 +2653,22 @@ dependencies = [ "futures", "futures-concurrency", "getrandom 0.3.4", + "gpui-fast-macros", "gpui-pre-collections", "gpui-pre-http-client", - "gpui-pre-macros", "gpui-pre-refineable", "gpui-pre-scheduler", "gpui-pre-shared-string", "gpui-pre-sum-tree", "gpui-pre-util", - "gpui-pre-util-macros", "heapless", "image", "inventory", "itertools 0.14.0", + "libc", "log", "lyon", "num_cpus", - "objc2-core-foundation", - "objc2-core-video", "parking", "parking_lot", "pin-project", @@ -2794,99 +2697,61 @@ dependencies = [ "waker-fn", "web-time", "windows 0.62.2", - "zed-font-kit", "zed-scap", ] [[package]] -name = "gpui-pre-apple" -version = "0.3.7" +name = "gpui-fast-apple" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00053551517815ab169fda28fff78dbebf2712722593c7671c511785cb3f79d5" +checksum = "cb9dabf74c5d53ec08800ba8c1db99b2dd0c217a6dcd1ab68d43155c6fc05f5b" dependencies = [ "anyhow", + "async-task", "block2 0.6.2", "cbindgen", - "cocoa 0.26.1", "core-foundation 0.10.1", + "core-graphics 0.24.0", "core-video", "derive_more", + "dispatch2", "etagere", "foreign-types", - "gpui-pre", + "gpui-fast", + "gpui-pre-collections", + "gpui-pre-util", "image", + "libc", "log", + "mach2", "metal", - "objc", "objc2 0.6.4", + "objc2-foundation 0.3.2", + "objc2-quartz-core 0.3.2", "parking_lot", ] [[package]] -name = "gpui-pre-collections" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f79760925c31ed06924d28d68981b5b22b2ce25665f58f0a33dfea11170e6e28" -dependencies = [ - "gpui-pre-util", - "indexmap", - "rustc-hash 2.1.3", -] - -[[package]] -name = "gpui-pre-derive-refineable" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1aea3f941581a6a9dd545ecd351ef2d336fe6e2a1a4555cb6414944a4984260" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.119", -] - -[[package]] -name = "gpui-pre-http-client" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddce27e989e877a3a1a243f97d7ea4f1ade2532abec418d5a0be9cca802702c7" -dependencies = [ - "anyhow", - "async-compression", - "bytes", - "derive_more", - "futures", - "http", - "http-body", - "log", - "parking_lot", - "serde", - "serde_json", - "serde_urlencoded", - "url", -] - -[[package]] -name = "gpui-pre-linux" -version = "0.3.7" +name = "gpui-fast-linux" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0aac7022e347409454777701082201742710052813964a1e25160f7e22c965ad" +checksum = "305917c8a77f06ab0470fb1ca1ac4f79d775392d02677f7b15102bbb9c7cd06e" dependencies = [ "accesskit", "accesskit_unix", "anyhow", "as-raw-xcb-connection", "ashpd", - "bitflags 2.13.2", "bytemuck", "calloop", "calloop-wayland-source", "filedescriptor", "futures", - "gpui-pre", + "gpui-fast", + "gpui-fast-wgpu", "gpui-pre-collections", "gpui-pre-http-client", "gpui-pre-util", - "gpui-pre-wgpu", "libc", "log", "notify-rust", @@ -2905,7 +2770,6 @@ dependencies = [ "wayland-protocols", "wayland-protocols-plasma", "wayland-protocols-wlr", - "x11-clipboard", "x11rb", "xkbcommon", "zed-scap", @@ -2913,41 +2777,37 @@ dependencies = [ ] [[package]] -name = "gpui-pre-macos" -version = "0.3.7" +name = "gpui-fast-macos" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a43af845b260b09393e923c4f1e1a67a10fcfc847b4815192bbfd02ed9fe725" +checksum = "ef3dacfb363254bd26d882a89f047661961478b0a1887b3e56e5072c189b841f" dependencies = [ "accesskit", "accesskit_macos", "anyhow", - "async-task", "block2 0.6.2", - "cocoa 0.26.1", + "cocoa 0.26.0", "core-foundation 0.10.1", "core-foundation-sys", "core-graphics 0.24.0", "core-text", + "core-video", "ctor", "dispatch2", "foreign-types", "futures", - "gpui-pre", - "gpui-pre-apple", + "gpui-fast", + "gpui-fast-apple", "gpui-pre-collections", + "gpui-pre-scheduler", "gpui-pre-util", "image", "itertools 0.14.0", - "libc", "log", - "mach2", "objc", "objc2 0.6.4", "objc2-app-kit 0.3.2", - "objc2-core-graphics", - "objc2-core-media", "objc2-foundation 0.3.2", - "objc2-screen-capture-kit", "objc2-user-notifications", "parking_lot", "pathfinder_geometry", @@ -2960,50 +2820,240 @@ dependencies = [ ] [[package]] -name = "gpui-pre-macros" -version = "0.3.7" +name = "gpui-fast-macros" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1627c5dd3c3351e39e0621d3f3e31dbbe7c7658df90b1d2ec12bfe95d54cd37" +checksum = "e9051723a3598773b1f5cb8ac7c33a9a227699b31904dd63de5d57c01684caa4" dependencies = [ "heck 0.5.0", - "proc-macro-crate", "proc-macro2", "quote", "syn 2.0.119", ] [[package]] -name = "gpui-pre-perf" -version = "0.3.7" +name = "gpui-fast-platform" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01954497dd02ba96ab4c252a8668643b0cc3085e7a75dca62e7ba0e3dcd83b02" +checksum = "18305747bc566ec0bb1f8348e479699519647540f1702386600e39a7604cb4fb" dependencies = [ - "gpui-pre-collections", - "serde", - "serde_json", + "anyhow", + "console_error_panic_hook", + "gpui-fast", + "gpui-fast-linux", + "gpui-fast-macos", + "gpui-fast-web", + "gpui-fast-wgpu", + "gpui-fast-windows", ] [[package]] -name = "gpui-pre-platform" -version = "0.3.7" +name = "gpui-fast-web" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0112105c2ac6757fbf527c9c92a753be9bcbce9f4cf26959a11eaa1db6565aa5" +checksum = "529498fa42c422c99597d978ceb1d695aab95cf29bbaef38bb713adc4cb3ec9c" dependencies = [ "anyhow", "console_error_panic_hook", + "futures", + "gpui-fast", + "gpui-fast-wgpu", + "gpui-pre-http-client", + "gpui-pre-scheduler", + "js-sys", + "log", + "parking_lot", + "raw-window-handle", + "smallvec", + "unicode-properties", + "unicode-script", + "unicode-segmentation", + "uuid", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm_thread", + "web-sys", + "web-time", +] + +[[package]] +name = "gpui-fast-wgpu" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ee1db0fc36312f20a5b8f162da84064ae2f6a83e1fe03654a3506317f3d1760" +dependencies = [ + "anyhow", + "bytemuck", + "cosmic-text", + "etagere", + "gpui-fast", + "gpui-pre-collections", + "gpui-pre-util", + "image", + "itertools 0.14.0", + "log", + "parking_lot", + "profiling", + "raw-window-handle", + "smallvec", + "swash", + "unicode-bidi", + "unicode-segmentation", + "web-sys", + "wgpu", + "zed-font-kit", +] + +[[package]] +name = "gpui-fast-windows" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c63ee81356fc36dac8b9ce7b7e576d0046d99b6615f73914c4ee1c086836fa0d" +dependencies = [ + "accesskit", + "accesskit_windows", + "anyhow", + "dunce", + "etagere", + "futures", + "gpui-fast", + "gpui-pre-collections", + "gpui-pre-scheduler", + "gpui-pre-util", + "image", + "itertools 0.14.0", + "log", + "parking_lot", + "rand 0.9.5", + "raw-window-handle", + "smallvec", + "uuid", + "windows 0.62.2", + "windows-core 0.62.2", + "windows-numerics 0.3.1", + "windows-registry 0.6.1", +] + +[[package]] +name = "gpui-kit" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be18e0417095ebfea77ac25962961ff4e41a120ea6cb8f05a7505b682478b83e" +dependencies = [ + "gpui-base", + "gpui-component", + "gpui-kit-assets", "gpui-pre", - "gpui-pre-linux", - "gpui-pre-macos", + "gpui-pre-platform", "gpui-pre-web", - "gpui-pre-wgpu", - "gpui-pre-windows", +] + +[[package]] +name = "gpui-kit-assets" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db6c481ca987f1e6f10b1aed4d47f1b301cd1dc6f3016fac93c305f2a4f307c0" +dependencies = [ + "anyhow", + "gpui-pre", + "gpui-pre-reqwest", + "log", + "rust-embed", + "wasm-bindgen", + "wasm-bindgen-futures", +] + +[[package]] +name = "gpui-omarchy" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41462d5f3aa1056cdce799d6b4dfb1c04b47a3649d1a4eb5e2e29d8ca3434eed" +dependencies = [ + "async-channel", + "chrono", + "gpui-kit", + "itertools 0.13.0", + "notify 7.0.0", + "num-traits", + "toml 0.8.23", +] + +[[package]] +name = "gpui-pre" +version = "0.3.8" +dependencies = [ + "gpui-fast", +] + +[[package]] +name = "gpui-pre-collections" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c060863025dc3b8e90febad2d1f4ffd23a5d0dcedba39d3f6b7820ea2fdd3a0" +dependencies = [ + "gpui-pre-util", + "indexmap", + "rustc-hash 2.1.3", +] + +[[package]] +name = "gpui-pre-derive-refineable" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc834f30f5f49791e214f1fde01a009c7de91c9cd0a9f31dabfed130ba39e6cf" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "gpui-pre-http-client" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d2935cf82333da3f41774e5757837756408f01356197b41c817ad2666034453" +dependencies = [ + "anyhow", + "async-compression", + "bytes", + "derive_more", + "futures", + "http", + "http-body", + "log", + "parking_lot", + "serde", + "serde_json", + "serde_urlencoded", + "url", +] + +[[package]] +name = "gpui-pre-macros" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2ad26ca759364694cb55487bebff4c1b7dd6accab49990ff3cda6f7a818a9f4" +dependencies = [ + "heck 0.5.0", + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "gpui-pre-platform" +version = "0.3.8" +dependencies = [ + "gpui-fast-platform", + "gpui-pre", ] [[package]] name = "gpui-pre-refineable" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffd14639e5dfab906bbaeabfe0f94289120dcf2e6ed37217deb13964867e89a5" +checksum = "4042345bb5bd3ecbc5d15b21ed128154f462a992058d7038cd397631f5462338" dependencies = [ "gpui-pre-derive-refineable", ] @@ -3060,9 +3110,9 @@ dependencies = [ [[package]] name = "gpui-pre-scheduler" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8049963b716df01b67b58f86000597f222d5b31b15b35069b23a3b07f3c68352" +checksum = "f4acd73345bc3c09f1b98c1b21eb4459ad8336f89bb2edcef619e11c5a08456e" dependencies = [ "async-task", "backtrace", @@ -3077,9 +3127,9 @@ dependencies = [ [[package]] name = "gpui-pre-shared-string" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ef6314bdf5ab162c1913712ec4a91b013ce2a9cfb0b557ecdfdd5793c8b61d3" +checksum = "477529fd5aa90bff969785ee9a3938484d94aa5101cdf7b84719629c0345f98a" dependencies = [ "schemars", "serde", @@ -3088,9 +3138,9 @@ dependencies = [ [[package]] name = "gpui-pre-sum-tree" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cca7e5fad9d53b2d265860fefdffc5f171966cb99c3fd99ecac15c033f19209" +checksum = "9ec0ec176d576b82aed716cf47185856b54ea9528caaf9d01787024689bfd824" dependencies = [ "gpui-pre-ztracing", "heapless", @@ -3101,31 +3151,20 @@ dependencies = [ [[package]] name = "gpui-pre-util" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d82e06359ae76f8bb07ed713c54adb80cea6a9a2d3dc715f41aec30cd2aadb4d" +checksum = "e1635ae7d0b05400bfa211ddef6c67dc8d9f223c463022c2b3bf2c1c14c6044f" dependencies = [ "anyhow", "log", "which", ] -[[package]] -name = "gpui-pre-util-macros" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8a0da4143bb0e7eb926eed7edd3a61c9d17344207543dcc25fb398f0cb96b2f" -dependencies = [ - "gpui-pre-perf", - "quote", - "syn 2.0.119", -] - [[package]] name = "gpui-pre-web" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab3870cc909471bb830c3d79496770c754401aad6cfa122147ccb13e8908ad08" +checksum = "184776d0763e6889dd2842dcb1204c15055945f2bdfe926b5ef57bdbd1952a65" dependencies = [ "anyhow", "console_error_panic_hook", @@ -3152,9 +3191,9 @@ dependencies = [ [[package]] name = "gpui-pre-wgpu" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0b02657b56b09140ce542f5e4434fb96d9fdaba0fd0035ba7dba13c171ddb9b" +checksum = "439c5421cafe1a7cf68d0c0ae5cc82b26fad6b0e6345ac98d20acaf1f2463914" dependencies = [ "anyhow", "bytemuck", @@ -3163,7 +3202,6 @@ dependencies = [ "gpui-pre", "gpui-pre-collections", "gpui-pre-util", - "image", "itertools 0.14.0", "log", "parking_lot", @@ -3175,43 +3213,13 @@ dependencies = [ "unicode-segmentation", "web-sys", "wgpu", - "zed-font-kit", -] - -[[package]] -name = "gpui-pre-windows" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f05592a6f9e3e6bb7a9f2a0d4779271cf747a948db1c07b02448de777ffff8f3" -dependencies = [ - "accesskit", - "accesskit_windows", - "anyhow", - "dunce", - "etagere", - "futures", - "gpui-pre", - "gpui-pre-collections", - "gpui-pre-util", - "image", - "itertools 0.14.0", - "log", - "parking_lot", - "rand 0.9.5", - "raw-window-handle", - "smallvec", - "uuid", - "windows 0.62.2", - "windows-core 0.62.2", - "windows-numerics 0.3.1", - "windows-registry 0.6.1", ] [[package]] name = "gpui-pre-zlog" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7506302091e66d7fb5e04a5b3480e90cff0bbe3157458d7df91a41c59238c48" +checksum = "3bbe5b98630ef4bfed5a7105ec1062e78d571912bc491388f07ea22f2457c18b" dependencies = [ "anyhow", "chrono", @@ -3221,9 +3229,9 @@ dependencies = [ [[package]] name = "gpui-pre-ztracing" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ed1bc6d53b3ca93785a8573d1066d555b67bc475b344fb28871f9811eb6f218" +checksum = "f806400f6bda1fdd9fc627e158c0e44fb0c4b7767582a3621efcf92f4a850db7" dependencies = [ "gpui-pre-zlog", "gpui-pre-ztracing-macro", @@ -3233,9 +3241,9 @@ dependencies = [ [[package]] name = "gpui-pre-ztracing-macro" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "829258540ea51bb9ea4a71686beffe5c99586901ba9f39944d06e4a180ab63fe" +checksum = "d337c9acf058238e45ce0570d8a5958439242889492f91ae2d8e324211a61ccd" [[package]] name = "granit-parser" @@ -3751,6 +3759,17 @@ dependencies = [ "libc", ] +[[package]] +name = "inotify" +version = "0.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cc00ea907cab49550b7da656f80ebb97be1b997d931fbcd28d39734e17ce592" +dependencies = [ + "bitflags 2.13.2", + "inotify-sys", + "libc", +] + [[package]] name = "inotify-sys" version = "0.1.8" @@ -4310,12 +4329,9 @@ dependencies = [ [[package]] name = "mach2" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a1b95cd5421ec55b445b5ae102f5ea0e768de1f82bd3001e11f426c269c3aea" -dependencies = [ - "libc", -] +checksum = "dae608c151f68243f2b000364e1f7b186d9c29845f7d2d85bd31b9ad77ad552b" [[package]] name = "malloc_buf" @@ -4605,16 +4621,34 @@ dependencies = [ "bitflags 2.13.2", "filetime", "fsevent-sys", - "inotify", + "inotify 0.10.2", "kqueue", "libc", "log", "mio", - "notify-types", + "notify-types 1.0.1", "walkdir", "windows-sys 0.52.0", ] +[[package]] +name = "notify" +version = "8.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3" +dependencies = [ + "bitflags 2.13.2", + "fsevent-sys", + "inotify 0.11.5", + "kqueue", + "libc", + "log", + "mio", + "notify-types 2.1.0", + "walkdir", + "windows-sys 0.60.2", +] + [[package]] name = "notify-rust" version = "4.18.1" @@ -4638,6 +4672,15 @@ dependencies = [ "instant", ] +[[package]] +name = "notify-types" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42b8cfee0e339a0337359f3c88165702ac6e600dc01c0cc9579a92d62b08477a" +dependencies = [ + "bitflags 2.13.2", +] + [[package]] name = "ntapi" version = "0.4.3" @@ -4884,28 +4927,6 @@ dependencies = [ "objc2-foundation 0.3.2", ] -[[package]] -name = "objc2-core-audio" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1eebcea8b0dbff5f7c8504f3107c68fc061a3eb44932051c8cf8a68d969c3b2" -dependencies = [ - "dispatch2", - "objc2 0.6.4", - "objc2-core-audio-types", - "objc2-core-foundation", -] - -[[package]] -name = "objc2-core-audio-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a89f2ec274a0cf4a32642b2991e8b351a404d290da87bb6a9a9d8632490bd1c" -dependencies = [ - "bitflags 2.13.2", - "objc2 0.6.4", -] - [[package]] name = "objc2-core-data" version = "0.2.2" @@ -4975,31 +4996,6 @@ dependencies = [ "objc2-foundation 0.3.2", ] -[[package]] -name = "objc2-core-location" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca347214e24bc973fc025fd0d36ebb179ff30536ed1f80252706db19ee452009" -dependencies = [ - "objc2 0.6.4", - "objc2-foundation 0.3.2", -] - -[[package]] -name = "objc2-core-media" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05ec576860167a15dd9fce7fbee7512beb4e31f532159d3482d1f9c6caedf31d" -dependencies = [ - "bitflags 2.13.2", - "dispatch2", - "objc2 0.6.4", - "objc2-core-audio", - "objc2-core-audio-types", - "objc2-core-foundation", - "objc2-core-video", -] - [[package]] name = "objc2-core-text" version = "0.3.2" @@ -5117,20 +5113,6 @@ dependencies = [ "objc2-metal 0.3.2", ] -[[package]] -name = "objc2-screen-capture-kit" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74b7c5390f477482f001bc354d6571a70db7e4f8d5288e860c45521fbce11394" -dependencies = [ - "block2 0.6.2", - "dispatch2", - "objc2 0.6.4", - "objc2-core-graphics", - "objc2-core-media", - "objc2-foundation 0.3.2", -] - [[package]] name = "objc2-user-notifications" version = "0.3.2" @@ -5140,7 +5122,6 @@ dependencies = [ "bitflags 2.13.2", "block2 0.6.2", "objc2 0.6.4", - "objc2-core-location", "objc2-foundation 0.3.2", ] @@ -5643,8 +5624,6 @@ checksum = "af3fb618632874fb76937c2361a7f22afd393c982a2165595407edc75b06d3c1" dependencies = [ "atomic", "crossbeam-queue", - "futures", - "log", "parking_lot", "pin-project", "pollster 0.2.5", @@ -5688,16 +5667,6 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8cf8e6a8aa66ce33f63993ffc4ea4271eb5b0530a9002db8455ea6050c77bfa" -[[package]] -name = "prettyplease" -version = "0.2.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" -dependencies = [ - "proc-macro2", - "syn 2.0.119", -] - [[package]] name = "proc-macro-crate" version = "3.5.0" @@ -7067,12 +7036,6 @@ dependencies = [ "dirs 6.0.0", ] -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - [[package]] name = "shlex" version = "2.0.1" @@ -7218,7 +7181,6 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4aaa7368fcf4852a4c2dd92df0cace6a71f2091ca0a23391ce7f3a31833f1523" dependencies = [ - "borsh", "serde_core", ] @@ -8202,9 +8164,9 @@ checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" [[package]] name = "unicode-properties" -version = "0.1.4" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7df058c713841ad818f1dc5d3fd88063241cc61f49f5fbea4b951e8cf5a8d71d" +checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0" [[package]] name = "unicode-script" @@ -9337,6 +9299,15 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.5", +] + [[package]] name = "windows-sys" version = "0.61.2" @@ -9628,16 +9599,6 @@ dependencies = [ "pkg-config", ] -[[package]] -name = "x11-clipboard" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "662d74b3d77e396b8e5beb00b9cad6a9eccf40b2ef68cc858784b14c41d535a3" -dependencies = [ - "libc", - "x11rb", -] - [[package]] name = "x11rb" version = "0.13.2" diff --git a/Cargo.toml b/Cargo.toml index d046d7e..304469c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,6 +13,10 @@ default = ["desktop"] desktop = ["dep:gpui-omarchy", "dep:gpui-kit"] ui-tests = ["desktop", "gpui-kit/test-support"] +[patch.crates-io] +gpui-pre = { path = "vendor/gpui-backend/gpui-pre" } +gpui-pre-platform = { path = "vendor/gpui-backend/gpui-pre-platform" } + [dependencies] anyhow = "1" async-channel = "2" @@ -21,10 +25,8 @@ chrono = "0.4" cap-std = "3" dirs = "6" futures-util = "0.3" -gpui-omarchy = { version = "0.2.0", optional = true } -# gpui-kit-assets carries the shared Lucide IconName from longbridge/gpui-kit#3020. -# Move back to a published version once that release is out. -gpui-kit = { version = "0.7.0", default-features = false, features = ["assets"], optional = true } +gpui-omarchy = { version = "0.2.1", optional = true } +gpui-kit = { version = "=0.7.1", default-features = false, features = ["assets"], optional = true } localsend = { path = "vendor/localsend", features = ["discovery"] } if-addrs = "0.15" gethostname = "1.1" diff --git a/README.md b/README.md index 387367d..3476928 100644 --- a/README.md +++ b/README.md @@ -85,6 +85,9 @@ With a recent stable Rust toolchain and your platform’s development libraries: cargo run --release --locked ``` +Desktop builds use [GPUI Fast](https://github.com/longbridge/gpui-fast) 0.1.0 +through GPUI Kit 0.7.1. + Linux builds require a C/C++ compiler, CMake, pkg-config, and development libraries for OpenSSL, Fontconfig, FreeType, xkbcommon, X11/XCB, Wayland, Vulkan, and Zstandard. Install `wl-clipboard` for clipboard support on Wayland. diff --git a/src/main.rs b/src/main.rs index 34b4860..f864801 100644 --- a/src/main.rs +++ b/src/main.rs @@ -7,6 +7,9 @@ // `omasend::i18n` decides which locale both halves resolve against. rust_i18n::i18n!("locales", fallback = "en"); +// gpui-fast macros emit paths through ::gpui. +extern crate gpui_kit as gpui; + mod views; // gpui-kit-assets embeds a default bundle for the component set; Omasend needs diff --git a/vendor/gpui-backend/README.md b/vendor/gpui-backend/README.md new file mode 100644 index 0000000..09a3e26 --- /dev/null +++ b/vendor/gpui-backend/README.md @@ -0,0 +1,14 @@ +# GPUI Fast compatibility facades + +GPUI Kit 0.7.1 pins `gpui-pre` and `gpui-pre-platform` 0.3.8. These two small +facades patch those packages and re-export the published `gpui-fast` and +`gpui-fast-platform` packages, pinned to exactly 0.1.0. Features are forwarded +to GPUI Fast so GPUI Kit, assets, and native windows use the same engine. + +This follows the facade approach in +https://github.com/longbridge/gpui-fast/tree/main/compat, using crates.io releases. +The app aliases GPUI Kit as `gpui` because GPUI Fast's macros emit `::gpui` paths. + +When updating GPUI Kit, align the facade versions with its GPUI snapshot and +recheck the feature forwarding against GPUI Fast. Shared `gpui-pre-*` utility +crates stay on 0.3.8, the version also used by GPUI Fast 0.1.0. diff --git a/vendor/gpui-backend/gpui-pre-platform/Cargo.toml b/vendor/gpui-backend/gpui-pre-platform/Cargo.toml new file mode 100644 index 0000000..06e4ddc --- /dev/null +++ b/vendor/gpui-backend/gpui-pre-platform/Cargo.toml @@ -0,0 +1,25 @@ +[package] +name = "gpui-pre-platform" +version = "0.3.8" +edition = "2024" +license = "Apache-2.0" +publish = false + +[lib] +name = "gpui_platform" +path = "lib.rs" + +[features] +default = ["fast/default"] +bench-support = ["fast/bench-support"] +font-kit = ["fast/font-kit"] +inspector = ["gpui/inspector"] +runtime_shaders = ["fast/runtime_shaders"] +screen-capture = ["fast/screen-capture"] +test-support = ["fast/test-support"] +wayland = ["fast/wayland"] +x11 = ["fast/x11"] + +[dependencies] +fast = { package = "gpui-fast-platform", version = "=0.1.0", default-features = false } +gpui = { package = "gpui-pre", path = "../gpui-pre", default-features = false } diff --git a/vendor/gpui-backend/gpui-pre-platform/lib.rs b/vendor/gpui-backend/gpui-pre-platform/lib.rs new file mode 100644 index 0000000..3372aac --- /dev/null +++ b/vendor/gpui-backend/gpui-pre-platform/lib.rs @@ -0,0 +1 @@ +pub use fast::*; diff --git a/vendor/gpui-backend/gpui-pre/Cargo.toml b/vendor/gpui-backend/gpui-pre/Cargo.toml new file mode 100644 index 0000000..09cf9d2 --- /dev/null +++ b/vendor/gpui-backend/gpui-pre/Cargo.toml @@ -0,0 +1,27 @@ +[package] +name = "gpui-pre" +version = "0.3.8" +edition = "2024" +license = "Apache-2.0" +publish = false + +[lib] +name = "gpui" +path = "lib.rs" + +[features] +default = ["fast/default"] +bench = ["fast/bench"] +bench-support = ["fast/bench-support"] +inspector = ["fast/inspector"] +leak-detection = ["fast/leak-detection"] +profiler = ["fast/profiler"] +screen-capture = ["fast/screen-capture"] +stacker = ["fast/stacker"] +test-support = ["fast/test-support"] +wayland = ["fast/wayland"] +windows-manifest = ["fast/windows-manifest"] +x11 = ["fast/x11"] + +[dependencies] +fast = { package = "gpui-fast", version = "=0.1.0", default-features = false } diff --git a/vendor/gpui-backend/gpui-pre/lib.rs b/vendor/gpui-backend/gpui-pre/lib.rs new file mode 100644 index 0000000..3372aac --- /dev/null +++ b/vendor/gpui-backend/gpui-pre/lib.rs @@ -0,0 +1 @@ +pub use fast::*; From befcac9899f33db4ab565312597f8e3802821e4e Mon Sep 17 00:00:00 2001 From: Jason Lee Date: Tue, 6 Oct 2026 14:14:36 +0800 Subject: [PATCH 2/9] Allow compatible GPUI Fast updates --- vendor/gpui-backend/README.md | 3 ++- vendor/gpui-backend/gpui-pre-platform/Cargo.toml | 2 +- vendor/gpui-backend/gpui-pre/Cargo.toml | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/vendor/gpui-backend/README.md b/vendor/gpui-backend/README.md index 09a3e26..db9b1bc 100644 --- a/vendor/gpui-backend/README.md +++ b/vendor/gpui-backend/README.md @@ -2,7 +2,8 @@ GPUI Kit 0.7.1 pins `gpui-pre` and `gpui-pre-platform` 0.3.8. These two small facades patch those packages and re-export the published `gpui-fast` and -`gpui-fast-platform` packages, pinned to exactly 0.1.0. Features are forwarded +`gpui-fast-platform` packages with a `0.1.0` version requirement, allowing compatible `0.1.x` updates +through `cargo update`. Features are forwarded to GPUI Fast so GPUI Kit, assets, and native windows use the same engine. This follows the facade approach in diff --git a/vendor/gpui-backend/gpui-pre-platform/Cargo.toml b/vendor/gpui-backend/gpui-pre-platform/Cargo.toml index 06e4ddc..a037d15 100644 --- a/vendor/gpui-backend/gpui-pre-platform/Cargo.toml +++ b/vendor/gpui-backend/gpui-pre-platform/Cargo.toml @@ -21,5 +21,5 @@ wayland = ["fast/wayland"] x11 = ["fast/x11"] [dependencies] -fast = { package = "gpui-fast-platform", version = "=0.1.0", default-features = false } +fast = { package = "gpui-fast-platform", version = "0.1.0", default-features = false } gpui = { package = "gpui-pre", path = "../gpui-pre", default-features = false } diff --git a/vendor/gpui-backend/gpui-pre/Cargo.toml b/vendor/gpui-backend/gpui-pre/Cargo.toml index 09cf9d2..a7971d9 100644 --- a/vendor/gpui-backend/gpui-pre/Cargo.toml +++ b/vendor/gpui-backend/gpui-pre/Cargo.toml @@ -24,4 +24,4 @@ windows-manifest = ["fast/windows-manifest"] x11 = ["fast/x11"] [dependencies] -fast = { package = "gpui-fast", version = "=0.1.0", default-features = false } +fast = { package = "gpui-fast", version = "0.1.0", default-features = false } From bd4e4acf8728623a3d2937d401d47cfdcda73487 Mon Sep 17 00:00:00 2001 From: Jason Lee Date: Tue, 6 Oct 2026 14:50:37 +0800 Subject: [PATCH 3/9] Use GPUI Kit's gpui-fast feature --- Cargo.lock | 444 +++++++++++++++++- Cargo.toml | 7 +- README.md | 8 +- src/main.rs | 3 - vendor/gpui-backend/README.md | 15 - .../gpui-backend/gpui-pre-platform/Cargo.toml | 25 - vendor/gpui-backend/gpui-pre-platform/lib.rs | 1 - vendor/gpui-backend/gpui-pre/Cargo.toml | 27 -- vendor/gpui-backend/gpui-pre/lib.rs | 1 - 9 files changed, 434 insertions(+), 97 deletions(-) delete mode 100644 vendor/gpui-backend/README.md delete mode 100644 vendor/gpui-backend/gpui-pre-platform/Cargo.toml delete mode 100644 vendor/gpui-backend/gpui-pre-platform/lib.rs delete mode 100644 vendor/gpui-backend/gpui-pre/Cargo.toml delete mode 100644 vendor/gpui-backend/gpui-pre/lib.rs diff --git a/Cargo.lock b/Cargo.lock index 035f056..f6abc06 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -643,6 +643,26 @@ version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" +[[package]] +name = "bindgen" +version = "0.72.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" +dependencies = [ + "bitflags 2.13.2", + "cexpr", + "clang-sys", + "itertools 0.11.0", + "log", + "prettyplease", + "proc-macro2", + "quote", + "regex", + "rustc-hash 2.1.3", + "shlex 1.3.0", + "syn 2.0.119", +] + [[package]] name = "bit-set" version = "0.8.0" @@ -927,7 +947,16 @@ dependencies = [ "find-msvc-tools", "jobserver", "libc", - "shlex", + "shlex 2.0.1", +] + +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom 7.1.3", ] [[package]] @@ -987,6 +1016,17 @@ dependencies = [ "zeroize", ] +[[package]] +name = "clang-sys" +version = "1.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "157a8ba7b480713b56f4c09fd13fc3e0a22a5dfab8097ba61cbc5feef950788a" +dependencies = [ + "glob", + "libc", + "libloading", +] + [[package]] name = "cmake" version = "0.1.58" @@ -1660,6 +1700,7 @@ checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" dependencies = [ "bitflags 2.13.2", "block2 0.6.2", + "libc", "objc2 0.6.4", ] @@ -2538,8 +2579,7 @@ dependencies = [ [[package]] name = "gpui-base" version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cf698677b253118459f552fe15513858c669d79a25837a94e480db2ae330050" +source = "git+https://github.com/longbridge/gpui-kit?branch=add-gpui-fast-feature#f7f9ceaef87a2a07358a41e309bc7d2e4f97359e" dependencies = [ "aho-corasick", "anyhow", @@ -2548,7 +2588,7 @@ dependencies = [ "chrono", "data-url", "futures", - "gpui-pre", + "gpui-kit-core", "gpui-pre-macros", "gpui-pre-sum-tree", "html5ever", @@ -2579,8 +2619,7 @@ dependencies = [ [[package]] name = "gpui-component" version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc8b7def8e74b0d822d3e96f6b28fb5a2c20eb7a83d30d22fa59ca8088d1159b" +source = "git+https://github.com/longbridge/gpui-kit?branch=add-gpui-fast-feature#f7f9ceaef87a2a07358a41e309bc7d2e4f97359e" dependencies = [ "anyhow", "chrono", @@ -2589,7 +2628,7 @@ dependencies = [ "gpui-base", "gpui-component-macros", "gpui-kit-assets", - "gpui-pre", + "gpui-kit-core", "gpui-pre-macros", "gpui-pre-sum-tree", "instant", @@ -2623,8 +2662,7 @@ dependencies = [ [[package]] name = "gpui-component-macros" version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2968cc7f4a2bd8f51b09cfe4f1e77409951b48a0e2d48f372b010e69c3d7fb49" +source = "git+https://github.com/longbridge/gpui-kit?branch=add-gpui-fast-feature#f7f9ceaef87a2a07358a41e309bc7d2e4f97359e" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -2723,7 +2761,7 @@ dependencies = [ "image", "libc", "log", - "mach2", + "mach2 0.6.0", "metal", "objc2 0.6.4", "objc2-foundation 0.3.2", @@ -2937,25 +2975,23 @@ dependencies = [ [[package]] name = "gpui-kit" version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be18e0417095ebfea77ac25962961ff4e41a120ea6cb8f05a7505b682478b83e" +source = "git+https://github.com/longbridge/gpui-kit?branch=add-gpui-fast-feature#f7f9ceaef87a2a07358a41e309bc7d2e4f97359e" dependencies = [ "gpui-base", "gpui-component", "gpui-kit-assets", - "gpui-pre", - "gpui-pre-platform", - "gpui-pre-web", + "gpui-kit-core", + "gpui-kit-platform", + "gpui-kit-web", ] [[package]] name = "gpui-kit-assets" version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db6c481ca987f1e6f10b1aed4d47f1b301cd1dc6f3016fac93c305f2a4f307c0" +source = "git+https://github.com/longbridge/gpui-kit?branch=add-gpui-fast-feature#f7f9ceaef87a2a07358a41e309bc7d2e4f97359e" dependencies = [ "anyhow", - "gpui-pre", + "gpui-kit-core", "gpui-pre-reqwest", "log", "rust-embed", @@ -2963,6 +2999,36 @@ dependencies = [ "wasm-bindgen-futures", ] +[[package]] +name = "gpui-kit-core" +version = "0.7.1" +source = "git+https://github.com/longbridge/gpui-kit?branch=add-gpui-fast-feature#f7f9ceaef87a2a07358a41e309bc7d2e4f97359e" +dependencies = [ + "gpui-fast", + "gpui-pre", + "gpui-pre-macros", +] + +[[package]] +name = "gpui-kit-platform" +version = "0.7.1" +source = "git+https://github.com/longbridge/gpui-kit?branch=add-gpui-fast-feature#f7f9ceaef87a2a07358a41e309bc7d2e4f97359e" +dependencies = [ + "gpui-fast-platform", + "gpui-kit-core", + "gpui-pre-platform", +] + +[[package]] +name = "gpui-kit-web" +version = "0.7.1" +source = "git+https://github.com/longbridge/gpui-kit?branch=add-gpui-fast-feature#f7f9ceaef87a2a07358a41e309bc7d2e4f97359e" +dependencies = [ + "gpui-fast-web", + "gpui-kit-core", + "gpui-pre-web", +] + [[package]] name = "gpui-omarchy" version = "0.2.1" @@ -2981,8 +3047,104 @@ dependencies = [ [[package]] name = "gpui-pre" version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7f0bc3ebba070f8981b3f8e905a12f47d27794a30d029e59cdb9edf7a4b3360" dependencies = [ - "gpui-fast", + "accesskit", + "anyhow", + "async-channel", + "async-task", + "backtrace", + "bindgen", + "bitflags 2.13.2", + "chrono", + "core-video", + "ctor", + "derive_more", + "embed-resource", + "etagere", + "futures", + "futures-concurrency", + "getrandom 0.3.4", + "gpui-pre-collections", + "gpui-pre-http-client", + "gpui-pre-macros", + "gpui-pre-refineable", + "gpui-pre-scheduler", + "gpui-pre-shared-string", + "gpui-pre-sum-tree", + "gpui-pre-util", + "gpui-pre-util-macros", + "heapless", + "image", + "inventory", + "itertools 0.14.0", + "libc", + "log", + "lyon", + "num_cpus", + "objc2-core-foundation", + "objc2-core-video", + "parking", + "parking_lot", + "pin-project", + "pollster 0.4.0", + "postage", + "profiling", + "proptest", + "rand 0.9.5", + "raw-window-handle", + "regex", + "resvg 0.46.0", + "schemars", + "seahash", + "serde", + "serde_json", + "slotmap", + "smallvec", + "spin 0.10.1", + "strum", + "taffy", + "thiserror 2.0.21", + "ttf-parser", + "url", + "usvg 0.46.0", + "uuid", + "waker-fn", + "web-time", + "windows 0.62.2", + "zed-font-kit", + "zed-scap", +] + +[[package]] +name = "gpui-pre-apple" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfdd914311cd12894367c8b9908947bb0c27fd42f8b9a5ff7a0730551a83fa4c" +dependencies = [ + "anyhow", + "async-task", + "block2 0.6.2", + "cbindgen", + "core-foundation 0.10.1", + "core-graphics 0.24.0", + "core-video", + "derive_more", + "dispatch2", + "etagere", + "foreign-types", + "gpui-pre", + "gpui-pre-util", + "image", + "libc", + "log", + "mach2 0.5.0", + "metal", + "objc2 0.6.4", + "objc2-foundation 0.3.2", + "objc2-quartz-core 0.3.2", + "parking_lot", ] [[package]] @@ -3028,6 +3190,97 @@ dependencies = [ "url", ] +[[package]] +name = "gpui-pre-linux" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1131746fad5c87b5de74dc9c73105655b0c820a2dd4bb247586573e7cf5720e" +dependencies = [ + "accesskit", + "accesskit_unix", + "anyhow", + "as-raw-xcb-connection", + "ashpd", + "bytemuck", + "calloop", + "calloop-wayland-source", + "filedescriptor", + "futures", + "gpui-pre", + "gpui-pre-collections", + "gpui-pre-http-client", + "gpui-pre-util", + "gpui-pre-wgpu", + "libc", + "log", + "notify-rust", + "oo7", + "open", + "parking_lot", + "raw-window-handle", + "smallvec", + "smol", + "strum", + "url", + "uuid", + "wayland-backend", + "wayland-client", + "wayland-cursor", + "wayland-protocols", + "wayland-protocols-plasma", + "wayland-protocols-wlr", + "x11rb", + "xkbcommon", + "zed-scap", + "zed-xim", +] + +[[package]] +name = "gpui-pre-macos" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d756813ff1cd741a502af60fd18869e0677795936d7349642b41c49f43120c0" +dependencies = [ + "accesskit", + "accesskit_macos", + "anyhow", + "block2 0.6.2", + "cocoa 0.26.0", + "core-foundation 0.10.1", + "core-foundation-sys", + "core-graphics 0.24.0", + "core-text", + "core-video", + "ctor", + "dispatch2", + "foreign-types", + "futures", + "gpui-pre", + "gpui-pre-apple", + "gpui-pre-collections", + "gpui-pre-scheduler", + "gpui-pre-util", + "image", + "itertools 0.14.0", + "log", + "objc", + "objc2 0.6.4", + "objc2-app-kit 0.3.2", + "objc2-core-graphics", + "objc2-core-media", + "objc2-foundation 0.3.2", + "objc2-screen-capture-kit", + "objc2-user-notifications", + "parking_lot", + "pathfinder_geometry", + "raw-window-handle", + "semver", + "smallvec", + "strum", + "uuid", + "zed-font-kit", +] + [[package]] name = "gpui-pre-macros" version = "0.3.8" @@ -3041,12 +3294,31 @@ dependencies = [ "syn 2.0.119", ] +[[package]] +name = "gpui-pre-perf" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fcb288a506a476b6cbf97e6ec1cc0118db43f0ca91087588afa1c2d8cd4f842" +dependencies = [ + "gpui-pre-collections", + "serde", + "serde_json", +] + [[package]] name = "gpui-pre-platform" version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e200b7b78836f1a0fc70767d971768e88f29d8b91b697285c15fb8e373635a3e" dependencies = [ - "gpui-fast-platform", + "anyhow", + "console_error_panic_hook", "gpui-pre", + "gpui-pre-linux", + "gpui-pre-macos", + "gpui-pre-web", + "gpui-pre-wgpu", + "gpui-pre-windows", ] [[package]] @@ -3160,6 +3432,17 @@ dependencies = [ "which", ] +[[package]] +name = "gpui-pre-util-macros" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01486fce7722e5d7d7e7bb71c719dfdcc6ed917112bdc7c56d0556fdb60d10ab" +dependencies = [ + "gpui-pre-perf", + "quote", + "syn 2.0.119", +] + [[package]] name = "gpui-pre-web" version = "0.3.8" @@ -3202,6 +3485,7 @@ dependencies = [ "gpui-pre", "gpui-pre-collections", "gpui-pre-util", + "image", "itertools 0.14.0", "log", "parking_lot", @@ -3213,6 +3497,37 @@ dependencies = [ "unicode-segmentation", "web-sys", "wgpu", + "zed-font-kit", +] + +[[package]] +name = "gpui-pre-windows" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "371f9bb13f97e3bea2f8b8e5e81232bb74d735153c244ae67f7400e743925b1c" +dependencies = [ + "accesskit", + "accesskit_windows", + "anyhow", + "dunce", + "etagere", + "futures", + "gpui-pre", + "gpui-pre-collections", + "gpui-pre-scheduler", + "gpui-pre-util", + "image", + "itertools 0.14.0", + "log", + "parking_lot", + "rand 0.9.5", + "raw-window-handle", + "smallvec", + "uuid", + "windows 0.62.2", + "windows-core 0.62.2", + "windows-numerics 0.3.1", + "windows-registry 0.6.1", ] [[package]] @@ -4327,6 +4642,15 @@ dependencies = [ "uuid", ] +[[package]] +name = "mach2" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a1b95cd5421ec55b445b5ae102f5ea0e768de1f82bd3001e11f426c269c3aea" +dependencies = [ + "libc", +] + [[package]] name = "mach2" version = "0.6.0" @@ -4927,6 +5251,28 @@ dependencies = [ "objc2-foundation 0.3.2", ] +[[package]] +name = "objc2-core-audio" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1eebcea8b0dbff5f7c8504f3107c68fc061a3eb44932051c8cf8a68d969c3b2" +dependencies = [ + "dispatch2", + "objc2 0.6.4", + "objc2-core-audio-types", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-core-audio-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a89f2ec274a0cf4a32642b2991e8b351a404d290da87bb6a9a9d8632490bd1c" +dependencies = [ + "bitflags 2.13.2", + "objc2 0.6.4", +] + [[package]] name = "objc2-core-data" version = "0.2.2" @@ -4996,6 +5342,31 @@ dependencies = [ "objc2-foundation 0.3.2", ] +[[package]] +name = "objc2-core-location" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca347214e24bc973fc025fd0d36ebb179ff30536ed1f80252706db19ee452009" +dependencies = [ + "objc2 0.6.4", + "objc2-foundation 0.3.2", +] + +[[package]] +name = "objc2-core-media" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05ec576860167a15dd9fce7fbee7512beb4e31f532159d3482d1f9c6caedf31d" +dependencies = [ + "bitflags 2.13.2", + "dispatch2", + "objc2 0.6.4", + "objc2-core-audio", + "objc2-core-audio-types", + "objc2-core-foundation", + "objc2-core-video", +] + [[package]] name = "objc2-core-text" version = "0.3.2" @@ -5113,6 +5484,20 @@ dependencies = [ "objc2-metal 0.3.2", ] +[[package]] +name = "objc2-screen-capture-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74b7c5390f477482f001bc354d6571a70db7e4f8d5288e860c45521fbce11394" +dependencies = [ + "block2 0.6.2", + "dispatch2", + "objc2 0.6.4", + "objc2-core-graphics", + "objc2-core-media", + "objc2-foundation 0.3.2", +] + [[package]] name = "objc2-user-notifications" version = "0.3.2" @@ -5122,6 +5507,7 @@ dependencies = [ "bitflags 2.13.2", "block2 0.6.2", "objc2 0.6.4", + "objc2-core-location", "objc2-foundation 0.3.2", ] @@ -5624,6 +6010,8 @@ checksum = "af3fb618632874fb76937c2361a7f22afd393c982a2165595407edc75b06d3c1" dependencies = [ "atomic", "crossbeam-queue", + "futures", + "log", "parking_lot", "pin-project", "pollster 0.2.5", @@ -5667,6 +6055,16 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8cf8e6a8aa66ce33f63993ffc4ea4271eb5b0530a9002db8455ea6050c77bfa" +[[package]] +name = "prettyplease" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" +dependencies = [ + "proc-macro2", + "syn 2.0.119", +] + [[package]] name = "proc-macro-crate" version = "3.5.0" @@ -7036,6 +7434,12 @@ dependencies = [ "dirs 6.0.0", ] +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + [[package]] name = "shlex" version = "2.0.1" diff --git a/Cargo.toml b/Cargo.toml index 304469c..35ee6f5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,9 +13,10 @@ default = ["desktop"] desktop = ["dep:gpui-omarchy", "dep:gpui-kit"] ui-tests = ["desktop", "gpui-kit/test-support"] +# Keep gpui-omarchy on the same unpublished Kit source as the application. +# Remove this source override after the feature is available on crates.io. [patch.crates-io] -gpui-pre = { path = "vendor/gpui-backend/gpui-pre" } -gpui-pre-platform = { path = "vendor/gpui-backend/gpui-pre-platform" } +gpui-kit = { git = "https://github.com/longbridge/gpui-kit", branch = "add-gpui-fast-feature" } [dependencies] anyhow = "1" @@ -26,7 +27,7 @@ cap-std = "3" dirs = "6" futures-util = "0.3" gpui-omarchy = { version = "0.2.1", optional = true } -gpui-kit = { version = "=0.7.1", default-features = false, features = ["assets"], optional = true } +gpui-kit = { git = "https://github.com/longbridge/gpui-kit", branch = "add-gpui-fast-feature", default-features = false, features = ["assets", "gpui-fast"], optional = true } localsend = { path = "vendor/localsend", features = ["discovery"] } if-addrs = "0.15" gethostname = "1.1" diff --git a/README.md b/README.md index 3476928..9947c19 100644 --- a/README.md +++ b/README.md @@ -85,8 +85,12 @@ With a recent stable Rust toolchain and your platform’s development libraries: cargo run --release --locked ``` -Desktop builds use [GPUI Fast](https://github.com/longbridge/gpui-fast) 0.1.0 -through GPUI Kit 0.7.1. +Desktop builds enable GPUI Kit's `gpui-fast` feature on the +[`add-gpui-fast-feature` branch](https://github.com/longbridge/gpui-kit/tree/add-gpui-fast-feature), +which selects [GPUI Fast](https://github.com/longbridge/gpui-fast) for the core and platforms. +A temporary `gpui-kit` source patch keeps GPUI Omarchy on the same unpublished +Kit branch. Once the feature is released on crates.io, use that release and +remove the patch. Linux builds require a C/C++ compiler, CMake, pkg-config, and development libraries for OpenSSL, Fontconfig, FreeType, xkbcommon, X11/XCB, Wayland, Vulkan, and Zstandard. diff --git a/src/main.rs b/src/main.rs index f864801..34b4860 100644 --- a/src/main.rs +++ b/src/main.rs @@ -7,9 +7,6 @@ // `omasend::i18n` decides which locale both halves resolve against. rust_i18n::i18n!("locales", fallback = "en"); -// gpui-fast macros emit paths through ::gpui. -extern crate gpui_kit as gpui; - mod views; // gpui-kit-assets embeds a default bundle for the component set; Omasend needs diff --git a/vendor/gpui-backend/README.md b/vendor/gpui-backend/README.md deleted file mode 100644 index db9b1bc..0000000 --- a/vendor/gpui-backend/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# GPUI Fast compatibility facades - -GPUI Kit 0.7.1 pins `gpui-pre` and `gpui-pre-platform` 0.3.8. These two small -facades patch those packages and re-export the published `gpui-fast` and -`gpui-fast-platform` packages with a `0.1.0` version requirement, allowing compatible `0.1.x` updates -through `cargo update`. Features are forwarded -to GPUI Fast so GPUI Kit, assets, and native windows use the same engine. - -This follows the facade approach in -https://github.com/longbridge/gpui-fast/tree/main/compat, using crates.io releases. -The app aliases GPUI Kit as `gpui` because GPUI Fast's macros emit `::gpui` paths. - -When updating GPUI Kit, align the facade versions with its GPUI snapshot and -recheck the feature forwarding against GPUI Fast. Shared `gpui-pre-*` utility -crates stay on 0.3.8, the version also used by GPUI Fast 0.1.0. diff --git a/vendor/gpui-backend/gpui-pre-platform/Cargo.toml b/vendor/gpui-backend/gpui-pre-platform/Cargo.toml deleted file mode 100644 index a037d15..0000000 --- a/vendor/gpui-backend/gpui-pre-platform/Cargo.toml +++ /dev/null @@ -1,25 +0,0 @@ -[package] -name = "gpui-pre-platform" -version = "0.3.8" -edition = "2024" -license = "Apache-2.0" -publish = false - -[lib] -name = "gpui_platform" -path = "lib.rs" - -[features] -default = ["fast/default"] -bench-support = ["fast/bench-support"] -font-kit = ["fast/font-kit"] -inspector = ["gpui/inspector"] -runtime_shaders = ["fast/runtime_shaders"] -screen-capture = ["fast/screen-capture"] -test-support = ["fast/test-support"] -wayland = ["fast/wayland"] -x11 = ["fast/x11"] - -[dependencies] -fast = { package = "gpui-fast-platform", version = "0.1.0", default-features = false } -gpui = { package = "gpui-pre", path = "../gpui-pre", default-features = false } diff --git a/vendor/gpui-backend/gpui-pre-platform/lib.rs b/vendor/gpui-backend/gpui-pre-platform/lib.rs deleted file mode 100644 index 3372aac..0000000 --- a/vendor/gpui-backend/gpui-pre-platform/lib.rs +++ /dev/null @@ -1 +0,0 @@ -pub use fast::*; diff --git a/vendor/gpui-backend/gpui-pre/Cargo.toml b/vendor/gpui-backend/gpui-pre/Cargo.toml deleted file mode 100644 index a7971d9..0000000 --- a/vendor/gpui-backend/gpui-pre/Cargo.toml +++ /dev/null @@ -1,27 +0,0 @@ -[package] -name = "gpui-pre" -version = "0.3.8" -edition = "2024" -license = "Apache-2.0" -publish = false - -[lib] -name = "gpui" -path = "lib.rs" - -[features] -default = ["fast/default"] -bench = ["fast/bench"] -bench-support = ["fast/bench-support"] -inspector = ["fast/inspector"] -leak-detection = ["fast/leak-detection"] -profiler = ["fast/profiler"] -screen-capture = ["fast/screen-capture"] -stacker = ["fast/stacker"] -test-support = ["fast/test-support"] -wayland = ["fast/wayland"] -windows-manifest = ["fast/windows-manifest"] -x11 = ["fast/x11"] - -[dependencies] -fast = { package = "gpui-fast", version = "0.1.0", default-features = false } diff --git a/vendor/gpui-backend/gpui-pre/lib.rs b/vendor/gpui-backend/gpui-pre/lib.rs deleted file mode 100644 index 3372aac..0000000 --- a/vendor/gpui-backend/gpui-pre/lib.rs +++ /dev/null @@ -1 +0,0 @@ -pub use fast::*; From 980353d0a01058b2ac56bf5c6ba4c5805ffda5f4 Mon Sep 17 00:00:00 2001 From: Jason Lee Date: Tue, 6 Oct 2026 15:13:32 +0800 Subject: [PATCH 4/9] Validate GPUI Fast without additional Kit crates --- Cargo.lock | 61 +++++++++++++++++------------------------------------- 1 file changed, 19 insertions(+), 42 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f6abc06..294a40f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -652,7 +652,7 @@ dependencies = [ "bitflags 2.13.2", "cexpr", "clang-sys", - "itertools 0.11.0", + "itertools 0.13.0", "log", "prettyplease", "proc-macro2", @@ -2579,7 +2579,7 @@ dependencies = [ [[package]] name = "gpui-base" version = "0.7.1" -source = "git+https://github.com/longbridge/gpui-kit?branch=add-gpui-fast-feature#f7f9ceaef87a2a07358a41e309bc7d2e4f97359e" +source = "git+https://github.com/longbridge/gpui-kit?branch=add-gpui-fast-feature#1b95e1b19fd89de65703c840de7505ad99f27626" dependencies = [ "aho-corasick", "anyhow", @@ -2588,7 +2588,8 @@ dependencies = [ "chrono", "data-url", "futures", - "gpui-kit-core", + "gpui-fast", + "gpui-pre", "gpui-pre-macros", "gpui-pre-sum-tree", "html5ever", @@ -2619,7 +2620,7 @@ dependencies = [ [[package]] name = "gpui-component" version = "0.7.1" -source = "git+https://github.com/longbridge/gpui-kit?branch=add-gpui-fast-feature#f7f9ceaef87a2a07358a41e309bc7d2e4f97359e" +source = "git+https://github.com/longbridge/gpui-kit?branch=add-gpui-fast-feature#1b95e1b19fd89de65703c840de7505ad99f27626" dependencies = [ "anyhow", "chrono", @@ -2627,8 +2628,9 @@ dependencies = [ "enum-iterator", "gpui-base", "gpui-component-macros", + "gpui-fast", "gpui-kit-assets", - "gpui-kit-core", + "gpui-pre", "gpui-pre-macros", "gpui-pre-sum-tree", "instant", @@ -2662,7 +2664,7 @@ dependencies = [ [[package]] name = "gpui-component-macros" version = "0.7.1" -source = "git+https://github.com/longbridge/gpui-kit?branch=add-gpui-fast-feature#f7f9ceaef87a2a07358a41e309bc7d2e4f97359e" +source = "git+https://github.com/longbridge/gpui-kit?branch=add-gpui-fast-feature#1b95e1b19fd89de65703c840de7505ad99f27626" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -2975,23 +2977,28 @@ dependencies = [ [[package]] name = "gpui-kit" version = "0.7.1" -source = "git+https://github.com/longbridge/gpui-kit?branch=add-gpui-fast-feature#f7f9ceaef87a2a07358a41e309bc7d2e4f97359e" +source = "git+https://github.com/longbridge/gpui-kit?branch=add-gpui-fast-feature#1b95e1b19fd89de65703c840de7505ad99f27626" dependencies = [ "gpui-base", "gpui-component", + "gpui-fast", + "gpui-fast-platform", + "gpui-fast-web", "gpui-kit-assets", - "gpui-kit-core", - "gpui-kit-platform", - "gpui-kit-web", + "gpui-pre", + "gpui-pre-macros", + "gpui-pre-platform", + "gpui-pre-web", ] [[package]] name = "gpui-kit-assets" version = "0.7.1" -source = "git+https://github.com/longbridge/gpui-kit?branch=add-gpui-fast-feature#f7f9ceaef87a2a07358a41e309bc7d2e4f97359e" +source = "git+https://github.com/longbridge/gpui-kit?branch=add-gpui-fast-feature#1b95e1b19fd89de65703c840de7505ad99f27626" dependencies = [ "anyhow", - "gpui-kit-core", + "gpui-fast", + "gpui-pre", "gpui-pre-reqwest", "log", "rust-embed", @@ -2999,36 +3006,6 @@ dependencies = [ "wasm-bindgen-futures", ] -[[package]] -name = "gpui-kit-core" -version = "0.7.1" -source = "git+https://github.com/longbridge/gpui-kit?branch=add-gpui-fast-feature#f7f9ceaef87a2a07358a41e309bc7d2e4f97359e" -dependencies = [ - "gpui-fast", - "gpui-pre", - "gpui-pre-macros", -] - -[[package]] -name = "gpui-kit-platform" -version = "0.7.1" -source = "git+https://github.com/longbridge/gpui-kit?branch=add-gpui-fast-feature#f7f9ceaef87a2a07358a41e309bc7d2e4f97359e" -dependencies = [ - "gpui-fast-platform", - "gpui-kit-core", - "gpui-pre-platform", -] - -[[package]] -name = "gpui-kit-web" -version = "0.7.1" -source = "git+https://github.com/longbridge/gpui-kit?branch=add-gpui-fast-feature#f7f9ceaef87a2a07358a41e309bc7d2e4f97359e" -dependencies = [ - "gpui-fast-web", - "gpui-kit-core", - "gpui-pre-web", -] - [[package]] name = "gpui-omarchy" version = "0.2.1" From 52bead133ced0d31fb8227c40fc6029e9daf473b Mon Sep 17 00:00:00 2001 From: Jason Lee Date: Tue, 6 Oct 2026 15:31:33 +0800 Subject: [PATCH 5/9] Update GPUI Kit branch revision --- Cargo.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 294a40f..4bb2f55 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2579,7 +2579,7 @@ dependencies = [ [[package]] name = "gpui-base" version = "0.7.1" -source = "git+https://github.com/longbridge/gpui-kit?branch=add-gpui-fast-feature#1b95e1b19fd89de65703c840de7505ad99f27626" +source = "git+https://github.com/longbridge/gpui-kit?branch=add-gpui-fast-feature#675919ad41a9846964450e31e72bf1cc7d0373a6" dependencies = [ "aho-corasick", "anyhow", @@ -2620,7 +2620,7 @@ dependencies = [ [[package]] name = "gpui-component" version = "0.7.1" -source = "git+https://github.com/longbridge/gpui-kit?branch=add-gpui-fast-feature#1b95e1b19fd89de65703c840de7505ad99f27626" +source = "git+https://github.com/longbridge/gpui-kit?branch=add-gpui-fast-feature#675919ad41a9846964450e31e72bf1cc7d0373a6" dependencies = [ "anyhow", "chrono", @@ -2664,7 +2664,7 @@ dependencies = [ [[package]] name = "gpui-component-macros" version = "0.7.1" -source = "git+https://github.com/longbridge/gpui-kit?branch=add-gpui-fast-feature#1b95e1b19fd89de65703c840de7505ad99f27626" +source = "git+https://github.com/longbridge/gpui-kit?branch=add-gpui-fast-feature#675919ad41a9846964450e31e72bf1cc7d0373a6" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -2977,7 +2977,7 @@ dependencies = [ [[package]] name = "gpui-kit" version = "0.7.1" -source = "git+https://github.com/longbridge/gpui-kit?branch=add-gpui-fast-feature#1b95e1b19fd89de65703c840de7505ad99f27626" +source = "git+https://github.com/longbridge/gpui-kit?branch=add-gpui-fast-feature#675919ad41a9846964450e31e72bf1cc7d0373a6" dependencies = [ "gpui-base", "gpui-component", @@ -2994,7 +2994,7 @@ dependencies = [ [[package]] name = "gpui-kit-assets" version = "0.7.1" -source = "git+https://github.com/longbridge/gpui-kit?branch=add-gpui-fast-feature#1b95e1b19fd89de65703c840de7505ad99f27626" +source = "git+https://github.com/longbridge/gpui-kit?branch=add-gpui-fast-feature#675919ad41a9846964450e31e72bf1cc7d0373a6" dependencies = [ "anyhow", "gpui-fast", From f83732c4fd14b5bda69c9eb5e4381b145ce41e6e Mon Sep 17 00:00:00 2001 From: Jason Lee Date: Tue, 6 Oct 2026 15:35:57 +0800 Subject: [PATCH 6/9] Use GPUI Omarchy's default GPUI Fast backend --- Cargo.lock | 3 +-- Cargo.toml | 9 ++------- README.md | 12 ++++++------ 3 files changed, 9 insertions(+), 15 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4bb2f55..5dfad02 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3009,8 +3009,7 @@ dependencies = [ [[package]] name = "gpui-omarchy" version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41462d5f3aa1056cdce799d6b4dfb1c04b47a3649d1a4eb5e2e29d8ca3434eed" +source = "git+https://github.com/huacnlee/gpui-omarchy?branch=use-gpui-fast#2a8d7fd0c49e7b775a497e820623f60795199d9d" dependencies = [ "async-channel", "chrono", diff --git a/Cargo.toml b/Cargo.toml index 35ee6f5..e4bb5fd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,11 +13,6 @@ default = ["desktop"] desktop = ["dep:gpui-omarchy", "dep:gpui-kit"] ui-tests = ["desktop", "gpui-kit/test-support"] -# Keep gpui-omarchy on the same unpublished Kit source as the application. -# Remove this source override after the feature is available on crates.io. -[patch.crates-io] -gpui-kit = { git = "https://github.com/longbridge/gpui-kit", branch = "add-gpui-fast-feature" } - [dependencies] anyhow = "1" async-channel = "2" @@ -26,8 +21,8 @@ chrono = "0.4" cap-std = "3" dirs = "6" futures-util = "0.3" -gpui-omarchy = { version = "0.2.1", optional = true } -gpui-kit = { git = "https://github.com/longbridge/gpui-kit", branch = "add-gpui-fast-feature", default-features = false, features = ["assets", "gpui-fast"], optional = true } +gpui-omarchy = { git = "https://github.com/huacnlee/gpui-omarchy", branch = "use-gpui-fast", optional = true } +gpui-kit = { git = "https://github.com/longbridge/gpui-kit", branch = "add-gpui-fast-feature", default-features = false, features = ["assets"], optional = true } localsend = { path = "vendor/localsend", features = ["discovery"] } if-addrs = "0.15" gethostname = "1.1" diff --git a/README.md b/README.md index 9947c19..6ed1d23 100644 --- a/README.md +++ b/README.md @@ -85,12 +85,12 @@ With a recent stable Rust toolchain and your platform’s development libraries: cargo run --release --locked ``` -Desktop builds enable GPUI Kit's `gpui-fast` feature on the -[`add-gpui-fast-feature` branch](https://github.com/longbridge/gpui-kit/tree/add-gpui-fast-feature), -which selects [GPUI Fast](https://github.com/longbridge/gpui-fast) for the core and platforms. -A temporary `gpui-kit` source patch keeps GPUI Omarchy on the same unpublished -Kit branch. Once the feature is released on crates.io, use that release and -remove the patch. +Desktop builds use GPUI Omarchy's +[`use-gpui-fast` branch](https://github.com/huacnlee/gpui-omarchy/tree/use-gpui-fast), +which enables `gpui-fast` by default and forwards it to GPUI Kit's +[`add-gpui-fast-feature` branch](https://github.com/longbridge/gpui-kit/tree/add-gpui-fast-feature). +Omasend does not need to enable the feature separately or patch crates.io. +Once both changes are released, replace the Git dependencies with those releases. Linux builds require a C/C++ compiler, CMake, pkg-config, and development libraries for OpenSSL, Fontconfig, FreeType, xkbcommon, X11/XCB, Wayland, Vulkan, and Zstandard. From 6ae298bb7c93f5dd44d57a63e020fc76913bd991 Mon Sep 17 00:00:00 2001 From: Jason Lee Date: Tue, 6 Oct 2026 15:44:49 +0800 Subject: [PATCH 7/9] Track GPUI Kit main after Fast feature merge --- Cargo.lock | 12 ++++++------ Cargo.toml | 2 +- README.md | 3 ++- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5dfad02..a73d978 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2579,7 +2579,7 @@ dependencies = [ [[package]] name = "gpui-base" version = "0.7.1" -source = "git+https://github.com/longbridge/gpui-kit?branch=add-gpui-fast-feature#675919ad41a9846964450e31e72bf1cc7d0373a6" +source = "git+https://github.com/longbridge/gpui-kit?branch=main#7eb5209c2138a44a8bab7aaeb504a19c8b702800" dependencies = [ "aho-corasick", "anyhow", @@ -2620,7 +2620,7 @@ dependencies = [ [[package]] name = "gpui-component" version = "0.7.1" -source = "git+https://github.com/longbridge/gpui-kit?branch=add-gpui-fast-feature#675919ad41a9846964450e31e72bf1cc7d0373a6" +source = "git+https://github.com/longbridge/gpui-kit?branch=main#7eb5209c2138a44a8bab7aaeb504a19c8b702800" dependencies = [ "anyhow", "chrono", @@ -2664,7 +2664,7 @@ dependencies = [ [[package]] name = "gpui-component-macros" version = "0.7.1" -source = "git+https://github.com/longbridge/gpui-kit?branch=add-gpui-fast-feature#675919ad41a9846964450e31e72bf1cc7d0373a6" +source = "git+https://github.com/longbridge/gpui-kit?branch=main#7eb5209c2138a44a8bab7aaeb504a19c8b702800" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -2977,7 +2977,7 @@ dependencies = [ [[package]] name = "gpui-kit" version = "0.7.1" -source = "git+https://github.com/longbridge/gpui-kit?branch=add-gpui-fast-feature#675919ad41a9846964450e31e72bf1cc7d0373a6" +source = "git+https://github.com/longbridge/gpui-kit?branch=main#7eb5209c2138a44a8bab7aaeb504a19c8b702800" dependencies = [ "gpui-base", "gpui-component", @@ -2994,7 +2994,7 @@ dependencies = [ [[package]] name = "gpui-kit-assets" version = "0.7.1" -source = "git+https://github.com/longbridge/gpui-kit?branch=add-gpui-fast-feature#675919ad41a9846964450e31e72bf1cc7d0373a6" +source = "git+https://github.com/longbridge/gpui-kit?branch=main#7eb5209c2138a44a8bab7aaeb504a19c8b702800" dependencies = [ "anyhow", "gpui-fast", @@ -3009,7 +3009,7 @@ dependencies = [ [[package]] name = "gpui-omarchy" version = "0.2.1" -source = "git+https://github.com/huacnlee/gpui-omarchy?branch=use-gpui-fast#2a8d7fd0c49e7b775a497e820623f60795199d9d" +source = "git+https://github.com/huacnlee/gpui-omarchy?branch=use-gpui-fast#e6e3e52a378b64dd6962456ffa6cdfb2deaa2b08" dependencies = [ "async-channel", "chrono", diff --git a/Cargo.toml b/Cargo.toml index e4bb5fd..d344c04 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -22,7 +22,7 @@ cap-std = "3" dirs = "6" futures-util = "0.3" gpui-omarchy = { git = "https://github.com/huacnlee/gpui-omarchy", branch = "use-gpui-fast", optional = true } -gpui-kit = { git = "https://github.com/longbridge/gpui-kit", branch = "add-gpui-fast-feature", default-features = false, features = ["assets"], optional = true } +gpui-kit = { git = "https://github.com/longbridge/gpui-kit", branch = "main", default-features = false, features = ["assets"], optional = true } localsend = { path = "vendor/localsend", features = ["discovery"] } if-addrs = "0.15" gethostname = "1.1" diff --git a/README.md b/README.md index 6ed1d23..67d6775 100644 --- a/README.md +++ b/README.md @@ -88,7 +88,8 @@ cargo run --release --locked Desktop builds use GPUI Omarchy's [`use-gpui-fast` branch](https://github.com/huacnlee/gpui-omarchy/tree/use-gpui-fast), which enables `gpui-fast` by default and forwards it to GPUI Kit's -[`add-gpui-fast-feature` branch](https://github.com/longbridge/gpui-kit/tree/add-gpui-fast-feature). +[`main` branch](https://github.com/longbridge/gpui-kit/tree/main), +where the feature has been merged. Omasend does not need to enable the feature separately or patch crates.io. Once both changes are released, replace the Git dependencies with those releases. From f61ee221be7e48d7073cf3f450b94a5ae08f48d4 Mon Sep 17 00:00:00 2001 From: Jason Lee Date: Tue, 6 Oct 2026 15:55:55 +0800 Subject: [PATCH 8/9] Track GPUI Omarchy main after Fast merge --- Cargo.lock | 2 +- Cargo.toml | 2 +- README.md | 7 +++---- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a73d978..8826c18 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3009,7 +3009,7 @@ dependencies = [ [[package]] name = "gpui-omarchy" version = "0.2.1" -source = "git+https://github.com/huacnlee/gpui-omarchy?branch=use-gpui-fast#e6e3e52a378b64dd6962456ffa6cdfb2deaa2b08" +source = "git+https://github.com/huacnlee/gpui-omarchy?branch=main#e63ff32b73299d4f8abd8401af5d04924b2a9d18" dependencies = [ "async-channel", "chrono", diff --git a/Cargo.toml b/Cargo.toml index d344c04..6bb02b0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,7 +21,7 @@ chrono = "0.4" cap-std = "3" dirs = "6" futures-util = "0.3" -gpui-omarchy = { git = "https://github.com/huacnlee/gpui-omarchy", branch = "use-gpui-fast", optional = true } +gpui-omarchy = { git = "https://github.com/huacnlee/gpui-omarchy", branch = "main", optional = true } gpui-kit = { git = "https://github.com/longbridge/gpui-kit", branch = "main", default-features = false, features = ["assets"], optional = true } localsend = { path = "vendor/localsend", features = ["discovery"] } if-addrs = "0.15" diff --git a/README.md b/README.md index 67d6775..6e2a268 100644 --- a/README.md +++ b/README.md @@ -86,10 +86,9 @@ cargo run --release --locked ``` Desktop builds use GPUI Omarchy's -[`use-gpui-fast` branch](https://github.com/huacnlee/gpui-omarchy/tree/use-gpui-fast), -which enables `gpui-fast` by default and forwards it to GPUI Kit's -[`main` branch](https://github.com/longbridge/gpui-kit/tree/main), -where the feature has been merged. +[`main` branch](https://github.com/huacnlee/gpui-omarchy/tree/main). +It enables `gpui-fast` by default and forwards the feature to GPUI Kit's +[`main` branch](https://github.com/longbridge/gpui-kit/tree/main). Omasend does not need to enable the feature separately or patch crates.io. Once both changes are released, replace the Git dependencies with those releases. From ff46cab22a2852dbb7f462a47e624c2039d504f3 Mon Sep 17 00:00:00 2001 From: Jason Lee Date: Tue, 6 Oct 2026 16:05:01 +0800 Subject: [PATCH 9/9] docs: leave README unchanged --- README.md | 7 ------- 1 file changed, 7 deletions(-) diff --git a/README.md b/README.md index 6e2a268..387367d 100644 --- a/README.md +++ b/README.md @@ -85,13 +85,6 @@ With a recent stable Rust toolchain and your platform’s development libraries: cargo run --release --locked ``` -Desktop builds use GPUI Omarchy's -[`main` branch](https://github.com/huacnlee/gpui-omarchy/tree/main). -It enables `gpui-fast` by default and forwards the feature to GPUI Kit's -[`main` branch](https://github.com/longbridge/gpui-kit/tree/main). -Omasend does not need to enable the feature separately or patch crates.io. -Once both changes are released, replace the Git dependencies with those releases. - Linux builds require a C/C++ compiler, CMake, pkg-config, and development libraries for OpenSSL, Fontconfig, FreeType, xkbcommon, X11/XCB, Wayland, Vulkan, and Zstandard. Install `wl-clipboard` for clipboard support on Wayland.