Ein neuer Konsolen-Webbrowser namens Carbonyl wurde vorgestellt, der auf der Chromium-Engine basiert und in der Lage ist, beliebige Websites, einschließlich YouTube, im Terminal darzustellen. Der Browser unterstützt fast alle Web-APIs, einschließlich WebGL, WebGPU und Funktionen zur Wiedergabe von Video, Audio und Animationen. Die Verwendung ist sowohl beim direkten Start des Terminals als auch bei der Verbindung über SSH möglich. Das Wrapper um die Chromium-Engine wurde in TypeScript, C++ und Rust geschrieben.
Das Projekt entwickelt weiterhin das Tool html2svg, das ursprünglich zur Umwandlung von HTML und <canvas> in Vektor- (SVG, PDF) oder Rasterbilder (PNG, JPEG, WebP) entwickelt wurde und jetzt als Grundlage für die Darstellung im Terminal dient. Zur grafikschaffenden Ausgabe werden die Möglichkeiten von Terminalen wie xterm-256 genutzt, die es ermöglichen, Unicode-Zeichen in Farbe anzuzeigen — als virtueller Pixel wird das Zeichen U+2584 („▄“) verwendet. Da das Seitenverhältnis dieses Zeichens 1:2 beträgt, besteht die Möglichkeit, darauf zwei quadratische Pixel darzustellen, wobei der obere die Hintergrundfarbe und der untere die Vordergrundfarbe festlegt.
Für die Verfolgung der Mausbewegung, der Cursorposition und der Farbänderung des Textes werden Escape-Sequenzen von xterm verwendet. Im xterm-Terminal kann die RGB-Palette 6x6x6 aktiviert werden, während im COLORTERM-Modus eine 24-Bit-Vollfarb-RGB-Palette zur Verfügung steht. Der Text wird in fester Größe gerendert, getrennt von Bildern. Um Text in der Skia-Bibliothek abzufangen, wird ein separater Handler angeschlossen. Der Rendering-Code ist für den Betrieb im Terminal optimiert und ermöglicht die Ausgabe von Grafiken mit einer Bildwiederholfrequenz von bis zu 60 FPS bei minimaler CPU-Belastung.



Quelle: opennet.ru
