Files
rabby/docs/tabby-comparison.md
T
Tom You 8b4148042f
test / workspace (push) Successful in 12m9s
docs: compare Rabby feature coverage with Tabby
2026-07-08 10:47:54 -05:00

5.3 KiB

Rabby vs Tabby Feature Comparison

Generated after the Rust/Tauri core expansion on podman:/home/tyou/src/rabby.

Summary

Rabby now has modeled coverage for every major Tabby feature class from the Tabby README/module survey. This means the architecture, typed Rust domain model, validation rules, and unit tests exist for each class. It does not mean Rabby has production runtime parity with Tabby yet: many protocol implementations still need real adapters and UI wiring before the feature can honestly be marked Implemented.

Status definitions

Status Meaning
Implemented Runtime behavior, UI/Tauri path, and tests/smoke checks exist.
Modeled Rust model/validation/tests exist; runtime/UI integration remains.
UI Prototype Visible shell/UI or path resolver exists, but runtime parity remains.
Planned Known feature class with no model yet.

Comparison

Tabby feature class Tabby capability Rabby status Rabby coverage now Remaining work
VT terminal VT220 terminal + extensions Modeled TerminalGrid + AnsiParser parse text, ANSI color, cursor movement, clear screen, resize, bracketed paste flag. Replace small parser with full VT engine adapter and renderer integration.
Nested splits Multiple nested split panes Modeled Recursive PaneNode with split axis/ratio validation and serialization tests. UI drag/drop and live pane lifecycle.
Remembered tabs Tabs on any side and restored tabs Modeled Workspace, Tab, active tab, serde round-trip. Persist/restore at app startup and side-tab UI options.
Quake console Dockable window/global spawn hotkey Modeled quake_mode modeled in workspace. OS global hotkey registration and Tauri window show/hide command.
Progress notifications Process progress and completion notifications Modeled Tab progress field and tests. Runtime process detector + desktop notifications.
Paste ergonomics Bracketed paste, multiline warning, RMB paste, copy-on-select Modeled Terminal parser tracks bracketed paste mode. UI paste confirmation/RMB/copy-on-select behavior.
Unicode/ligatures Unicode, double-width chars, ligatures Modeled UTF-8 text accepted in terminal grid tests. Accurate grapheme width and font ligature rendering.
Local shell profiles Local shells, WSL/Git-Bash/etc. Modeled Local profile command and PTY boundary exist. Real cross-platform PTY process adapter and profile detection.
SSH client SSH2 connection manager Modeled SshOptions model validates host/user/port. Real SSH session adapter.
SSH forwarding/jump hosts X11, port forwarding, jump hosts, agent forwarding, login scripts Modeled SshOptions includes jump hosts, agent forwarding, X11, forwards, login scripts. Real russh/libssh2 integration and UI.
Telnet Integrated Telnet client Modeled TelnetOptions validates host/port. Real Telnet adapter.
Serial terminal Saved serial, readline, hex/hexdump, newline conversion, auto reconnect Modeled SerialOptions models baud, newline mode, hex input/output, auto reconnect. Real serialport adapter and UI.
SFTP/Zmodem SFTP and Zmodem transfer Modeled TransferRequest validates SFTP/Zmodem upload/download and path safety. Actual transfer protocol adapters and progress UI.
Encrypted secrets Encrypted SSH secrets/config Modeled SecretString redacts debug output; SecretStore boundary exists. OS keychain/encrypted-file implementation.
Themes/color schemes Themes and color schemes Modeled Theme model validates color tokens; built-in Rabby Dark. Theme import/export and live UI theme switching.
Shortcuts/command palette Configurable and multi-chord shortcuts Modeled ShortcutSequence parses single/multi-chord bindings and rejects duplicates. Frontend command palette and key event dispatcher.
Plugins Plugin manager and ecosystem Modeled PluginManifest with permission validation. Plugin install/update sandbox and execution model.
Portable/web Portable mode and web SSH/SFTP/Telnet UI Prototype Static UI, Tauri shell, and portable config path resolver. Web daemon/service surface and remote auth model.

Current test coverage

./scripts/check.sh verifies:

  • cargo fmt --all -- --check
  • cargo test --workspace
  • cargo check --workspace
  • cargo build --release -p rabby

Latest passing counts:

  • rabby-core: 40 unit tests
  • rabby-runtime: 6 unit tests

Refactor notes

The codebase is now split along cleaner expansion boundaries:

  • rabby-core: feature catalog, workspace, config, terminal model, connection options, transfers, secrets, shortcuts, plugins, themes.
  • rabby-runtime: config storage and PTY runtime boundaries.
  • src-tauri: still thin shell.
  • ui: static UI prototype, to be split into state/render modules before deeper UX work.

Next honest parity milestone

The next milestone should convert selected modeled features into implemented runtime features in this order:

  1. Real local PTY adapter and Tauri terminal commands.
  2. UI state/render refactor and live terminal pane rendering.
  3. Profile manager UI for local/SSH/Telnet/Serial profiles.
  4. Real SSH adapter, then SFTP.
  5. Serial/Telnet adapters.
  6. Secrets/keychain implementation.
  7. Plugin installer/sandbox.