vize_fresco 0.2.0

Fresco - Vue TUI framework (Terminal User Interface)
Documentation

Fresco - Vue TUI Framework

A high-performance Terminal User Interface framework for Vue.js, similar to React Ink but built with Rust for performance.

Features

  • Terminal Control: Cross-platform terminal handling via crossterm
  • Flexbox Layout: Layout engine powered by taffy
  • CJK Support: Full Unicode text handling including Japanese IME
  • Efficient Rendering: Double-buffered differential rendering

Architecture

┌─────────────────────────────────────────────────────────┐
│                    Vue Components                        │
│                  (Box, Text, Input)                       │
└─────────────────────────────────────────────────────────┘
                          │
                          ▼
┌─────────────────────────────────────────────────────────┐
│                  Vue Custom Renderer                     │
│                    (TypeScript)                          │
└─────────────────────────────────────────────────────────┘
                          │
                          ▼
┌─────────────────────────────────────────────────────────┐
│                   NAPI Bindings                          │
│             (Rust <-> Node.js bridge)                    │
└─────────────────────────────────────────────────────────┘
                          │
        ┌─────────────────┼─────────────────┐
        ▼                 ▼                 ▼
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
│   Terminal    │ │    Layout     │ │    Render     │
│   (backend,   │ │   (taffy,     │ │   (tree,      │
│    buffer)    │ │    flex)      │ │    diff)      │
└───────────────┘ └───────────────┘ └───────────────┘
        │                                   │
        ▼                                   ▼
┌───────────────┐                 ┌───────────────┐
│     Input     │                 │     Text      │
│  (keyboard,   │                 │   (width,     │
│   mouse, ime) │                 │    segment)   │
└───────────────┘                 └───────────────┘