Expand description
A comprehensive terminal emulator library in Rust with Python bindings
This library provides full VT100/VT220/VT320/VT420/VT520 terminal emulation with iTerm2 feature parity:
§VT Compatibility Features
- VT100: Basic ANSI escape sequences, cursor control, colors
- VT220: Line/character editing (IL, DL, ICH, DCH, ECH)
- VT320: Extended features and modes
- VT420: Rectangle operations, character protection, left/right margins
- VT520: Conformance level control, bell volume control
§Color Support
- Basic 16 ANSI colors
- 256-color palette
- True color (24-bit RGB) support
§Advanced Features
- Scrollback buffer with configurable size
- Text attributes (bold, italic, underline, strikethrough, blink, reverse, dim, hidden)
- Comprehensive cursor control and positioning
- Scrolling regions (DECSTBM)
- Tab stops with HTS, TBC, CHT, CBT
- Terminal resizing
- Alternate screen buffer (with multiple variants)
- Mouse reporting (X10, Normal, Button, Any modes)
- Mouse encodings (Default, UTF-8, SGR, URXVT)
- Bracketed paste mode
- Focus tracking
- Application cursor keys mode
- Origin mode (DECOM)
- Auto wrap mode (DECAWM)
- Shell integration (OSC 133)
- OSC 8 hyperlinks (recognized)
- Full Unicode support including emoji and wide characters
- Bell event tracking for visual bell implementations
Re-exports§
pub use unicode_normalization_config::NormalizationForm;pub use unicode_width_config::char_width;pub use unicode_width_config::char_width_cjk;pub use unicode_width_config::is_east_asian_ambiguous;pub use unicode_width_config::str_width;pub use unicode_width_config::str_width_cjk;pub use unicode_width_config::AmbiguousWidth;pub use unicode_width_config::UnicodeVersion;pub use unicode_width_config::WidthConfig;pub use terminal::RecordingEvent;pub use terminal::RecordingEventType;pub use terminal::RecordingExportFormat;pub use terminal::RecordingFormat;pub use terminal::RecordingSession;pub use badge::decode_badge_format;pub use badge::evaluate_badge_format;pub use badge::BadgeFormatChanged;pub use badge::BadgeFormatError;pub use badge::SessionVariables;pub use python_bindings::decode_client_message;pub use python_bindings::decode_server_message;pub use python_bindings::encode_client_message;pub use python_bindings::encode_server_message;pub use python_bindings::py_adjust_contrast_rgb;pub use python_bindings::py_adjust_hue;pub use python_bindings::py_adjust_saturation;pub use python_bindings::py_char_width;pub use python_bindings::py_char_width_cjk;pub use python_bindings::py_color_luminance;pub use python_bindings::py_complementary_color;pub use python_bindings::py_contrast_ratio;pub use python_bindings::py_darken_rgb;pub use python_bindings::py_hex_to_rgb;pub use python_bindings::py_hsl_to_rgb;pub use python_bindings::py_is_dark_color;pub use python_bindings::py_is_east_asian_ambiguous;pub use python_bindings::py_lighten_rgb;pub use python_bindings::py_meets_wcag_aa;pub use python_bindings::py_meets_wcag_aaa;pub use python_bindings::py_mix_colors;pub use python_bindings::py_perceived_brightness_rgb;pub use python_bindings::py_rgb_to_ansi_256;pub use python_bindings::py_rgb_to_hex;pub use python_bindings::py_rgb_to_hsl;pub use python_bindings::py_str_width;pub use python_bindings::py_str_width_cjk;pub use python_bindings::PyAmbiguousWidth;pub use python_bindings::PyAttributes;pub use python_bindings::PyBenchmarkResult;pub use python_bindings::PyBenchmarkSuite;pub use python_bindings::PyBookmark;pub use python_bindings::PyClipboardEntry;pub use python_bindings::PyClipboardHistoryEntry;pub use python_bindings::PyClipboardSyncEvent;pub use python_bindings::PyColorHSL;pub use python_bindings::PyColorHSV;pub use python_bindings::PyColorPalette;pub use python_bindings::PyCommandExecution;pub use python_bindings::PyComplianceReport;pub use python_bindings::PyComplianceTest;pub use python_bindings::PyCoprocessConfig;pub use python_bindings::PyCursorStyle;pub use python_bindings::PyCwdChange;pub use python_bindings::PyDamageRegion;pub use python_bindings::PyDetectedItem;pub use python_bindings::PyEscapeSequenceProfile;pub use python_bindings::PyFrameTiming;pub use python_bindings::PyGraphic;pub use python_bindings::PyImageDimension;pub use python_bindings::PyImageFormat;pub use python_bindings::PyImagePlacement;pub use python_bindings::PyImageProtocol;pub use python_bindings::PyInlineImage;pub use python_bindings::PyJoinedLines;pub use python_bindings::PyLineDiff;pub use python_bindings::PyMacro;pub use python_bindings::PyMacroEvent;pub use python_bindings::PyMouseEncoding;pub use python_bindings::PyMouseEvent;pub use python_bindings::PyMousePosition;pub use python_bindings::PyNormalizationForm;pub use python_bindings::PyNotificationConfig;pub use python_bindings::PyNotificationEvent;pub use python_bindings::PyPaneState;pub use python_bindings::PyPerformanceMetrics;pub use python_bindings::PyProfilingData;pub use python_bindings::PyProgressBar;pub use python_bindings::PyProgressState;pub use python_bindings::PyPtyTerminal;pub use python_bindings::PyRecordingEvent;pub use python_bindings::PyRecordingSession;pub use python_bindings::PyRegexMatch;pub use python_bindings::PyRenderingHint;pub use python_bindings::PyScreenSnapshot;pub use python_bindings::PyScrollbackStats;pub use python_bindings::PySearchMatch;pub use python_bindings::PySelection;pub use python_bindings::PySelectionMode;pub use python_bindings::PySessionState;pub use python_bindings::PyShellIntegration;pub use python_bindings::PyShellIntegrationStats;pub use python_bindings::PySnapshotDiff;pub use python_bindings::PyStreamingConfig;pub use python_bindings::PyStreamingServer;pub use python_bindings::PyTerminal;pub use python_bindings::PyTmuxNotification;pub use python_bindings::PyTrigger;pub use python_bindings::PyTriggerAction;pub use python_bindings::PyTriggerMatch;pub use python_bindings::PyUnderlineStyle;pub use python_bindings::PyUnicodeVersion;pub use python_bindings::PyWidthConfig;pub use python_bindings::PyWindowLayout;
Modules§
- ansi_
utils - ANSI sequence utilities for generation and parsing
- badge
- Badge format support for iTerm2-style badges
- cell
- color
- color_
utils - Color manipulation and conversion utilities
- conformance_
level - Terminal conformance level support (VT100/VT220/VT320/VT420/VT520)
- coprocess
- Coprocess management for piping terminal output to external processes
- cursor
- debug
- ffi
- FFI-safe types and C API for embedding the terminal emulator
- grapheme
- graphics
- Unified graphics protocol support
- grid
- Terminal grid implementation
- html_
export - HTML export functionality for terminal content
- macros
- Macro recording and playback functionality
- mouse
- observer
- Terminal observer trait for push-based event delivery
- pty_
error - pty_
session - python_
bindings - Python bindings module
- screenshot
- shell_
integration - sixel
- streaming
- Terminal streaming over WebSocket
- terminal
- Terminal emulator implementation
- text_
utils - Text extraction and manipulation utilities
- tmux_
control - Tmux control protocol support
- unicode_
normalization_ config - Configurable Unicode normalization for terminal text
- unicode_
width_ config - Configurable Unicode width calculation
- zone
- Semantic buffer zones for tracking logical blocks in terminal output