Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Teksilo

Teksilo is a pure-Rust GUI framework for desktop applications. It combines a retained widget tree, reactive state, rich text, accessibility, internationalization, and GPU rendering.

Website | Source repository

Linux, Windows, and macOS are the primary targets. The API is pre-1.0. Read status and limitations before adopting it. The roadmap outlines the remaining work toward an API freeze targeted for January 2027 and summarizes development so far.

Start here

Who is this for

Teksilo targets desktop applications with sustained keyboard use, rich text, localization, and assistive-technology support: editors, writing tools, consoles, and administration interfaces. It also provides individual controls for smaller applications.

The default light and dark themes follow JetBrains' Int UI. Accessibility and translation support are built into the widget APIs. Test the completed application against its users' needs and applicable requirements; toolkit features alone do not establish application conformance.

Design priorities

Teksilo is a retained-tree framework inspired by Qt and the SwiftUI layouting.

  • Composition with painting layered on top. The Widget trait offers both build() (compose children) and paint() (draw chrome); both methods are optional, and a single widget can do both. Most of the widgets are pure compositions of primitives (RectWidget, TextWidget, HStack, Padding); Card, Panel, overlays, and custom chrome layer paint on top of their composed children.
  • Accessibility at the trait level. Every widget declares its role and name in an accessibility() method that sits beside layout_response and paint. The AT tree is built alongside the widget tree, not reconstructed from it.
  • Compile-time-checked i18n. The tr! macro reads .ftl files at proc-macro expansion time and rejects missing keys, missing arguments, and unknown arguments at build time.
  • Rich-text stack as foundation. The document model, shaping, BiDi, color emoji, and undo/redo are the foundation, not a widget on top. Even the plain TextWidget routes through it.
  • Two API surfaces, one semantics. A fluent builder API for everything, plus an optional teksu! macro for SwiftUI-style declarative syntax. The macro desugars one-to-one to builder calls, so you can mix both in one file.

Real-world example

Skribisto, a rich-text writing tool built with Teksilo, was ported from C++/Qt to Rust/Teksilo. It is available here.

A widget catalog example is available if you run cargo run -p widget-catalog in the Teksilo repo. It shows most of the widgets. Dozens of runnable examples are available in the examples/ directory of the Teksilo repo.