Proton Mail'den açık kaynaklı bir IMAP kitaplığı olan Gluon

gluon-imap-kütüphanesi

Gluon, bu boşluğu kapatmayı ve mevcut açık kaynak IMAP kitaplıklarındaki sınırlamaları aşmayı amaçlıyor.

İsviçre şirketi proton AG, Proton Mail ve Proton VPN hizmetlerini geliştiren, yakın zamanda Gluon IMAP kitaplığını tanıttıtasarlanmış pkendi IMAP sunucularınızı oluşturmak için. Kütüphane, IMAP4rev1 (RFC-3501) protokolünü desteklemesi ve Proton Bridge servisinin yeni versiyonunda yer almasıyla dikkat çekiyor.

Geliştirme sırasında, uygulama doğruluğuna, kararlılığa, güvenilirliğe, geliştiriciler için kullanım kolaylığına ve yüksek performansa odaklanılır.

Gluon IMAP hakkında

Bundan bahsediliyor sebep IMAP protokolünün yeni bir uygulamasını oluşturmak için güvenilir ve yüksek performanslı bir çözüm arzusudur büyük posta kutuları ile çalışabilir. Proton Mail'deki geliştiricilere göre, mevcut açık kaynak IMAP kitaplıkları bakım sorunları yaşadı veya ölçeklenmedi.

Gluon'u yazarken ilk adımımız, RFC3501'de (yeni pencere) verilen sözdiziminden bir IMAP ayrıştırıcısı oluşturmaktı. IMAP komutlarını ve yanıtlarını belirtime göre ayrıştırabilen bir ayrıştırıcı oluşturmak için popüler bir ayrıştırıcı oluşturucu olan ANTLR4(yeni pencere) kullandık. Bu, girişi ayrıştırmak ve doğrulamak yerine IMAP protokolünün mantığını uygulamaya odaklanmamızı sağladı.

Gluon ayrıca birden fazla müşteriyle iyi çalışır. aynı zamanda, örneğin, bir kullanıcı web arayüzü aracılığıyla postayı görüntülerken ve aynı anda ayrı bir posta istemcisi kullanırken.

Bu tür işleri düzenlemenin karmaşıklığı, IMAP istemcilerinin posta iletilerini tanımlamak için genellikle posta kutusundaki iletilerin sıra numaralarını kullanmalarından kaynaklanır, ancak bir istemci bir iletiyi sildiğinde sıra numaraları değişir ve diğer müşteri bu değişikliği kabul etmelidir. hesap.

Böyle bir durumda sunucu, istemcilere bir değişiklik bildirimi gönderir, ancak bildirimi onaylamadan önce sunucu, iletilen komutlardaki mesaj numaralarının doğru yorumlandığından emin olmalıdır.

E-postanın güvenilir olması gerekir, ancak özellikle tipik gelen kutusunun boyutu son on yılda önemli ölçüde arttığından, yüksek performanslı olması gerekir. Birçok açık kaynak IMAP uygulaması biri için optimize etme eğiliminde olup diğeri için değil, bu da oldukça büyük hatalara veya değiş tokuşlara yol açar.

Bu sorunu çözmek için de bir müşteriden birkaç paralel bağlantının işlenmesini organize etmek, gluon anlık görüntü mekanizmasını uygular. Bu mekanizmanın özü, Gluon'un her istemciye kendi posta kutusu anlık görüntüsünü atamasıdır.

Her anlık görüntü, istemciyle ilişkili posta kutusunun durumunu koruyan ve diğer istemciler tarafından gerçekleştirilen işlemlerden bağımsız olarak sıra numaralarının aynı kalmasını sağlayan benzersiz bir görünümünü yansıtır.

Gluon, iki posta kutusu durumunu izler: kalıcı ve oturum. Kalıcı durum, seçilen posta kutusundaki mesajların gerçek konumunu yansıtırken, oturum durumu, her müşterinin posta kutusu içeriğine ilişkin görüşünü yansıtır.

Durumu senkronize etmek için birkaç bağlı istemci arasındaki oturum başına, Gluon bir "yanıt verenler" sistemi kullanır. Bunlar, bir durum değişikliğini kapsayan ve yürütüldüğünde IMAP yanıtlarına dönüştürülen türlerdir. 

Bir istemci, başka bir istemcinin durumunu değiştirecek bir eylem (örneğin, bir iletiyi okundu olarak işaretleme) gerçekleştirdiğinde, arka uç eylem için bir yanıtlayıcı oluşturur ve onu etkilenen duruma iter. Etkilenen durum, yanıtlayıcı yürütülene kadar değişmeden kalır, bu sırada güncellenir ve istemciye karşılık gelen bir IMAP yanıtı gönderilir. 

Bu yaklaşım, Gluon'un oturum başına durumu verimli bir şekilde yönetmesine ve aynı zamanda birden çok istemcide tutarlılık sağlamasına olanak tanır.

Son olarak, devletten bahsedilmektedir. IMAP, SQL'i destekleyen bir DBMS'de depolanır. Gluon'a çevrilen Proton Mail Bridge hizmetinin beta testi, IMAP ile çalışma hızında önemli bir (%1000) artış gösterdi. Kütüphane kodu Go'da yazılmıştır ve MIT lisansı altında dağıtılmaktadır.

Bu konuda daha fazla bilgi edinmekle ilgileniyorsanız, ayrıntılara danışabilirsiniz. Aşağıdaki bağlantıda.


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: AB Internet Networks 2008 SL
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.