11 points par GN⁺ 2025-09-17 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • L’outil d’enregistrement de terminal asciinema CLI 3.0 a été entièrement réécrit en Rust, avec l’ajout d’une mise à niveau du format de fichier et du live streaming de terminal
  • L’adoption de Rust permet la fourniture de binaires statiques, un démarrage rapide, et grâce à l’intégration d’AVT, facilite la concurrence et la gestion des appels système, tout en posant les bases de nouvelles fonctionnalités
  • Le nouveau format asciicast v3 introduit un timing basé sur les intervalles (delta) des événements, une structuration des sous-métadonnées sous term, un événement de fin "x", ainsi que des commentaires de ligne #, ce qui améliore l’éditabilité et l’expressivité
  • Le live streaming de terminal est proposé en deux modes, avec serveur local intégré et relais distant (auto-hébergé/serveur officiel), et offre une expérience de visionnage fluide grâce à un buffering adaptatif selon l’état du réseau
  • La philosophie de base a été réorganisée autour du Local-first : rec exige désormais un nom de fichier et l’upload est séparé (upload <fichier>), tandis qu’une invite de choix du serveur renforce la compatibilité avec l’auto-hébergement et la prévention des fuites de données involontaires

Sortie de la 3.0 : asciinema CLI réécrit en Rust et principales améliorations

  • asciinema CLI 3.0 est officiellement disponible
  • Dans cette version, l’ensemble du code a été réécrit en Rust et le format des fichiers d’enregistrement a été mis à niveau
  • Diverses fonctionnalités ont été ajoutées ou améliorées, notamment le live streaming de sessions terminal

Réécriture en Rust et améliorations générales

  • Le CLI a été entièrement réécrit en Rust afin d’améliorer l’expérience développeur et la maintenabilité, avec une distribution sous forme de binaires statiques qui simplifie l’installation, accélère le démarrage et prépare l’extension des fonctionnalités
    • Ce choix s’appuie sur l’expérience de l’auteur, pour qui les appels système et la gestion de la concurrence y sont plus simples qu’en Python ; l’intégration de asciinema virtual terminal (AVT) dans le CLI a également rendu possibles de nouvelles fonctionnalités
  • Au final, cela pose les fondations pour les futures évolutions en matière de performances, de distribution et d’architecture

Format de fichier asciicast v3

  • Le format de fichier asciicast v3 fait évoluer le produit en corrigeant plusieurs limites apparues avec le v2
  • Les timestamps absolus du v2 sont remplacés par un timing basé sur des intervalles (delta), ce qui supprime le problème d’ajustement en cascade des timestamps suivants lors de l’insertion ou de la suppression d’événements
  • L’en-tête a été réorganisé pour regrouper les métadonnées liées au terminal sous la clé term, et le format prend en charge un événement "x" (exit) pour enregistrer l’état de fin de session
  • Les commentaires de ligne (#) sont désormais autorisés dans les fichiers, pour une meilleure lisibilité et une gestion plus simple
  • Un extrait d’exemple est fourni pour présenter de manière intuitive la structure et la composition du flux d’événements
  • Le nouveau format est déjà pris en charge par asciinema server et asciinema player

Live streaming de terminal

  • Mode local : un serveur HTTP intégré fournit un flux visible sur le même réseau, dans un mode axé sur la confidentialité où les données ne sont envoyées qu’au navigateur du spectateur
    • Le CLI embarque la dernière version de asciinema player pour une lecture immédiate, même s’il peut être nécessaire d’ouvrir un port dans le pare-feu
  • Mode distant : asciinema server (officiel ou auto-hébergé) est utilisé comme relais pour diffuser le flux via une URL partageable
    • Les deux modes peuvent être utilisés simultanément, ce qui permet d’adapter le déploiement au contexte
  • Le lecteur s’appuie sur un buffering adaptatif fondé sur la mesure en temps réel de la latence réseau, afin d’équilibrer faible latence et prévention des sous-alimentations du buffer
  • Le serveur prend en charge l’enregistrement automatique des flux ; à l’heure actuelle, le serveur opéré sur asciinema.org a l’enregistrement désactivé et applique une politique de limitation à un flux simultané
    • En auto-hébergement, l’enregistrement est activé par défaut et il n’y a pas de limite sur le nombre de flux simultanés

Retour au Local-first

  • Par le passé, asciinema rec incluait l’upload dans son parcours par défaut, avec un risque de publication inconsciente et de fuite d’informations
    • La version 2.4 avait introduit une invite de confirmation avant l’upload pour préparer cette transition ; en 3.0, un nom de fichier devient obligatoire, la fonction d’upload est retirée de rec, et l’action est séparée dans une commande explicite upload <fichier>
  • La philosophie par défaut est désormais clairement locale d’abord, afin que l’utilisateur décide délibérément de publier ou partager
    • Un usage strictement local est entièrement pris en charge, avec une publication explicite uniquement si nécessaire

Renforcement de la compatibilité avec l’auto-hébergement

  • Lors de la première utilisation de upload, stream ou auth, une invite de sélection de l’URL du serveur s’affiche ; la valeur par défaut proposée est asciinema.org, mais le choix de l’instance selon l’intention de l’utilisateur est mémorisé
    • Cela était déjà possible via le fichier de configuration ou les variables d’environnement, mais devient plus simple dans des environnements interactifs (nouvelle VM, conteneur de dev, etc.)
  • Cela améliore l’usage en auto-hébergement tout en servant de garde-fou supplémentaire contre les uploads externes non souhaités

Distribution et utilisation

  • Il peut falloir un certain temps avant que les dépôts de paquets des différentes distributions soient mis à jour
  • En attendant, il est possible de télécharger des binaires précompilés pour GNU/Linux et macOS depuis les releases GitHub, ou de compiler depuis les sources
  • Les notes de version et l’historique détaillé des changements sont disponibles dans les release notes et le CHANGELOG sur GitHub

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.