Skip to content

Zireael

Zireael is a deterministic terminal rendering engine in C for embedding in higher-level TUI frameworks.

Project status: alpha (see Release Model).

It exposes a small public C ABI and two versioned binary protocols:

  • Drawlist (wrapper -> engine): render commands in a little-endian byte stream
  • Event batch (engine -> wrapper): packed input events in a little-endian byte stream
+--------------------------------------------------------------+
| Wrapper / Host (Rust, Go, Python, C#, etc.)                 |
+--------------------------------------------------------------+
|                    FFI boundary (C ABI)                      |
+--------------------------------------------------------------+
| Zireael Engine                                               |
| drawlist parser -> framebuffer -> diff renderer -> platform  |
+--------------------------------------------------------------+

Start Here By Goal

Non-Negotiable Contracts

  • Stable public ABI surface under include/zr/
  • Ownership model: engine owns engine allocations; caller never frees engine memory
  • Platform boundary: OS code in src/platform/* only
  • Deterministic limits and version pins
  • Single platform flush per successful engine_present()

Audience Map

  • Wrapper authors: docs/abi/*, docs/getting-started/*, docs/examples/*
  • Engine contributors: docs/dev/*, docs/CODE_STANDARDS.md, docs/SAFETY_RULESET.md
  • Maintainers/releasers: docs/maintainers.md, docs/release-model.md, docs/VERSION_PINS.md, CHANGELOG.md

Next Steps