0.15.1

Pre-1.0: minor releases may introduce breaking changes. Pin your tested version. How to pin it →

Desktop interfaces in Rust

Build applications for Linux, Windows and macOS with a pure-Rust GUI framework. Widgets, rich text, accessibility, internationalization and persistent settings are included.

cargo add teksilo · Mozilla Public License 2.0 · Linux, Windows and macOS

use teksilo::prelude::*;
use teksilo::widgets::Button;

fn main() {
    let window = WindowConfig::new()
        .title("Hello Teksilo")
        .size(400, 300)
        .root(|tree, _state| {
            let button = Button::new(lit!("Click me"))
                .on_activate_fn(|_ctx| println!("clicked"));
            tree.add(button)
        });

    TeksiloAppBuilder::new()
        .theme(intui::light())
        .initial_window(window)
        .run();
}

Explore the catalog

Choose a family to explore.

Teksilo visual primitives showcase in the IntUI theme.
Visual primitives

Text, icons, images, shapes and validation strips.

Teksilo application chrome showcase in the IntUI theme.
Application chrome

Toolbars, status bars, breadcrumbs, banners and wizards.

Teksilo buttons showcase in the IntUI theme.
Buttons

Action buttons, icon buttons, split buttons and popover triggers.

Teksilo inputs showcase in the IntUI theme.
Inputs

Checkboxes, radio groups, toggles, sliders and selection controls.

Teksilo indicators showcase in the IntUI theme.
Indicators

Progress bars, spinners, badges, avatars and links.

Teksilo text inputs showcase in the IntUI theme.
Text inputs

Validation, input masks, formatted numbers, search suggestions and input dialogs.

Teksilo rich text showcase in the IntUI theme.
Rich text

Formatted documents, tables, lists and bidirectional text.

Native CodeEditor, PlainTextEditor and LogView in Teksilo.
Code & logs

Code editing, plain text and streaming logs with severity colors.

Teksilo date & time showcase in the IntUI theme.
Date & time

Calendars, date pickers, time pickers and date ranges.

Teksilo color pickers showcase in the IntUI theme.
Color pickers

Hex input, compact color editing and an HSV picker.

Teksilo menus showcase in the IntUI theme.
Menus

Menu bars, context menus, submenus and selectable menu items.

Teksilo overlays & dialogs showcase in the IntUI theme.
Overlays & dialogs

Plain and cascading rich tooltips, popovers, dialogs, snackbars and notifications.

Teksilo settings showcase in the IntUI theme.
Settings

Shortcut preferences, privacy controls, language and text scale.

Teksilo layout primitives showcase in the IntUI theme.
Layout primitives

Stacks, grids, wrapping, masonry, form rows and sizing constraints.

Teksilo containers showcase in the IntUI theme.
Containers

Panels, cards, groups, accordions, tabs and scroll areas.

Teksilo scene canvas showcase in the IntUI theme.
Scene canvas

Shared scene views, draggable cards, native controls, vector connectors, selection and zoom.

Teksilo docking showcase in the IntUI theme.
Docking

Resizable, collapsible panels around a central workspace.

Teksilo palette showcase in the IntUI theme.
Palette

Surface, text and editor colors across light and dark themes.

Teksilo styling showcase in the IntUI theme.
Styling

Widget variants, paint recipes and custom style protocols.

Teksilo charts showcase in the IntUI theme.
Charts

Bar, line, pie and donut charts.

Teksilo data views showcase in the IntUI theme.
Data views

Lists, trees, grids, tables and tree tables backed by typed models.

Teksilo drag & drop showcase in the IntUI theme.
Drag & drop

File and text payloads, accepted and rejected drops, and target feedback.

Teksilo switching between English, French and Arabic with locale-aware number formatting.
Internationalization

English, French and Arabic, with localized numbers, currencies, dates and right-to-left layout.

Teksilo animation wrappers showcase in the IntUI theme.
Animation wrappers

Fade, slide, scale and other animated widget wrappers.

Core features

A retained widget tree, reactive state and GPU rendering.

Widgets and layouts

Around 100 widgets and 28 layout primitives, including tables, docking, charts and a scene canvas.

Accessibility

Widgets declare accessible roles and labels. AccessKit connects each window to the platform accessibility API.

Internationalization

Fluent translations are checked at compile time. Includes right-to-left layout and ICU4X number and date formatting.

Reactive state

Signal<T> bindings trigger repaint or layout as needed. UI code runs on the main thread.

GPU rendering

Text and graphics use wgpu. The renderer submits no frames while the application is idle.

Rich text

Shared document and typesetting engines support editing, shaping, bidirectional text and color emoji.

Included in the framework

Tools for building, inspecting and testing desktop applications.

  • Data views. Typed list and tree models, sorting, filtering, shared selection, drag reordering and tri-state checkboxes.
  • Themes. Int UI light and dark, with optional Material 3, Fluent and macOS Aqua presets. Customize colors, variants and widget styling.
  • Input and motion. Rebindable keyboard shortcuts, rich tooltips and composable animations with reduced-motion support.
  • Settings. Typed persistent state, migrations, atomic writes and restored window geometry.
  • Async (optional). Async UI handlers and background work, with Tokio and async-std adapters.
  • Drag and drop. Typed payloads, drop indicators and edge auto-scroll, with cross-application import and export.
  • Charts and scenes. Bar, line and pie charts, plus a pannable, zoomable canvas combining widgets and scene items.
  • Developer tools. A debug inspector, live widget previewer and runnable examples.
  • AI context and automation. Versioned API lookup, documentation search and agent instructions. A debug-only MCP bridge inspects and drives running applications.
  • Testing. Headless widget tests without a window or GPU, with a simulated clock for time-dependent behavior.

Explore the features →

License and contributions

Teksilo is free software under the Mozilla Public License 2.0.

  • Commercial use. Application code can use its own license. Distributed modifications to Teksilo files remain under MPL-2.0; distributors must provide access to the covered source.
  • Contributions. Commits require a DCO sign-off. There is no contributor license agreement.
  • Trademark. Distributed forks need distinct branding, subject to the packaging exceptions in the trademark policy.

License and trademark terms →

Built with Teksilo

Skribisto 3 uses Teksilo for its document editor, binder, docking layout and accessibility tree.

Skribisto →

Skribisto 3 with a chapter binder, document editor, synopsis and outline in a dark theme.

Pre-1.0

Minor releases may introduce breaking changes. Pin the version you test against. Roadmap priorities follow FernTech’s applications.

Get started →

Architecture

Teksilo uses a retained widget tree. Widget::layout_response negotiates sizes; build, paint and accessibility define composition, rendering and semantics. Signal<T> bindings update existing widgets, preserving interaction state.

Text uses two independent MPL-2.0 libraries: text-document and text-typeset.

Architecture and final review are human-led; code generation and routine refactoring are LLM-assisted. See the tour for platform coverage and known limitations.