zaxis
An event-driven immediate mode GUI for desktop tools, written in Rust.
Build the UI on each redraw. Application values live in your App; zaxis retains
window geometry, focus, pointer capture, and CPU/GPU caches. The event loop sleeps
between input, native redraws, and requested deadlines.
Find a task
| Task | Page |
|---|---|
| Add zaxis to a project | Installation |
| Open a window and handle a button | First application |
| Run the demo or settings example | Examples |
| Change the native window or exit | Desktop runner |
| Arrange controls in rows | Layout |
| Repeat captions or change a title | IDs and retained state |
| Use buttons, checkboxes, or sliders | Components |
| Change colors, spacing, or fonts | Style, Text |
| Draw rectangles, circles, or lines | Drawing |
| Update from a timer or worker | Repaint scheduling |
| Integrate with a winit event loop | Custom host |
| Change presentation or handle GPU failures | Renderer |
| Produce meshes or write a backend | Drawing protocol |
| Inspect cache activity | Performance |
| Locate an exported type or method | API index |
| Diagnose a failure | Troubleshooting |
Current scope
zaxis 0.0.3 Genetic is a development release requiring Rust 1.90 or newer.
Public APIs may change between development releases. It uses Rust 2021, winit,
wgpu, and a shaping/rasterization engine based on cosmic-text. Both desktop backends
are always included. The built-in runner drives one or several native windows, each with its own Context
and surface but sharing one glyph atlas and image cache; multiple zaxis Window panels
can share a native window.
Components include windows, text, buttons, checkboxes, sliders, TextEdit with IME,
ComboBox/Popup, menu bars, toasts, key binding boxes, numeric controls, color pickers, images,
ScrollArea, Grid, and Table.
The text engine supports complex shaping, bidirectional layout, system font fallback,
and bundled color emoji. Widgets are exposed to screen readers through AccessKit on
Windows and macOS, and on Linux with the accesskit_unix feature; see
Accessibility.
See limitations for the supported boundaries.
Report problems through GitHub Issues or contact @nihmadev on Telegram.
Source code is MIT licensed. Bundled Inter (Regular, Medium, SemiBold, Bold) and Noto Color Emoji fonts use the SIL Open Font License; redistribution must include the Inter license and Noto Emoji license.