Teksilo
A pure-Rust, batteries-included GUI framework for desktop applications. Accessibility, internationalization, rich text, themes, persistent settings, drag-and-drop, charts, and a scene canvas all ship as first-class citizens.
use *;
use Button;
State is reactive through Signal<T> and Prop<T>; a derived signal
(count.map(|n| format!("Count: {n}"))) re-renders only what depends on it.
What you get
- Widgets — over a hundred, from
ButtontoTreeTableView,CodeEditor,Terminaland a dockable IDE shell. - Accessibility — AccessKit at the trait level, plus
.access_*overrides on any widget. Not an afterthought layer. - Layout — SwiftUI-style negotiation with grow and shrink weights, and correct height-for-width.
- Theming — tokens → variants → recipes → style protocols, with Int-UI, Material 3, Fluent and macOS Aqua presets.
- i18n — Fluent messages with compile-time key checking, plus ICU-backed number and date formatting.
- Headless tests — the same widget tree runs with no window, no GPU and no winit; a simulated clock makes time-dependent behaviour deterministic.
Feature flags
widgets, text, i18n, inspector, toast, file-dialog and clipboard
are on by default. Opt in to theme-material3, theme-fluent, theme-macos,
terminal, web-view, async (with tokio or async-std), automation,
telemetry, and the bundled script fonts (fonts-*).
Status
Pre-1.0: expect breaking changes between 0.x releases. Production deployment is currently limited to FernTech's own applications, which is what the 0.x label reflects. Teksilo builds on two MPL-2.0 crates already at 1.x: text-document and text-typeset.
Documentation
Guides, the widget catalog and the API reference live at https://github.com/ferntech-eu/teksilo, which also documents the authorship and review rules the project is built under.
License
Mozilla Public License 2.0. Teksilo can be used in commercial and closed-source software; modifications to the Teksilo files themselves must be shared under MPL-2.0 if distributed, while application code that merely uses Teksilo is under its own license.