Rio 0.5 separa su motor de terminal en dos bibliotecas reutilizables

Fuentes: rio-vt and librio: Rio's terminal engine, now embeddable

Rio Terminal, el emulador de terminal escrito en Rust, presenta con su versión 0.5 una nueva arquitectura modular que extrae el motor de la aplicación. El núcleo, antes acoplado al renderizador y a la configuración, se distribuye ahora en dos capas independientes: la crate rio-vt, escrita en Rust seguro, y librio, una biblioteca con ABI en C pensada para que el motor pueda integrarse desde Swift, C, Go o Python sin requerir toolchain de Rust.

rio-vt incluye la máquina de estados VT, el parser ANSI y de secuencias de escape, la cuadrícula con scrollback, selección, búsqueda, el controlador de PTY y los protocolos de imagen Sixel, Kitty e iTerm2, sin dependencias de renderizado, GPU ni fuentes. librio envuelve ese mismo núcleo en una pequeña API en C: permite crear un motor, abrir una superficie con PTY, enviar texto y obtener un estado de render que indica qué filas cambiaron y qué contiene cada celda. Es multiplataforma y funciona en macOS, Linux y Windows (usando ConPTY).

La arquitectura se complementa con un mecanismo de filas modificadas que evita repintados completos, y los protocolos gráficos se exponen como eventos para que cualquier frontend los consuma. Según el autor, rio-vt ya se utiliza en producción en empresas como Lovable. En pruebas comparativas con vt100 y alacritty_terminal sobre un Mac Apple Silicon, rio-vt muestra mayor rendimiento en la mayoría de cargas: 302 MiB/s en tráfico mixto, 835 MiB/s en ASCII plano (frente a 196 de vt100) y 588 MiB/s en redibujado de pantalla alternativa, además de redimensionar de 80x24 a 100x40 en 5 µs frente a 227 µs de alacritty_terminal.