Asciinema CLI 3.0 rewritten in Rust, adds live streaming, upgrades file format
Блог asciinema
3.0 Опубликовано 15 сен 2025, Марчин Кулик
Рад объявить о выпуске asciinema CLI 3.0!
Это полная переписывание asciinema на Rust с обновлением формата файлов записи, добавлением live-стриминга терминала и множеством улучшений.
В этом посте я расскажу о ключевых моментах релиза. Подробности смотрите в примечаниях к выпуску и истории изменений.
Переписывание на Rust было сделано из-за моего предпочтения этого языка перед Python для работы с системными вызовами и параллелизмом. Это привело к ускорению запуска, упрощению установки (статический бинарник) и интеграции виртуального терминала asciinema.
Формат файла asciicast v3
Новый формат asciicast v3 использует интервалы времени вместо абсолютных временных меток, что упрощает редактирование записей. Заголовок был реструктурирован, добавлена поддержка события выхода ("x") и комментариев через #.
Пример записи:
{"version": 3, "term": {"cols": 80, "rows": 24, "type": "xterm-256color"}, "timestamp": 1504467315, "title": "Demo", "env": {"SHELL": "/bin/zsh"}}
[0.248848, "o", "Hey Dougal...\n"]
[0.248848, "o", "Yes Ted?\n"]
[1.001376, "o", "Is there anything on your mind?\n"]
[3.500000, "m", ""]
[0.143733, "o", "No."]
[2.050000, "r", "90x30"]
[1.541828, "o", "Bye!"]
[0.8870, "x", "0"]
Формат уже поддерживается сервером и плеером asciinema.
Live-стриминг терминала
Новый CLI позволяет транслировать сессии терминала в реальном времени с двумя режимами:
- Локальный режим использует встроенный HTTP-сервер для просмотра в доверенных сетях
- Удаленный режим публикует поток через сервер asciinema с shareable URL
Примеры:
$ asciinema stream --local
::: Live streaming at http://127.0.0.1:37881
$ asciinema stream --remote
::: Live streaming at https://asciinema.org/s/TQGS82DwiBS1bYAY
Плеер asciinema поддерживает адаптивную буферизацию для плавного воспроизведения. Сервер может записывать live-стримы, хотя на asciinema.org эта функция временно отключена.
Локальный приоритет
Ранние версии asciinema автоматически загружали записи на asciinema.org. Теперь CLI позволяет сохранять записи локально в файл формата asciicast v1 с выбором публикации или локального хранения.