Gluon, ett IMAP-bibliotek med öppen källkod från Proton Mail

gluon-imap-bibliotek

Gluon försöker överbrygga det gapet och övervinna begränsningar i befintliga IMAP-bibliotek med öppen källkod.

det schweiziska företaget Proton AG, som utvecklar tjänsterna Proton Mail och Proton VPN, introducerade nyligen Gluon IMAP-biblioteket, designad sidför att skapa dina egna IMAP-servrar. Biblioteket är anmärkningsvärt eftersom det stöder protokollet IMAP4rev1 (RFC-3501) och ingår i den nya versionen av Proton Bridge-tjänsten.

Under utvecklingen ligger fokus på implementeringens korrekthet, stabilitet, tillförlitlighet, användarvänlighet för utvecklare och hög prestanda.

Om Gluon IMAP

Det nämns det Anledningen för att skapa en ny implementering av IMAP-protokollet är önskan om en pålitlig och högpresterande lösning som kan fungera med stora brevlådor. Enligt utvecklarna på Proton Mail upplevde befintliga IMAP-bibliotek med öppen källkod underhållsproblem eller skalade inte.

Vårt första steg i att skriva Gluon var att generera en IMAP-parser från syntaxen som anges i RFC3501 (nytt fönster). Vi använde ANTLR4 (nytt fönster), en populär parserbyggare, för att skapa en parser som kunde analysera IMAP-kommandon och svar enligt specifikationen. Detta gjorde det möjligt för oss att fokusera på att implementera logiken i IMAP-protokollet istället för att analysera och validera indata.

Gluon fungerar också bra med flera klienter. samtidigt, till exempel när en användare tittar på e-post via webbgränssnittet och använder en separat e-postklient samtidigt.

Komplexiteten i att organisera sådant arbete beror på det faktum att IMAP-klienter i allmänhet använder sekvensnumren för meddelanden i brevlådan för att identifiera e-postmeddelanden, men när en klient raderar ett meddelande ändras sekvensnumren och den andra kunden bör ta denna ändring i konto.

I en sådan situation skickar servern ett ändringsmeddelande till klienterna, men innan den bekräftar meddelandet måste servern se till att meddelandenumren i de överförda kommandona tolkas korrekt.

E-post måste vara pålitligt, men det måste också vara högpresterande, särskilt eftersom storleken på den typiska inkorgen har vuxit avsevärt under det senaste decenniet. Många IMAP-implementeringar med öppen källkod tenderar att optimera för det ena och inte det andra, vilket leder till ganska stora buggar eller avvägningar.

För att lösa detta problem, liksom att organisera behandlingen av flera parallella anslutningar från en klient, gluon implementerar ögonblicksbildsmekanismen. Kontentan av denna mekanism är att Gluon tilldelar sin egen ögonblicksbild av brevlådan till varje klient.

Varje ögonblicksbild återspeglar en unik vy av postlådan som är associerad med klienten som bevarar dess tillstånd och säkerställer att sekvensnumren förblir desamma, oavsett åtgärder som vidtas av andra klienter.

Gluon håller reda på två postlådetillstånd: ihållande och session. Beständigt tillstånd återspeglar den faktiska positionen för meddelanden i den valda brevlådan, medan sessionstillståndet återspeglar varje klients syn på brevlådans innehåll.

För att synkronisera status per session mellan flera anslutna klienter, Gluon använder ett system av "svarare". Dessa är typer som kapslar in en förändring av tillstånd och, när de exekveras, konverteras till IMAP-svar. 

När en klient utför en åtgärd (som t.ex. att markera ett meddelande som läst) som skulle ändra tillståndet för en annan klient, skapar backend ett svar för åtgärden och skjuter det till det berörda läget. Det påverkade tillståndet förblir oförändrat tills svaret exekveras, då det uppdateras och ett motsvarande IMAP-svar skickas till klienten. 

Detta tillvägagångssätt tillåter Gluon att effektivt hantera tillstånd per session samtidigt som det säkerställer konsistens över flera klienter.

Slutligen nämns att staten IMAP lagras i en DBMS som stöder SQL. Betatestning av tjänsten Proton Mail Bridge, översatt till Gluon, visade en signifikant (1000 %) ökning av hastigheten att arbeta med IMAP. Bibliotekskoden är skriven i Go och distribueras under MIT-licensen.

Om du är intresserad av att veta mer om det kan du konsultera detaljerna I följande länk.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för data: AB Internet Networks 2008 SL
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.