#zed #adabraka #ui-framework #gpui #tree-structure #gpu-accelerated #b-tree #data-structures #system-tray

adabraka_sum_tree

A sum tree data structure, a concurrency-friendly B-tree (originally from Zed - github.com/zed-industries/zed)

4 releases (2 breaking)

Uses new Rust 2024

0.5.1 Feb 17, 2026
0.5.0 Feb 15, 2026
0.4.0 Feb 14, 2026
0.3.0 Feb 5, 2026

#2060 in GUI

Download history 7/week @ 2026-02-09 145/week @ 2026-02-16 195/week @ 2026-02-23 10/week @ 2026-03-02 3/week @ 2026-03-09 16/week @ 2026-03-16 54/week @ 2026-03-23 45/week @ 2026-03-30 25/week @ 2026-04-06 17/week @ 2026-04-13

145 downloads per month
Used in 2 crates (via adabraka-gpui)

Apache-2.0

94KB
2.5K SLoC

Adabraka GPUI

Crates.io License

A GPU-accelerated UI framework for Rust, forked from Zed's GPUI. Adabraka GPUI extends the original framework with daemon-mode capabilities, system tray integration, global hotkeys, native notifications, and more — making it suitable for background apps, menu bar utilities, and overlay tools.

Getting Started

adabraka-gpui = "0.4"

Platform Support

Feature macOS Linux (X11) Linux (Wayland) Windows
GPU-accelerated rendering Metal Vulkan/OpenGL Vulkan/OpenGL DirectX
System tray icon & menu Yes Yes (DBus/SNI) Yes (DBus/SNI) Yes (Shell_NotifyIcon)
Tray menu actions Yes Yes Yes Yes
Global hotkeys Yes Yes (XGrabKey) No Yes (RegisterHotKey)
Native notifications Yes (UNUserNotification) Yes (notify-rust) Yes (notify-rust) Yes (Shell balloon)
Overlay windows (always-on-top) Yes Yes Partial Yes
Click-through windows Yes Yes (Shape ext) Yes (wl_region) Yes (WS_EX_TRANSPARENT)
Window show/hide Yes Yes Yes Yes
Auto-launch at login Yes (SMAppService) Yes (XDG autostart) Yes (XDG autostart) Yes (Registry)
Single instance lock Yes (Unix socket) Yes (Unix socket) Yes (Unix socket) Yes (Named mutex)
Focused window info Yes (Accessibility) Yes (EWMH) No Yes (Win32)
Permission queries Yes (Accessibility, Mic) No No No
Daemon mode (no dock icon) Yes Yes Yes Yes

Features

Core UI Framework

  • Hybrid immediate/retained mode rendering
  • GPU-accelerated with Metal, Vulkan, OpenGL, and DirectX backends
  • Tailwind-style layout and styling API
  • Entity-based state management
  • Declarative views with the Render trait
  • Low-level Element API for custom rendering
  • Async executor integrated with the platform event loop
  • Action system for keyboard shortcuts
  • Test framework with #[gpui::test]

Daemon & Background App Support

  • System tray — icon, tooltip, and nested menus with action callbacks
  • Global hotkeys — register system-wide keyboard shortcuts
  • Native notifications — OS-level notifications on all platforms
  • Overlay windows — always-on-top transparent windows
  • Click-through windows — mouse events pass through to windows below
  • Window show/hide — programmatic visibility control
  • Auto-launch — register your app to start at login
  • Single instance — prevent multiple copies with activation signaling
  • Keep alive without windows — app runs with no visible windows
  • Focused window info — query which window the user is focused on
  • Permission status — check accessibility and microphone permissions
  • In-app toast notifications — stackable, auto-dismissing toast component

Quick Example

use gpui::{App, Application, TrayMenuItem};

fn main() {
    Application::new().run(|cx: &mut App| {
        cx.set_keep_alive_without_windows(true);
        cx.set_tray_tooltip("My App");

        cx.set_tray_menu(vec![
            TrayMenuItem::Action {
                label: "Settings".into(),
                id: "settings".into(),
            },
            TrayMenuItem::Separator,
            TrayMenuItem::Action {
                label: "Quit".into(),
                id: "quit".into(),
            },
        ]);

        cx.on_tray_menu_action(|id, cx| match id.as_ref() {
            "quit" => cx.quit(),
            _ => {}
        });
    });
}

See crates/gpui/examples/daemon_app.rs for a full example with overlay windows, settings window, global hotkeys, and notifications.

Dependencies

macOS

  • Xcode with macOS components
  • Xcode command line tools: xcode-select --install

Linux

  • For X11: libxcb, libxkbcommon
  • For Wayland: libwayland-client, libxkbcommon
  • D-Bus (for system tray via StatusNotifierItem)

Windows

  • Visual Studio Build Tools with C++ workload
  • Windows SDK

License

Apache-2.0

Dependencies

~1.2–1.6MB
~31K SLoC