Güvenlik ve Performans: Thunderbird, Exchange postalarını Rust'a taşıyor

Saberie

Active member


  1. Güvenlik ve Performans: Thunderbird, Exchange postalarını Rust'a taşıyor

Thunderbird'ün bir sonraki büyük sürümü olan genişletilmiş destek sürümü Temmuz 2024'te yayınlanacak ve Rust'ta yazılmış yerel bir Exchange bağlantısı sunacak. Şu anda yalnızca e-postayı yönetmektedir; takvimler ve adresler gibi diğer hizmetler daha sonra gelecektir.

Duyuru



Şimdiye kadar, e-posta istemcisindeki Exchange bağlantısı yalnızca Eule gibi bir eklenti aracılığıyla mümkündü; şimdi Mozilla ekibi, Exchange Web Hizmetleri Protokolünü (EWS) istemcinin kendisinde uyguluyor. Mozilla, ekibin güvenlik nedeniyle mevcut C++ kodunu benimsemek yerine Rust'ta yeniden oluşturmak istediği HTTP iletişiminin bu amacına yönelik öğeler üzerinde ayrıntılı olarak çalışıyor. Bu, kendi HTTP API'sini gerektirir (Crate moz_http) ve eşzamansız bekleme özelliği (Crate xpcom_asyncJavaScript'teki Promise'a benzer).

Ancak Mozilla ekibinin EWS ile uğraşırken karşılaştığı en büyük zorluk, Exchange'in XML yapısını Thunderbird'ünkiyle uzlaştırmaktı. Rust evreninde mevcut kasalar ihtiyaçları tam olarak karşılamıyordu ve içsel bir gelişmeye ihtiyaç vardı: kasa xml_struct, GitHub'da mevcuttur. Başka bir sandık (ewsTürleri ve bir XML API'sini tanımlayan ), GitHub'da da mevcuttur.

Neden pas?


Giderek daha fazla BT şirketi Rust'a geçiyor. Thunderbird ekibi bu adımı blogda genel olarak Rust ile ilgili en önemli üç konu ile birlikte ayrıntılı olarak açıklıyor:

  1. Depolama güvenliği: Thunderbird, e-posta yoluyla herkesten gelen girdileri kabul eder.
  2. verim: Rust tüm platformlarda yerel olarak çalışır.
  3. Ekosistem: Modülerlik, birçok kişinin e-postayla da uğraştığı geniş bir ekosisteme erişim sağlar.
Diğer dört neden özellikle Thunderbird için geçerlidir:

  1. Firefox: Thunderbird, Firefox kodunu temel alır ve Rust zaten bu ortak yapıyı desteklemektedir. Ayrıca Rust, C++ ve JavaScript arasında işlev çağrılarına izin veren bir platformlar arası bileşen nesne modeli (XPCOM) de vardır.
  2. Aletler: Rust, API'leri ve ilgili belgeleri güvenli ve güvenilir bir şekilde tasarlamak için geniş bir araç kutusu sağlar.
  3. Teknik borç: Yeni bir dilin kullanılmaya başlanması bizi eski mimariyi yeniden düşünmeye zorluyor.
  4. taşınabilirlik: Pas kasaları Android/K-9 gibi diğer platformlar için kullanılabilir.
Ekip için seçim kolay olmadı: “Thunderbird, küçük bir ekip tarafından yönetilen büyük bir proje… Karmaşık işlevleri nispeten hızlı bir şekilde geliştirmek için güçlü araçlara ihtiyacımız var, ancak bunu kesinlikle uzun vadeli sürdürülebilirlikle dengelememiz gerekiyor. “

Rust yolunda sorun


Blog yazısı yazarları ayrıca Rust'u bağlamanın zorluklarını da anlatıyor. Özellikle, Rust deyimiyle iyi bir şekilde bütünleşmeyen, kendine özgü asenkron kalıplara sahip birçok mevcut kod vardır.




Exchange isteğinin mantıksal akışı ve yanıt işleme



Grafik, Exchange isteğinin ve yanıt işlemenin mantıksal akışını gösterir.


(Resim: Mozilla/Thunderbird)



Mozilla'nın yapı konseptinin gerçek bir sorunu var: Thunderbird, Firefox'un bir alt ağacıdır ve oluşturma, Firefox'tan Thunderbird'e gerçekleşir. Ancak bu yön Rust'un yük konseptiyle ilgili sorunları gündeme getiriyor. Çözüm olarak ekip çalışma alanını tanımladı ve yukarı akış yazma aracını yapılandırdı mach böylece derleme Firefox yerine bu çalışma alanından yapıldı.

Başka bir nokta: Thunderbird, yukarıda bahsedilen XPCOM birlikte çalışabilirlik katmanını hiçbir zaman tam olarak entegre etmedi; bu artık Rust Exchange entegrasyonuyla gerekli hale geldi. Ekip, mevcut kod ile Rust'un yeni bölümleri (Crate gibi) arasında bir bağdaştırıcı oluşturmaya karar verdi. ews_xpcom) sokmak.

Rust hamlesine ilişkin daha fazla ayrıntıyı ayrıntılı bir çevrimiçi belgede bulabilirsiniz.

Toplum ne diyor?


Blogdaki yorumlar coşku dolu: “En sevdiğim e-posta programındaki bu inanılmaz gelişme beni çok heyecanlandırdı. Nasıl olacağını görmek için sabırsızlanıyorum!” eleştirmene: “Eğer amaç güvenlikse, o zaman hafıza güvenliği gerekli olabilir.” ancak bu açıkça yeterli değil ve Rust, diğer dillerin birçok güvenlik özelliğinden yoksun.”

Bazı yorumlar, Microsoft'un 2026 yılında EWS'yi Graph bulut API'siyle değiştireceğini belirtiyor. Mozilla, EWS'nin uzun süre şirket içi kurulumlarda kullanılacağını ve birçok kullanıcının birincil kullanım alanı olduğunu yanıtlıyor. Graph API'de hâlâ sorunlar var ancak ekip bunun üzerinde çalışıyor.


(DSÖ)



Haberin Sonu
 
Üst