- A ferramenta de gravação de terminal asciinema CLI 3.0 foi totalmente reescrita em Rust, adicionando upgrade no formato de arquivo e streaming ao vivo do terminal
- Com a adoção de Rust, passa a oferecer binários estáticos, inicialização mais rápida e, com a integração do AVT, fica mais fácil lidar com concorrência e chamadas de sistema, além de estabelecer a base para novos recursos
- O novo formato asciicast v3 introduz temporização baseada em intervalos (delta) entre eventos, estruturação dos metadados de
term, evento de encerramento "x" e comentários de linha com #, aumentando a editabilidade e o poder de expressão
- O streaming ao vivo do terminal é oferecido em dois modos: servidor local embutido e relay remoto (auto-hospedado/servidor oficial), com buffer adaptativo conforme as condições de rede para uma visualização mais fluida
- A filosofia básica foi reorganizada como Local-first:
rec agora exige nome de arquivo e separa o upload (upload <arquivo>), além de reforçar a afinidade com self-hosting e a prevenção contra vazamento acidental de dados por meio de um prompt para escolha do servidor próprio
Lançamento da versão 3.0: asciinema CLI reescrito em Rust e principais melhorias
- O asciinema CLI 3.0 foi lançado oficialmente
- Nesta versão, todo o código foi reescrito em Rust ao mesmo tempo em que o formato dos arquivos de gravação foi atualizado
- Também foram adicionados e melhorados diversos recursos, como o streaming ao vivo de sessões de terminal
Reescrita em Rust e melhorias gerais
- O CLI foi totalmente reescrito em Rust para melhorar a experiência do desenvolvedor e a manutenibilidade, com distribuição em binários estáticos, simplificação da instalação, inicialização mais rápida e base para expansão de funcionalidades
- A escolha se baseou na experiência do autor de que chamadas de sistema e tratamento de concorrência são mais fáceis do que em Python, e a integração do asciinema virtual terminal (AVT) ao CLI permitiu implementar novos recursos
- Como resultado, foram estabelecidas as bases para futuras adições de funcionalidades em termos de desempenho, distribuição e arquitetura
Formato de arquivo asciicast v3
- O formato de arquivo evoluiu para o asciicast v3, corrigindo várias limitações reveladas no v2
- Os timestamps absolutos do v2 foram substituídos por temporização baseada em intervalos (interval/delta), eliminando o problema de ajustar em lote os timestamps subsequentes ao inserir ou remover eventos
- O cabeçalho foi reorganizado para agrupar os metadados relacionados ao terminal sob a chave
term, e foi adicionado suporte ao evento de saída "x" (exit) para armazenar o estado de encerramento da sessão
- Passou a permitir comentários de linha (
#) dentro do arquivo, melhorando a legibilidade e a facilidade de manutenção
- Um snippet de exemplo é fornecido para apresentar de forma intuitiva a estrutura e a composição do fluxo de eventos
- O novo formato já é suportado pelo asciinema server e pelo asciinema player
Streaming ao vivo do terminal
- Modo local: oferece um stream visível na mesma rede por meio de um servidor HTTP embutido, em um modo priorizando a privacidade no qual os dados são enviados apenas ao navegador dos espectadores
- O CLI já vem com a versão mais recente do asciinema player embutida para reprodução imediata, embora possa ser necessário abrir portas no firewall
- Modo remoto: usa o asciinema server (oficial ou auto-hospedado) como relay para distribuir o stream por meio de uma URL compartilhável
- Os dois modos podem ser usados ao mesmo tempo, permitindo uma configuração de distribuição adequada a cada situação
- O player equilibra baixa latência e prevenção de buffer underrun com buffer adaptativo baseado em medição em tempo real da latência da rede
- O servidor oferece suporte a gravação automática do stream; no momento, o servidor operado em asciinema.org está com a gravação desativada e aplica a política de limite de 1 stream simultâneo
- Em self-hosting, a gravação é ativada por padrão e não há limite de streams simultâneos
Retorno ao Local-first
- No passado,
asciinema rec incluía a ação de upload no fluxo padrão, o que trazia risco de publicação involuntária e vazamento de informações
- Na versão 2.4, foi introduzido um prompt de escolha antes do upload como preparação para a mudança; no 3.0, passou a haver nome de arquivo obrigatório, remoção da função de upload de
rec e separação em um comando explícito, upload <arquivo>
- A filosofia central foi redefinida de forma clara como local-first, redesenhando o fluxo para que o usuário decida conscientemente quando publicar ou compartilhar
- O uso exclusivamente local é totalmente suportado, e a publicação só acontece quando for explicitamente desejada
Reforço da afinidade com self-hosting
- Ao usar
upload/stream/auth pela primeira vez, é exibido um prompt para escolher a URL do servidor; o padrão sugerido é asciinema.org, mas a instância escolhida conforme a intenção do usuário é salva
- Isso já podia ser definido por arquivo de configuração ou variável de ambiente, mas agora a configuração ficou mais fácil em ambientes interativos (nova VM, Dev container etc.)
- Isso melhora a usabilidade para self-hosting e também funciona como uma camada extra de segurança para evitar uploads externos indesejados
Distribuição e orientações de uso
- Pode levar algum tempo até que a atualização chegue aos repositórios de pacotes de cada distribuição
- Enquanto isso, é possível baixar binários pré-compilados para GNU/Linux e macOS nas releases do GitHub ou compilar a partir do código-fonte
- As notas da versão e o histórico detalhado de mudanças podem ser consultados nos documentos release notes e CHANGELOG no GitHub
Ainda não há comentários.