Skip to main content

Module asciicast

Module asciicast 

Source
Expand description

Asciicast v2 recorder for capturing terminal sessions.

This recorder writes newline-delimited JSON (NDJSON) compatible with asciinema-player. The first line is the header object, followed by event arrays of the form [time, "o", "text"] for output and [time, "i", "text"] for input (optional).

§Example

use ftui_core::terminal_capabilities::TerminalCapabilities;
use ftui_runtime::asciicast::{AsciicastRecorder, AsciicastWriter};
use ftui_runtime::{ScreenMode, TerminalWriter, UiAnchor};
use std::io::Cursor;

let recorder = AsciicastRecorder::with_writer(Cursor::new(Vec::new()), 80, 24, 0).unwrap();
let output = Cursor::new(Vec::new());
let recording_output = AsciicastWriter::new(output, recorder);
let caps = TerminalCapabilities::detect();
let mut writer = TerminalWriter::new(recording_output, ScreenMode::Inline { ui_height: 10 }, UiAnchor::Bottom, caps);
writer.write_log("hello\n").unwrap();

Structs§

AsciicastRecorder
Records terminal output in asciicast v2 format.
AsciicastWriter
Writer that mirrors terminal output into an asciicast recorder.