tawasuyu

tawasuyu/llimphi

Sovereign retained-mode GPU UI framework in Rust (wgpu+vello+taffy+parley), Elm loop, 40+ widgets.

Rust 660Markdown 302TOML 157RON 312382 Sutichaykuna

⎇ 168cd187519c0ad575d3ce63baee2f164c38d9d1 llimphi-term-graphics/README.md Markdown · 28 siq'ikuna · 1.2 KB Ñawpa willay ch'uya

chore: refresco desde el monorepo — 27 crates nuevos (anim, lottie, svg, mesh, image, layer, test, wire-view, widgets rag-sidebar/router/lazy-list/rive-button) y sync de los 95 existentes 93253cc22 · Sergio ·

1# llimphi-term-graphics
2
3Agnostic decoder of terminal graphics protocols.
4
5Two protocols covered:
6
7- **kitty graphics protocol** — APC sequences `\e_G<control>;<base64>\e\\`.
8  It supports chunked transmission (`m=1`), the `f=100` (PNG/JPEG/… through the
9  `image` crate), `f=24` (raw RGB) and `f=32` (raw RGBA) formats, and `o=z`
10  (zlib) compression. Actions `t`/`T` (transmit [and display]), `q` (query),
11  `d` (delete).
12- **sixel** — DCS sequences `\eP<params>q<data>\e\\`. A hand-written decoder
13  (palette, `#` colour selection, `!` RLE, `$` CR, `-` LF, `"` raster
14  attributes).
15
16Its heart is `GraphicsScanner`: a streaming automaton fed the PTY's byte chunks.
17It lets **all** ordinary text and ANSI escapes through untouched (so the vt100
18emulator can process them) and only **hijacks** complete graphics sequences,
19returning them decoded as a `GraphicsCommand`. It has no UI state and no render
20dependencies: it produces RGBA8 pixels and the caller uploads them to a texture
21or a `peniko::Image`.
22
23It is robust to chunk boundaries: a sequence split across two `feed()` calls is
24buffered and completed on the next one.
25
26---
27
28Part of **llimphi** — see [llimphi](../README.md).

README.md

llimphi-term-graphics

Agnostic decoder of terminal graphics protocols.

Two protocols covered:

Its heart is GraphicsScanner: a streaming automaton fed the PTY's byte chunks. It lets all ordinary text and ANSI escapes through untouched (so the vt100 emulator can process them) and only hijacks complete graphics sequences, returning them decoded as a GraphicsCommand. It has no UI state and no render dependencies: it produces RGBA8 pixels and the caller uploads them to a texture or a peniko::Image.

It is robust to chunk boundaries: a sequence split across two feed() calls is buffered and completed on the next one.


Part of llimphi — see llimphi.