11 puntos por GN⁺ 2025-09-17 | Aún no hay comentarios. | Compartir por WhatsApp
  • 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.

Aún no hay comentarios.