Expand description
§Fusabi TUI
A Terminal UI library providing Ratatui bindings and widgets for Fusabi scripts.
§Overview
fusabi-tui enables Fusabi scripts to create rich terminal user interfaces by exposing
Ratatui’s powerful widget system and layout engine. This library provides:
- Widgets: High-level UI components (lists, tables, charts, gauges, etc.)
- Layouts: Flexbox-like constraint-based layout system
- Canvas: Low-level drawing primitives for custom visualizations
- Bindings: Native functions exposed to Fusabi scripts
§Architecture
The library is organized into four main modules:
widgets: Ratatui widget wrappers and builderslayouts: Layout utilities and constraint handlingcanvas: Canvas-based rendering for custom graphicsbindings: Fusabi VM integration and native function registration
§Example Usage
// From a Fusabi script (.fsx)
open Fusabi.TUI
let list = List.create ["Item 1"; "Item 2"; "Item 3"]
let layout = Layout.vertical [Constraint.Percentage 50; Constraint.Min 10]§Features
- Zero-copy where possible for performance
- Type-safe widget construction
- Composable layout system
- Seamless Fusabi integration
Re-exports§
pub use bindings::FusabiTuiModule;pub use canvas::GraphCanvas;pub use canvas::GraphData;pub use canvas::GraphEdge;pub use canvas::GraphNode;pub use formatting::format_bytes;pub use formatting::format_duration;pub use formatting::format_latency;pub use formatting::format_number;pub use layouts::Constraint;pub use layouts::Layout;pub use widgets::table::render_table;pub use widgets::table::ColumnDef;pub use widgets::table::TableData;pub use widgets::Widget;pub use widgets::WidgetBuilder;
Modules§
- bindings
- Bindings module - Fusabi VM integration
- canvas
- Canvas module - Graph visualization and custom rendering
- formatting
- Formatting utilities for human-readable display of numbers, bytes, and time.
- layouts
- Layout module - Constraint-based layout system
- widgets
- Widget module - Ratatui widget wrappers and builders
Constants§
- VERSION
- Version of the fusabi-tui library
Type Aliases§
- Result
- Result type alias for this crate