teksilo 0.9.0

A pure-Rust GUI framework for serious desktop applications — retained widget tree, SwiftUI-style layout, AccessKit accessibility, wgpu rendering.
Documentation

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 teksilo::prelude::*;
use teksilo::widgets::Button;

fn main() {
    TeksiloAppBuilder::new()
        .theme(intui::light())
        .initial_window(
            WindowConfig::new()
                .title("Hello Teksilo")
                .size(400, 300)
                .root(|tree, _state| {
                    tree.add(
                        Button::new(lit!("Click Me"))
                            .on_activate_fn(|_ctx| println!("Clicked!")),
                    )
                }),
        )
        .run();
}

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 Button to TreeTableView, CodeEditor, Terminal and 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.