38 lines
1.6 KiB
Markdown
38 lines
1.6 KiB
Markdown
# Native UI spikes
|
|
|
|
These disposable applications render the same fixture through GPUI and Floem.
|
|
They are a decision instrument, not product code. The root workspace excludes
|
|
this nested workspace so normal Lumbridge CI does not download or compile both
|
|
UI frameworks.
|
|
|
|
The GPUI spike uses published `gpui 0.2.2`. The Floem spike pins upstream commit
|
|
`778bb5f2aa08429e579ee2e6ac97e84fbf18b618`; the crates.io `floem 0.2.0` package
|
|
lags the current API substantially enough that comparing it to current GPUI
|
|
would not be representative.
|
|
|
|
Both spikes must preserve the same information architecture:
|
|
|
|
- workspace/sidebar and remote host state;
|
|
- two rows of three busy surfaces;
|
|
- local and remote terminal/agent panes;
|
|
- native Markdown editor/preview and browser placeholders;
|
|
- connection, harness, usage, and burn context in the footer.
|
|
|
|
Build independently:
|
|
|
|
```bash
|
|
cargo build --release --manifest-path spikes/gpui-shell/Cargo.toml
|
|
cargo build --release --manifest-path spikes/floem-shell/Cargo.toml
|
|
```
|
|
|
|
Each candidate is an independent Cargo workspace. GPUI pins `taffy 0.9.0`
|
|
while current Floem requires `taffy 0.9.2`; putting them in one comparison
|
|
workspace creates an artificial resolver conflict and would let one candidate's
|
|
dependency decisions distort the other candidate's build.
|
|
|
|
The comparison records release build time, binary size, startup, idle RSS,
|
|
six-pane streaming frame time, key-to-present latency, accessibility/IME,
|
|
window behavior, browser-child integration, packaging, dependency count, and
|
|
license closure on macOS, Ubuntu, and Omarchy. A build is not adoption: GPUI's
|
|
complete dependency-license closure remains a hard gate.
|