3K, 60fps, 130ms görüntülü toplantı için neden Rust seçildi
(blog.tonari.no)Tonari'nin "gerçek zamanlı" görüntülü toplantı uygulamasını hayata geçirme deneyimi
→ Zoom ve WebRTC'nin gecikmesi 315-500 ms
Gerçek zamanlı sayılabilecek 130 ms gecikme için WebRTC yığınının 750 bin satırına dokunmak yerine, tüm yığını baştan istenen donanıma uygun şekilde tasarlayıp yeniden uygulamaya karar vermişler
→ Güvenlik, performans ve bakım kolaylığı için Rust seçilmiş
Başlıca kullanılan crate'ler
→ Standart kütüphaneden daha iyi olanlar: crossbeam, parking_lot, bytes, socket2
→ Logları ve CLI'ı daha şık hale getirmek için: fern, structopt
→ cargo yardımcıları: cargo-release, cargo-udeps, cargo tree, cargo-geiger, cargo-flamegraph
Rust'un zor yanları
-
Derleme süreleri uzun
-
Kütüphane kapsamı yetersiz
-
Daha en baştan doğru ve net kod yazmayı gerektiriyor
-
Tür çıkarıcısı o kadar güçlü ki bazen dinamik tipli bir dil kullanıyormuş gibi hissettirebiliyor
-
Dil hâlâ gelişmeye devam ediyor
Rust seçiminin sonuçları
-
Yazılımla ilgili hiçbir kesinti yaşanmadı
-
Kaynakların verimli kullanımı sayesinde yüksek performanslı kodu kolayca yazabildiler
-
CPU ve bellek kullanımı bütünüyle öngörülebilir ve tutarlıydı
-
Tutarlı gecikme süresi ve kare hızını garanti etti
-
Kod tabanını sürdürme deneyimi de mükemmeldi
-
Sonuç olarak, sürdürülebilir ve güvenilir bir ürün geliştirdiler; kare hızı, gecikme ve kaynak verimliliğinde de hızlı performans sundu
→ Rust olmasaydı bu çok zor olurdu
Henüz yorum yok.