mirror-ghostty/example
Mitchell Hashimoto 1fcd80daab
libghostty: add cpp-vt-stream example and fix C++ header compatibility
Add a cpp-vt-stream example that verifies libghostty headers compile
cleanly in C++ mode. The example is a simplified C++ port of
c-vt-stream.

The headers used the C idiom `typedef struct Foo* Foo` for opaque
handles, which is invalid in C++ because struct tags and typedefs
share the same namespace. Fix all 12 opaque handle typedefs across the
headers to use a distinct struct tag with an Impl suffix, e.g.
`typedef struct GhosttyTerminalImpl* GhosttyTerminal`. This is a
source-compatible change for existing C consumers since the struct
tags were never referenced directly.
2026-03-28 18:38:58 -07:00
..
c-vt update a bunch of required Zig versions to 0.15 2025-10-03 07:10:44 -07:00
c-vt-build-info libghostty: expose version information via build options and C API 2026-03-28 09:17:52 -07:00
c-vt-cmake libghostty: add ghostty_free for cross-runtime memory safety 2026-03-23 20:52:02 +01:00
c-vt-cmake-static libghostty: add ghostty_free for cross-runtime memory safety 2026-03-23 20:52:02 +01:00
c-vt-colors vt: expose terminal default colors via C API 2026-03-26 09:51:30 -07:00
c-vt-effects vt: pass pointer options directly to terminal_set 2026-03-24 13:52:49 -07:00
c-vt-encode-focus docs: extract focus encoding example into standalone project 2026-03-17 16:48:48 -07:00
c-vt-encode-key example: rename some examples 2026-03-17 17:39:26 -07:00
c-vt-encode-mouse example: rename some examples 2026-03-17 17:39:26 -07:00
c-vt-formatter libghostty: add ghostty_free for cross-runtime memory safety 2026-03-23 20:52:02 +01:00
c-vt-grid-traverse example: add grid reference traversal example 2026-03-19 19:55:02 -07:00
c-vt-modes docs: extract inline code examples into standalone projects 2026-03-17 17:03:58 -07:00
c-vt-paste libghostty: expose paste encode to C API 2026-03-26 11:28:23 -07:00
c-vt-render vt: fix render state cell style and graphemes_buf APIs 2026-03-20 09:24:31 -07:00
c-vt-sgr docs: extract inline code examples into standalone projects 2026-03-17 17:03:58 -07:00
c-vt-size-report docs: extract inline code examples into standalone projects 2026-03-17 17:03:58 -07:00
c-vt-static build: add static library target for libghostty-vt 2026-03-21 15:01:53 -07:00
c-vt-stream example/c-vt-stream 2026-03-28 18:34:15 -07:00
cpp-vt-stream libghostty: add cpp-vt-stream example and fix C++ header compatibility 2026-03-28 18:38:58 -07:00
wasm-key-encode build: replace lib-vt step with -Demit-lib-vt option 2026-03-21 07:03:06 -07:00
wasm-sgr build: replace lib-vt step with -Demit-lib-vt option 2026-03-21 07:03:06 -07:00
zig-formatter terminal: make stream processing infallible 2026-03-13 13:56:14 -07:00
zig-vt update a bunch of required Zig versions to 0.15 2025-10-03 07:10:44 -07:00
zig-vt-stream terminal: make stream processing infallible 2026-03-13 13:56:14 -07:00
.gitignore build: add CMake support for libghostty-vt 2026-03-20 10:42:42 -07:00
AGENTS.md Add example AGENTS file 2026-03-17 17:13:08 -07:00
README.md example: add README 2026-03-17 17:37:20 -07:00

README.md

Examples

Standalone projects demonstrating the Ghostty library APIs. The directories starting with c- use the C API and the directories starting with zig- use the Zig API.

Every example can be built and run using zig build and zig build run from within the respective example directory. Even the C API examples use the Zig build system (not the language) to build the project.

Running an Example

cd example/<dir>
zig build run