Lucie is a GPU-accelerated user interface library for Rust. It is a fork of GPUI Community Edition, which itself is a fork of GPUI.
Lucie's goals are, from highest to least priority:
- Stay lean & mean. Modern desktop apps shouldn't be using so many resources they need to occasionally restart themselves to fix memory leaks. A dozen simple Lucie apps should be able to run simultaneously on your grandma's 2012 Dell Inspiron laptop without it breaking a sweat.
- Improve DX as much as possible. You should be able to compile a Lucie app from
cargo cleanin 3 minutes or less. Your IDE should feel snappy while you're working on your app. The #1 programmer excuse for legitimately slacking off shouldn't exist with Lucie (apologies to office chair swordfight aficionados). - Decouple from GPUI and Zed. Lucie is not just "GPUI for the community" (see GPUI CE if that's what you're looking for); it's its own ecosystem. Lucie doesn't build-in a screen capturer, for instance, because almost nobody besides Zed needs that. If the API needs to be overhauled to meet the other goals, then so be it.
- Abstract more. Forego locking devs in to the built-in renderer and allow them to make their own renderer using other crates in the Rust ecosystem like
winit&wgpufor broader platform support. - Provide a common component library. GPUI doesn't have common components like checkboxes or text inputs or spinners builtin; it's your responsibility to make your own components. This gives you a lot of power, but it's also a pain if you don't know GPUI that well (read: aren't a Zed employee). Lucie wants to provide a common component library that looks beautiful, fits most use cases, and still offers a great deal of customization.