Gluon, perpustakaan IMAP sumber terbuka daripada Proton Mail

gluon-imap-library

Gluon berusaha untuk merapatkan jurang itu dan mengatasi batasan dalam perpustakaan IMAP sumber terbuka sedia ada.

syarikat swiss Proton AG, yang membangunkan perkhidmatan Proton Mail dan Proton VPN, baru-baru ini memperkenalkan perpustakaan IMAP Gluon, direka puntuk mencipta pelayan IMAP anda sendiri. Perpustakaan ini luar biasa kerana ia menyokong protokol IMAP4rev1 (RFC-3501) dan disertakan dalam versi baharu perkhidmatan Jambatan Proton.

Semasa pembangunan, tumpuan adalah pada ketepatan pelaksanaan, kestabilan, kebolehpercayaan, kemudahan penggunaan untuk pembangun dan prestasi tinggi.

Mengenai Gluon IMAP

Disebutkan bahawa sebabnya untuk mencipta pelaksanaan baharu protokol IMAP adalah keinginan untuk penyelesaian yang boleh dipercayai dan berprestasi tinggi yang boleh berfungsi dengan peti mel besar. Menurut pembangun di Proton Mail, perpustakaan IMAP sumber terbuka sedia ada mengalami masalah penyelenggaraan atau tidak berskala.

Langkah pertama kami dalam menulis Gluon ialah menjana penghurai IMAP daripada sintaks yang diberikan dalam RFC3501(tetingkap baharu). Kami menggunakan ANTLR4(new window), pembina parser yang popular, untuk mencipta parser yang boleh menghuraikan arahan dan respons IMAP mengikut spesifikasi. Ini membolehkan kami menumpukan pada melaksanakan logik protokol IMAP dan bukannya menghuraikan dan mengesahkan input.

Gluon juga berfungsi dengan baik dengan berbilang pelanggan. pada masa yang sama, contohnya, apabila pengguna melihat mel melalui antara muka web dan menggunakan klien mel yang berasingan pada masa yang sama.

Kerumitan mengatur kerja sedemikian adalah disebabkan oleh fakta bahawa pelanggan IMAP biasanya menggunakan nombor jujukan mesej dalam peti mel untuk mengenal pasti mesej mel, tetapi apabila seorang pelanggan memadamkan mesej, nombor jujukan berubah dan pelanggan lain harus mengambil perubahan ini ke dalam akaun.

Dalam keadaan sedemikian, pelayan menghantar pemberitahuan perubahan kepada pelanggan, tetapi sebelum mengakui pemberitahuan itu, pelayan mesti memastikan bahawa nombor mesej dalam arahan yang dihantar ditafsirkan dengan betul.

E-mel perlu dipercayai, tetapi ia juga perlu berprestasi tinggi, terutamanya kerana saiz peti masuk biasa telah berkembang dengan ketara sepanjang dekad yang lalu. Banyak pelaksanaan IMAP sumber terbuka cenderung untuk mengoptimumkan satu dan bukan yang lain, yang membawa kepada pepijat atau pertukaran yang agak besar.

Untuk menyelesaikan masalah ini, serta untuk mengatur pemprosesan beberapa sambungan selari daripada pelanggan, Gluon melaksanakan mekanisme syot kilat. Inti dari mekanisme ini ialah Gluon memberikan petikan peti melnya sendiri kepada setiap pelanggan.

Setiap syot kilat mencerminkan pandangan unik peti mel yang dikaitkan dengan klien yang mengekalkan keadaannya dan memastikan nombor jujukan kekal sama, tanpa mengira tindakan yang diambil oleh pelanggan lain.

Gluon menjejaki dua keadaan peti mel: berterusan dan sesi. Keadaan berterusan mencerminkan kedudukan sebenar mesej dalam peti mel yang dipilih, manakala keadaan sesi mencerminkan pandangan setiap pelanggan terhadap kandungan peti mel.

Untuk menyegerakkan status setiap sesi antara beberapa pelanggan yang berkaitan, Gluon menggunakan sistem "responder". Ini adalah jenis yang merangkumi perubahan keadaan dan, apabila dilaksanakan, ditukar kepada respons IMAP. 

Apabila pelanggan melakukan tindakan (seperti menandakan mesej sebagai telah dibaca) yang akan mengubah keadaan klien lain, bahagian belakang mencipta responder untuk tindakan tersebut dan menolaknya ke keadaan terjejas. Keadaan terjejas kekal tidak berubah sehingga responden dilaksanakan, pada masa itu ia dikemas kini dan respons IMAP yang sepadan dihantar kepada klien. 

Pendekatan ini membolehkan Gluon mengurus keadaan setiap sesi dengan cekap sambil memastikan konsistensi merentas berbilang pelanggan.

Akhirnya, disebutkan bahawa negeri IMAP disimpan dalam DBMS yang menyokong SQL. Ujian beta perkhidmatan Proton Mail Bridge, diterjemahkan kepada Gluon, menunjukkan peningkatan yang ketara (1000%) dalam kelajuan bekerja dengan IMAP. Kod perpustakaan ditulis dalam Go dan diedarkan di bawah lesen MIT.

Jika anda berminat untuk mengetahui lebih lanjut mengenainya, anda boleh rujuk butirannya Dalam pautan berikut.


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab untuk data: AB Internet Networks 2008 SL
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.