- Terminal kayıt aracı asciinema CLI 3.0, baştan sona Rust ile yeniden yazıldı; buna dosya formatı yükseltmesi ve canlı terminal yayını özellikleri eklendi
- Rust kullanımı sayesinde statik binary dağıtımı, hızlı başlangıç süresi sağlanırken; AVT entegrasyonu ile eşzamanlılık ve sistem çağrılarının işlenmesi kolaylaştı, yeni özelliklerin uygulanması için de bir temel oluşturuldu
- Yeni asciicast v3 formatı, olay aralığına (delta) dayalı zamanlama,
term alt meta veri yapısı, "x" çıkış olayı ve # satır yorumlarını getirerek düzenlenebilirliği ve ifade gücünü artırıyor
- Canlı terminal yayını, yerel gömülü sunucu ve uzak relay (self-hosted/resmi sunucu) olmak üzere iki modda sunuluyor; ağ koşullarına göre uyarlanabilir buffering ile akıcı bir izleme deneyimi sağlıyor
- Temel felsefe Local-first olarak yeniden düzenlendi;
rec artık dosya adını zorunlu kılıyor ve yükleme işlemi ayrılıyor (upload <dosya>), kendi sunucusunu seçme istemi ile self-hosting dostu yapı ve istenmeyen veri sızıntısını önleme güçlendiriliyor
3.0 sürümü: Rust ile yeniden yazılan asciinema CLI ve başlıca iyileştirmeler
- asciinema CLI 3.0 resmen yayımlandı
- Bu sürümde tüm kod Rust ile yeniden yazıldı ve aynı anda kayıt dosyası formatı yükseltildi
- Terminal oturumlarının canlı yayını gibi çeşitli özellikler eklendi/geliştirildi
Rust ile yeniden yazım ve genel iyileştirmeler
- CLI'nin tamamen Rust ile yeniden yazılması, geliştirici deneyimini ve bakım yapılabilirliği artırdı; statik binary dağıtımıyla kurulum yolu sadeleşti, başlangıç hızı arttı ve özellik genişletilebilirliği sağlandı
- Yazarın deneyimine göre sistem çağrıları ve eşzamanlılık işleme Python'a kıyasla daha kolay olduğu için bu tercih yapıldı; ayrıca asciinema virtual terminal (AVT) CLI'ye entegre edilerek yeni özelliklerin uygulanması mümkün hale geldi
- Sonuç olarak performans, dağıtım ve mimari açısından gelecekte eklenecek özellikler için bir temel oluşturuldu
asciicast v3 dosya formatı
- asciicast v3 dosya formatına geçişle birlikte, mevcut v2'de görülen çeşitli eksikler gideriliyor
- v2'nin mutlak zaman damgaları, aralık (interval/delta) tabanlı zamanlama ile değiştirildi; böylece olay ekleme/silme sırasında sonraki zaman damgalarının topluca ayarlanması sorunu ortadan kalktı
- Başlık yapısı yeniden düzenlenerek terminalle ilgili meta veriler
term anahtarı altında gruplanıyor ve oturum çıkış durumunu kaydetmek için "x" (exit) olayı destekleniyor
- Dosya içinde satır yorumlarına (
#) izin verilerek okunabilirlik ve yönetim kolaylığı artırıldı
- Verilen örnek snippet, yapı ve olay akışı bileşimini sezgisel biçimde gösteriyor
- Yeni format asciinema server ve asciinema player tarafından zaten destekleniyor
Canlı terminal yayını
- Yerel mod: Gömülü HTTP sunucusu ile aynı ağda izlenebilen bir yayın sunuyor; veriler yalnızca izleyici tarayıcısına aktarıldığı için gizlilik öncelikli bir mod
- CLI, en güncel asciinema player ile paketlenmiş geliyor; böylece anında oynatma mümkün oluyor, ancak güvenlik duvarında port açılması gerekebilir
- Uzak mod: asciinema server (resmi ya da self-hosted) relay olarak kullanılarak paylaşılabilir URL üzerinden yayın dağıtılıyor
- İki mod aynı anda kullanılabildiği için duruma uygun dağıtım yapılandırması mümkün
- Player, gerçek zamanlı ağ gecikmesi ölçümüne dayalı uyarlanabilir buffering ile düşük gecikme ve buffer underrun önleme arasında denge kuruyor
- Sunucu yayını otomatik kaydetmeyi destekliyor; şu anda asciinema.org işletilen sunucusunda kayıt kapalı ve aynı anda 1 yayın sınırı politikası uygulanıyor
- Self-hosting durumunda kayıt varsayılan olarak açık ve eşzamanlı yayın sayısında sınır yok
Local-first yaklaşımına dönüş
- Geçmişte
asciinema rec, yükleme davranışını varsayılan akışa dahil ettiği için farkında olmadan herkese açma ve bilgi sızdırma riski taşıyordu
- 2.4 sürümünde yükleme öncesi seçim istemi ile bu geçişe hazırlık yapılmıştı; 3.0'da ise dosya adı zorunluluğu,
rec içinden yükleme özelliğinin kaldırılması ve bunun upload <dosya> şeklinde açık bir komut olarak ayrılması sağlandı
- Temel felsefe net biçimde local-first olarak tanımlanarak, kullanıcının yayınlama/paylaşma kararını bilinçli olarak vermesi için akış yeniden tasarlandı
- Yalnızca yerel kullanım tam olarak destekleniyor ve yalnızca gerektiğinde açıkça yayımlama yapılıyor
Self-hosting dostuluğunun güçlendirilmesi
upload / stream / auth ilk kez kullanıldığında sunucu URL'si seçme istemi gösteriliyor; varsayılan olarak asciinema.org öneriliyor ancak kullanıcının tercih ettiği instance seçimi kaydediliyor
- Bu zaten yapılandırma dosyası/ortam değişkeni ile belirtilebiliyordu; ancak etkileşimli ortamlarda (yeni VM, Dev container vb.) ayarlamak artık daha kolay
- Bu değişiklik, self-hosting kullanılabilirliğini artırırken aynı zamanda istenmeyen dış yüklemeleri önleyen ek bir güvenlik önlemi işlevi görüyor
Dağıtım ve kullanım bilgisi
- Paketlerin çeşitli dağıtım depolarına yansıması biraz zaman alabilir
- Bu arada GNU/Linux ve macOS için önceden derlenmiş binary dosyaları GitHub releases üzerinden indirilebilir ya da kaynaktan derleme yapılabilir
- Sürüm notları ve ayrıntılı değişiklik geçmişi GitHub'daki release notes ve CHANGELOG belgelerinde bulunabilir
Henüz yorum yok.