- La herramienta de grabación de terminal asciinema CLI 3.0 fue reescrita por completo en Rust, añadiendo una actualización del formato de archivo y la función de streaming en vivo de terminal
- La adopción de Rust permite ofrecer binarios estáticos, tiempos de arranque rápidos y, con la integración de AVT, facilita el manejo de concurrencia y llamadas al sistema, además de sentar la base para implementar nuevas funciones
- El nuevo formato asciicast v3 introduce temporización basada en intervalos (delta) para los eventos, estructura los metadatos bajo
term, añade el evento de salida "x" y comentarios de línea con #, mejorando la edición y la expresividad
- El streaming en vivo de terminal se ofrece en dos modos: servidor local integrado y relay remoto (self-hosted o servidor oficial), con buffering adaptativo según las condiciones de red para una experiencia de visualización fluida
- La filosofía base se reajustó a Local-first:
rec ahora requiere nombre de archivo y separa la subida (upload <archivo>), mientras que el prompt para elegir servidor propio refuerza la afinidad con el self-hosting y la prevención de filtraciones accidentales de datos
Lanzamiento de 3.0: asciinema CLI reescrito en Rust y sus principales mejoras
- asciinema CLI 3.0 ya fue lanzado oficialmente
- En esta versión, todo el código fue reescrito en Rust al mismo tiempo que se actualizó el formato de archivo de grabación
- También se añadieron y mejoraron varias funciones, incluido el streaming en vivo de sesiones de terminal
Reescritura en Rust y mejoras generales
- El CLI fue reescrito por completo en Rust para mejorar la experiencia de desarrollo y la mantenibilidad; además, la distribución de binarios estáticos simplifica la instalación, mejora la velocidad de arranque y amplía la capacidad de extender funciones
- Según la experiencia del autor, fue elegido porque las llamadas al sistema y el manejo de concurrencia resultan más sencillos que en Python, y la integración de asciinema virtual terminal (AVT) en el CLI hizo posible implementar nuevas funciones
- Como resultado, se estableció una base para futuras funciones en términos de rendimiento, distribución y arquitectura
Formato de archivo asciicast v3
- El formato de archivo asciicast v3 evoluciona para corregir varias limitaciones que se habían hecho evidentes en v2
- Sustituye las marcas de tiempo absolutas de v2 por temporización basada en intervalos (delta), resolviendo el problema de tener que ajustar en bloque las marcas de tiempo posteriores al insertar o eliminar eventos
- Reorganiza el encabezado para agrupar los metadatos relacionados con la terminal bajo la clave
term y admite el evento de salida "x" (exit) para guardar el estado de cierre de la sesión
- Permite comentarios de línea (
#) dentro del archivo, mejorando la legibilidad y la facilidad de mantenimiento
- Se ofrece un snippet de ejemplo que presenta de forma intuitiva la estructura y la composición del stream de eventos
- El nuevo formato ya es compatible con asciinema server y asciinema player
Streaming en vivo de terminal
- Modo local: ofrece un stream visible dentro de la misma red mediante un servidor HTTP integrado, en un modo de privacidad primero donde los datos solo se envían al navegador del espectador
- El CLI incluye la versión más reciente de asciinema player para reproducción inmediata, aunque puede ser necesario abrir puertos en el firewall
- Modo remoto: usa asciinema server (oficial o self-hosted) como relay para distribuir el stream mediante una URL compartible
- Ambos modos pueden usarse al mismo tiempo, lo que permite ajustar la distribución según la situación
- El player equilibra baja latencia y prevención de buffer underrun mediante buffering adaptativo basado en la medición en tiempo real de la latencia de red
- El servidor admite grabación automática del stream; actualmente, el servidor operado en asciinema.org tiene la grabación desactivada y aplica una política de límite de 1 stream simultáneo
- En self-hosting, la grabación está activada por defecto y no hay límite de streams simultáneos
Regreso a Local-first
- En el pasado,
asciinema rec incluía la subida como parte del flujo predeterminado, lo que implicaba riesgo de publicación involuntaria o filtración de información
- En la versión 2.4 se introdujo un prompt de selección antes de subir como preparación para este cambio; en 3.0 ahora se requiere nombre de archivo, se eliminó la función de subida de
rec y se separó en el comando explícito upload <archivo>
- La filosofía base se redefine claramente como local primero, rediseñando el flujo para que el usuario decida publicar o compartir de forma intencional
- El uso exclusivamente local está totalmente soportado, y solo se publica explícitamente cuando hace falta
Refuerzo de la afinidad con el self-hosting
- Al usar
upload, stream o auth por primera vez, se muestra un prompt para elegir la URL del servidor; el valor predeterminado es asciinema.org, pero se guarda la instancia elegida según la intención del usuario
- Ya era posible configurarlo mediante archivo de configuración o variables de entorno, pero ahora resulta más fácil en entornos interactivos (VM nuevas, contenedores Dev, etc.)
- Esto mejora la usabilidad del self-hosting y al mismo tiempo funciona como una medida adicional de seguridad para evitar subidas externas no deseadas
Distribución y guía de uso
- Puede tomar tiempo hasta que el paquete se refleje en los repositorios de cada distribución
- Mientras tanto, se pueden descargar binarios precompilados para GNU/Linux y macOS desde los lanzamientos de GitHub, o bien compilar desde el código fuente
- Las notas de lanzamiento y el historial detallado de cambios pueden consultarse en los documentos de release notes y CHANGELOG de GitHub
Aún no hay comentarios.