reovim-client-model 0.14.4

Common client model for Reovim (platform-agnostic abstractions)
Documentation

Common Client Model for Reovim

This crate provides platform-agnostic abstractions for Reovim clients. It separates wire format (data from server) from rendered state (client-side interpretation), enabling each platform to adapt server data to its specific rendering needs.

Architecture

┌─────────────────────────────────────────────────────────────┐
│  Server (gRPC)                                              │
│  • Raw buffer content                                       │
│  • Cursor position, mode                                    │
│  • Logical layout, overlays                                 │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼ Wire Format (this crate)
┌─────────────────────────────────────────────────────────────┐
│  Common Client Model                                        │
│  • LogicalLayout, LogicalOverlay (from server)              │
│  • WindowTree, RenderedOverlay (client interpretation)      │
│  • Panel, Layout traits                                     │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼ Platform implements traits
┌─────────────┐  ┌─────────────┐  ┌─────────────┐
│     TUI     │  │     Web     │  │   Android   │
│  (Terminal) │  │    (DOM)    │  │  (Compose)  │
└─────────────┘  └─────────────┘  └─────────────┘

Modules

  • [geometry]: Screen positions, sizes, and rectangles
  • [direction]: Navigation and split directions
  • [wire]: Wire format types from the server