libghostty 0.0.5 copy "libghostty: ^0.0.5" to clipboard
libghostty: ^0.0.5 copied to clipboard

Dart bindings to libghostty-vt, the terminal emulator library from Ghostty.

Changelog #

0.0.5 #

Breaking #

  • Upstream C API migration: replaced the custom terminal-c-api.patch with upstream Ghostty's natively exposed C headers. This is a complete rewrite of the bindings and implementation layer.
  • Restructured public API: the package barrel (libghostty.dart) has a new export structure. Most types have been renamed or moved.
  • Removed types: Line, Screen, Scrollback, TerminalOptions, TerminalEvent, TerminalModes, Disposable, Result.
  • Removed sub-barrels: input.dart and parsing.dart are removed. Import everything from libghostty.dart.

Added #

  • Mouse encoding: MouseEncoder and MouseEvent for encoding mouse events into terminal escape sequences (X10, UTF-8, SGR, URxvt, SGR-Pixels).
  • Build info: LibGhosttyBuildInfo exposes compile-time feature flags (SIMD, Kitty graphics, tmux passthrough) and version info.
  • Terminal modes: TerminalMode provides typed access to DEC private and ANSI modes with DECRPM report encoding.
  • Render state: RenderState for efficient viewport snapshotting with two-layer dirty tracking (global + per-row).
  • Grid references: GridRef for ad-hoc cell lookups by coordinate.
  • Formatter: Formatter for serializing terminal content as plain text, HTML, or full VT state.
  • Terminal effects: callback-based event model (onWritePty, onBell, onTitleChanged, etc.) replacing the TerminalEvent stream.
  • Focus and size report encoding: FocusEventEncode and SizeReportStyleEncode extension types.
  • Programmatic ffigen: replaced declarative ffigen.yaml with a Dart driver that generates three specialized output files (native FFI, enums, WASM typed exports).

Changed #

  • Bumped upstream ghostty to b7e56044d.
  • Generated enums replace hand-written src/enums/ directory.
  • Bindings reorganized into native/, wasm/, and types/ directories.
  • Implementation layer reorganized into src/impl/ with key/, mouse/, and terminal/ subdirectories.

0.0.4 #

Added #

  • Hyperlink support: Cell and ScrollbackRow expose OSC 8 hyperlink URIs via a hyperlink field.
  • Screen mode: TerminalModes exposes screenMode to distinguish primary and alternate screen.
  • Mouse alternate scroll: TerminalModes exposes mouseAlternateScroll flag.
  • Mods toggle operator: ^ operator on Mods for bitwise XOR toggling of modifier flags.

Fixed #

  • Scrollback on alternate screen: scrollbackLength returns zero when the terminal is on the alternate screen instead of stale values.

Changed #

  • Bumped upstream ghostty to 04fa71e23.

0.0.3 #

Added #

  • iOS simulator support: prebuilt binaries for aarch64-ios-simulator and x86_64-ios-simulator.

Fixed #

  • Asset hash validation: reject prebuilt binaries with no known hash instead of silently accepting them.

0.0.2 #

Added #

  • Sealed TerminalEvent hierarchy: typed events (BellReceived, TitleChanged, CursorChanged, MouseShapeChanged, ResponseReceived, ScreenChanged, ModeChanged) replace ad-hoc state polling.
  • TerminalOptions: configure foreground/background color and scrollback limit at terminal creation.
  • Mouse support:MouseShape and MouseTracking exposed via the terminal API.
  • DirtyState enum:clean/partial/full for render-level dirty tracking on Screen.
  • Reusable viewport buffer:Screen reuses a single buffer across reads, reducing per-frame allocations.
  • Row wrapping detection:Screen and Scrollback report whether a row is soft-wrapped.
  • Scrollback grapheme support:Scrollback returns full grapheme clusters.
  • CellWidth and SemanticContent: new cell metadata types.
  • 256-color palette: CIELAB interpolation and full 256-color palette generation with base16 theme support.

Changed #

  • TerminalViewport removed: viewport reading now lives on Screen directly.
  • Bumped upstream ghostty to 055ed285.

0.0.1 - 2026-02-25 #

Added #

  • Terminal emulation: Full VT parser and screen buffer
    • Screen, Line, Cell API for inspecting terminal content
    • Cursor control and styling
    • Terminal modes tracking
    • Scrollback buffer support
  • Key encoding: Kitty keyboard protocol implementation
    • KeyEvent, KeyAction, Mods for key handling
    • KeyEncoder for encoding key events to bytes
  • SGR parsing: Parse Select Graphic Rendition escape sequences
  • OSC parsing: Parse Operating System Commands (window title, hyperlinks)
  • Paste validation: Security-focused paste validation to prevent injection attacks
  • WASM support: WebAssembly build for browser environments

Supported Platforms #

  • Android, iOS, macOS, Linux, Windows, Web

0.0.1-dev.3 #

  • Fix release artifact filenames and download URLs

0.0.1-dev.2 #

  • Add release automation with build and release workflows
  • Add download_asset_hashes.dart script for preparing releases

0.0.1-dev.1 #

  • Initial pre-release
1
likes
0
points
160
downloads

Publisher

unverified uploader

Weekly Downloads

Dart bindings to libghostty-vt, the terminal emulator library from Ghostty.

Repository (GitHub)
View/report issues

Topics

#terminal #emulator #ffi #ghostty #libghostty

License

unknown (license)

Dependencies

code_assets, crypto, ffi, hooks, meta, web

More

Packages that depend on libghostty