Build a cross-platform desktop application in Rust with buttons, text boxes, and layout containers that runs on Linux, macOS, and Windows.
Create a custom UI widget in Rust by defining properties, a template structure, and an optional state handler.
Apply a custom theme to an OrbTk app using RON files that define colors, fonts, and per-widget style rules switchable at runtime.
Debug a GUI layout by enabling OrbTk's debug mode to draw borders around all widgets and print the widget tree.
Add OrbTk to Cargo.toml and install platform build dependencies, the project is alpha so some features are unfinished.
OrbTk (Orbital Widget Toolkit) is a library for building graphical user interfaces using the Rust programming language. It is cross-platform, meaning you can use it to build desktop apps that run on Linux, macOS, Windows, and Redox OS (a separate open-source operating system the same team develops). There is also experimental support for running OrbTk apps in a web browser. The toolkit is built around an architectural pattern called Entity Component System, which is a way of organizing application state that is common in game development but less common in UI frameworks. Rather than creating objects that carry their own logic, you define lightweight entities and attach data components to them. Behavior is handled separately by systems that process those components. OrbTk wraps this in an API that is meant to feel somewhat like functional reactive programming, where the UI updates automatically in response to state changes. The building blocks you work with are called widgets: things like buttons, text boxes, lists, and layout containers. You define a widget by listing its properties, set default values and structure through a template, and optionally attach a state handler that runs update logic when something changes. The toolkit includes a set of standard widgets and lets you build custom ones using the same mechanism. Styling is done through a theme system based on a data format called RON, where you define color variables, fonts, and per-widget style rules including states like pressed or disabled, and you can switch themes at runtime. To use OrbTk in a Rust project you add it as a dependency in the project's Cargo.toml file. The repository includes runnable examples that demonstrate the built-in widget library, and a template project is available separately to help you start a new app from scratch. There is also a debugging mode that draws visible boundaries around all widgets and prints the widget tree to the console, which helps when layouts are not behaving as expected. The project is at an alpha stage. Several features are listed as planned but not yet available, including animations, async support, and native mobile builds for Android and iOS.
← redox-os on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.