- Das Terminal-Aufnahmewerkzeug asciinema CLI 3.0 wurde vollständig in Rust neu geschrieben; hinzu kommen ein Upgrade des Dateiformats und Live-Streaming für Terminal-Sitzungen
- Durch die Umstellung auf Rust gibt es statische Binärdateien, schnelle Startzeiten und mit der AVT-Integration eine einfachere Umsetzung von Nebenläufigkeit und Systemaufrufen sowie eine Grundlage für neue Funktionen
- Das neue Format asciicast v3 führt intervall-/delta-basierte Zeitangaben für Ereignisse, eine strukturierte Metadatenhierarchie unter
term, ein "x"-Beendigungsereignis und #-Zeilenkommentare ein, was Bearbeitbarkeit und Ausdruckskraft verbessert
- Live-Terminal-Streaming wird in zwei Modi angeboten: mit lokal integriertem Server und mit entferntem Relay (selbst gehostet/offizieller Server); je nach Netzwerksituation sorgt adaptives Buffering für ein flüssiges Seherlebnis
- Die Grundphilosophie wurde wieder auf Local-first ausgerichtet:
rec verlangt nun zwingend einen Dateinamen, Uploads sind getrennt (upload <Datei>), und eine Eingabeaufforderung zur Serverauswahl verbessert Self-Hosting-Freundlichkeit und den Schutz vor unbeabsichtigtem Datenabfluss
Release 3.0: in Rust neu geschriebene asciinema CLI und die wichtigsten Verbesserungen
- asciinema CLI 3.0 wurde offiziell veröffentlicht
- In dieser Version wurde die gesamte Codebasis in Rust neu geschrieben und zugleich das Format der Aufzeichnungsdateien aktualisiert
- Außerdem wurden verschiedene Funktionen ergänzt oder verbessert, darunter Live-Streaming von Terminal-Sitzungen
Rust-Neuschreibung und allgemeine Verbesserungen
- Die CLI wurde komplett in Rust neu geschrieben, um Developer Experience und Wartbarkeit zu verbessern; durch die Auslieferung als statische Binärdatei wird der Installationsweg vereinfacht, die Startgeschwindigkeit erhöht und die Erweiterbarkeit verbessert
- Laut den Erfahrungen des Autors fiel die Wahl auf Rust, weil Systemaufrufe und Nebenläufigkeit damit einfacher zu handhaben sind als in Python; außerdem wurde das asciinema virtual terminal (AVT) in die CLI integriert, wodurch neue Funktionen implementierbar wurden
- Insgesamt schafft das in den Bereichen Performance, Distribution und Architektur eine Grundlage für künftige Funktionserweiterungen
Dateiformat asciicast v3
- Das Dateiformat entwickelt sich zu asciicast v3 weiter und behebt mehrere Schwächen, die in v2 sichtbar wurden
- Die absoluten Zeitstempel aus v2 wurden durch intervall-/delta-basierte Zeitangaben ersetzt, wodurch beim Einfügen oder Löschen von Ereignissen das Problem der globalen Nachjustierung nachfolgender Zeitstempel entfällt
- Der Header wurde umstrukturiert, sodass terminalbezogene Metadaten unter dem Schlüssel
term gruppiert werden; außerdem wird ein "x"-Ereignis zum Speichern des Beendigungsstatus einer Sitzung unterstützt
- Zeilenkommentare (
#) innerhalb der Datei sind nun erlaubt, was Lesbarkeit und Wartbarkeit verbessert
- Ein Beispiel-Snippet zeigt die Struktur und den Aufbau des Ereignisstroms anschaulich
- Das neue Format wird bereits von asciinema server und asciinema player unterstützt
Live-Terminal-Streaming
- Lokaler Modus: Ein integrierter HTTP-Server stellt einen Stream bereit, der im selben Netzwerk angesehen werden kann; dabei werden Daten ausschließlich an die Browser der Zuschauer übertragen – ein Privacy-first-Modus
- Die CLI enthält den aktuellen asciinema player als Bundle, sodass die Wiedergabe sofort möglich ist; unter Umständen müssen Firewall-Ports geöffnet werden
- Remote-Modus: Ein asciinema server (offiziell oder selbst gehostet) dient als Relay, um den Stream über eine teilbare URL bereitzustellen
- Beide Modi können gleichzeitig verwendet werden, sodass sich die Verteilung je nach Situation flexibel gestalten lässt
- Der Player nutzt adaptives Buffering auf Basis einer Echtzeitmessung der Netzwerklatenz, um geringe Verzögerung und Schutz vor Buffer-Underruns auszubalancieren
- Der Server unterstützt automatische Aufzeichnung von Streams; auf dem derzeitigen Betriebsserver von asciinema.org ist die Aufzeichnung deaktiviert und es gilt die Richtlinie maximal ein gleichzeitiger Stream
- Beim Self-Hosting ist die Aufzeichnung standardmäßig aktiviert, und es gibt keine Begrenzung für gleichzeitige Streams
Rückkehr zu Local-first
- Früher war bei
asciinema rec ein Upload-Verhalten in den Standardablauf eingebaut, was das Risiko einer unbewussten Veröffentlichung oder eines Informationsabflusses mit sich brachte
- Mit 2.4 wurde zur Vorbereitung bereits eine Auswahlabfrage vor dem Upload eingeführt; in 3.0 wurden nun Dateiname als Pflichtangabe, die Entfernung der Upload-Funktion aus
rec und die Trennung in den expliziten Befehl upload <Datei> umgesetzt
- Die Grundphilosophie wurde klar als Local-first definiert, sodass Nutzer Veröffentlichung und Weitergabe bewusst entscheiden; der Ablauf wurde entsprechend neu gestaltet
- Eine rein lokale Nutzung wird vollständig unterstützt, und veröffentlicht wird nur noch bei ausdrücklichem Bedarf
Verbesserte Self-Hosting-Freundlichkeit
- Bei der ersten Nutzung von
upload, stream oder auth erscheint eine Eingabeaufforderung zur Auswahl der Server-URL; standardmäßig wird asciinema.org vorgeschlagen, die Wahl einer Instanz nach Nutzerabsicht aber gespeichert
- Bereits zuvor war dies über Konfigurationsdateien oder Umgebungsvariablen möglich, doch in interaktiven Umgebungen (neue VM, Dev-Container usw.) wird die Einrichtung dadurch einfacher
- Das verbessert nicht nur die Nutzbarkeit beim Self-Hosting, sondern dient auch als zusätzliche Sicherheitsmaßnahme gegen unerwünschte Uploads an externe Ziele
Verfügbarkeit und Nutzung
- Bis die Paket-Repositories der einzelnen Distributionen aktualisiert sind, kann es einige Zeit dauern
- In der Zwischenzeit können vorkompilierte Binärdateien für GNU/Linux und macOS aus den GitHub-Releases heruntergeladen oder das Projekt aus dem Quellcode gebaut werden
- Release Notes und die detaillierte Änderungshistorie sind in den Release Notes und im Dokument CHANGELOG auf GitHub einsehbar
Noch keine Kommentare.