Discord'un Rust İstemcisi, Electron'a Göre Daha Hızlı ve Az Bellek Tüketiyor
Discord'un Rust İstemcisi, Electron'a Göre Daha Hızlı ve Az Bellek Tüketiyor
Discord, kullanıcı deneyimini ve performansı artırmak amacıyla geliştiricilerin dikkatini çeken bir adım attı: yeni bir Rust tabanlı istemci geliştirdi. Bu yeni istemci, mevcut Electron tabanlı uygulamaya göre daha hızlı başlıyor, daha az bellek tüketiyor ve yüksek performanslı bir mimariye sahip. Bu adım, özellikle geliştiriciler için bir model niteliğinde ve hem teknik hem de kullanıcı odaklı bir dönüşümü temsil ediyor.
Yeni Rust İstemcisi Ne Kadar Hızlı?
Discord'un kurucu ve teknik direktörü Stanislav Vishnevskiy, iki farklı istemciyi cold-start (soğuk başlatma) durumunda karşılaştırdı. Bu karşılaştırma, hem performans hem de kullanıcı deneyimini gözler önüne seriyor.
Mevcut Electron tabanlı istemci, başlangıçta bir boş koyu pencereyle karşılanıyor ve yaklaşık üç saniye boyunca “Eski zamanlarda Discord’un sadece bir tarayıcı uygulaması olduğu” diye bir ipucu gösteriyor. Daha sonra, yaklaşık beş saniye sonra arayüzü tamamen açılıyor. Bu süreçte, kullanıcılar “arkadaşlar çevrimiçi değil” mesajını bile görmüş oluyor.
Aynı sırada, Rust tabanlı yeni istemci, daha hızlı bir şekilde başlatılıyor. Hemen bir dakika içinde arayüz tamamen yükleniyor ve arkadaş listesi zaten görünür. Ayrıca, Electron tabanlı uygulamanın başlarken gösterdiği “Başlatılıyor” ekranı, Rust istemcisinin başlangıç ekranını tamamen atlayarak daha hızlı bir giriş sağlıyor.
Bu performans farkı, Discord’un teknik ekibinin, yeni mimariyle birlikte uygulamanın başlangıç süresini yarıya indirdiğini gösteriyor. Vishnevskiy, bu hızın “çok hızlı” olduğunu vurgularken, Discord çalışanlarından biri de kendi deneyimini anlattı: “İlk kez kullandığımda, kapattığımı sanıyordum, çünkü çok hızlı açılmıştı.”
Bellek Tüketimi: 290MB ile Yeniden Tanımlanıyor
Discord'un yeni Rust istemcisi, 290.2MB bellek tüketimiyle dikkat çekiyor. Bu, iki hesapla birlikte oturum açılmış durumda bir testte ölçülmüş bir değer.
Mevcut Electron tabanlı uygulama, genellikle 1 ila 2GB arası bellek kullanıyor. Yani, yeni Rust istemcisi, bu rakamlara göre yaklaşık 70% daha az bellek tüketiyor. Bu da özellikle düşük bellekli cihazlar üzerinde çok büyük bir fark yaratıyor.
Discord’un hesap değiştirme özelliği (Account Switcher), kullanıcıların aynı anda en fazla beş hesap kullanmasını sağlıyor. Yeni Rust istemcisi bu özelliği destekliyor ve hesaplar arasında geçiş yaparken uygulamanın kapatılmamasını sağlıyor. Bu, kullanıcıların hem iş hem de kişisel hesaplarını aynı anda kullanabilmesini mümkün kılıyor.
Vishnevskiy, 290MB'nin “hâlâ çok büyük” olduğunu itiraf etse de, “4K avatar dekorasyonları bir yerde render edilmeli” diye şaka yaparak bu rakamın yeterli düzeyde olduğunu belirtti.
Neden Electron Değil, Rust?
Discord, uzun süredir Electron tabanlı bir yapı kullanıyor. Electron, Chromium ve Node.js ile çalışır ve her uygulama için kendi tarayıcı motorunu taşıyordu. Bu mimari, çok sayıda işlem ve yüksek bellek tüketimi ile biliniyordu.
Discord, Electron’u geliştirmeye çalışmış ama sonunda tamamen farklı bir yola gitmeye karar verdi. Bu yolda, Rust ve GPUI (Graphic User Interface) kütüphanesini seçti.
- Rust, performans odaklı, bellek güvenliği ve çoklu iş parçacığı destekli bir dil.
- GPUI, Zed kod editörü tarafından geliştirilen, GPU hızlandırılmış bir arayüz çerçevesi. Bu, HTML veya web teknolojileri yerine doğrudan ekran çizimini sağlıyor.
- Bu sayede, Discord, daha az bellek tüketimi, daha hızlı başlatma ve daha stabil bir sistem elde ediyor.
Discord, bu yeni mimariyi Windows, macOS ve Linux üzerinde destekliyor ve GPUI’ya özel kendi patch’lerini de uyguluyor. Vishnevskiy, bu geliştirmelerin topluluk açısından da faydalı olacaksa, upstream (kaynak akışına) katkı sağlayacağını söyledi.
Web ve Mobil Uygulamalar Ne Oluyor?
Discord, aynı zamanda mobil ve web uygulamalarıyla da aynı mimariyi desteklemeyi planlıyor. Mobil uygulamalar React Native ile geliştiriliyor ve iOS için baştan beri bu teknoloji kullanılıyor. Android ise daha sonra aynı hedefe ulaşmak için portlanmıştı.
Web uygulamasında ise WebAssembly (WASM) kullanılarak Rust kodu tarayıcı içinde çalıştırılacak. Bu, web ve masaüstü uygulamalarının ortak bir kod tabanı kullanarak daha hızlı geliştirilmesini sağlıyor.
Discord, bu dönüşümle birlikte hem performans hem de güvenlik açısından daha güçlü bir yapıya geçiyor. Mark Smith, mühendislik başkanı, kullanılabilirlik ve güvenlik açısından performansa eşit önem verdiklerini belirtti.
Sonuç: Bir Model Olarak Discord
Discord’un yeni Rust tabanlı istemcisi, sadece bir teknik dönüşüm değil, aynı zamanda bir model haline geliyor. Geliştiriciler için şu soruyu ortaya koyuyor: “Bir uygulama daha hızlı, daha az kaynak tüketirken, nasıl daha iyi olabilir?”
Discord, bu dönüşümle birlikte hem kullanıcı deneyimini, hem de teknik mimariyi yeniden tanımlıyor. Elektron’un yerini Rust ve GPUI alıyor ve bu geçiş, hem hafif hem de güçlü bir yapıya doğru bir adım.
Discord, bu yeni istemcisiyle gizli test aşamasına geçecek. Pazarlama direktörü Ryan Rigney, “İyi, güvenli ve stabil bir sürüne kadar zaman ayıracağız” dedi. Ama bu süreç uzun sürmeyecek.
Discord, yalnızca bir sohbet uygulaması değil, aynı zamanda mimariye ve performansa odaklanan bir lider olarak öne çıkıyor. Ve bu, gelecekteki uygulamalar için bir örnek olacak.