Skip to main content

Crate par_term_emu_core_rust

Crate par_term_emu_core_rust 

Source
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

Macros§

debug_error
debug_info
debug_log
debug_trace