mirror of
https://github.com/ghostty-org/ghostty.git
synced 2026-09-02 20:33:50 +00:00
Remove BLAKE3 prefix digests. Keep READY/FINISH as empty records since they're semantically important markers. Our existing format (CRC32 per-record, declared counts, strict tag ordering requirements, etc.) already detect: accidental corruption, truncation, data omission, and duplication. BLAKE3 only protects against valid records being swapped or removed entirely. It is heavy for just that, and callers can solve that anyways via their own transport (like, just use TCP). For more adversarial protection, callers can also add layers like TLS or their own alternate signing methods depending on their own threat models. Removing the hash improves encode times by ~1.4x, decode times by ~1.3x. Time-to-READY decoding is effectively unchanged because it was such a small package to begin with.
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