Gluon, avoimen lähdekoodin IMAP-kirjasto Proton Mailista

gluon-imap-kirjasto

Gluon pyrkii kuromaan umpeen tämän aukon ja voittamaan olemassa olevien avoimen lähdekoodin IMAP-kirjastojen rajoitukset.

sveitsiläinen yhtiö Proton AG, joka kehittää Proton Mail- ja Proton VPN -palveluita, äskettäin esitteli Gluon IMAP -kirjaston, suunniteltu sluodaksesi omia IMAP-palvelimia. Kirjasto on merkittävä, koska se tukee IMAP4rev1 (RFC-3501) -protokollaa ja sisältyy Proton Bridge -palvelun uuteen versioon.

Kehityksen aikana painopisteenä on toteutuksen oikeellisuus, vakaus, luotettavuus, kehittäjien helppokäyttöisyys ja korkea suorituskyky.

Tietoja Gluon IMAPista

Mainitaan se syy luodaksesi uuden IMAP-protokollan toteutuksen on halu luotettavasta ja tehokkaasta ratkaisusta jotka voivat toimia suurten postilaatikoiden kanssa. Proton Mailin kehittäjien mukaan olemassa olevissa avoimen lähdekoodin IMAP-kirjastoissa oli ylläpitoongelmia tai ne eivät skaalautuneet.

Ensimmäinen askel Gluonin kirjoittamisessa oli luoda IMAP-jäsennin RFC3501:ssä (uusi ikkuna) annetusta syntaksista. Käytimme ANTLR4:ää (uusi ikkuna), suosittua jäsentimen rakentajaa, luodaksemme jäsentimen, joka pystyi jäsentämään IMAP-komentoja ja -vastauksia määritelmien mukaisesti. Tämä antoi meille mahdollisuuden keskittyä IMAP-protokollan logiikan toteuttamiseen syötteen jäsentämisen ja vahvistamisen sijaan.

Gluon toimii myös hyvin useiden asiakkaiden kanssa. samaan aikaan, esimerkiksi kun käyttäjä katselee postia verkkokäyttöliittymän kautta ja käyttää samanaikaisesti erillistä sähköpostiohjelmaa.

Tällaisen työn organisoinnin monimutkaisuus johtuu siitä, että IMAP-asiakkaat käyttävät yleensä postilaatikossa olevien viestien järjestysnumeroita postiviestien tunnistamiseen, mutta kun yksi asiakas poistaa viestin, järjestysnumerot muuttuvat ja toisen asiakkaan tulee ottaa tämä muutos käyttöön. tili.

Tällaisessa tilanteessa palvelin lähettää asiakkaille muutosilmoituksen, mutta ennen ilmoituksen kuittausta palvelimen on varmistettava, että lähetetyissä komentoissa olevat sanomanumerot tulkitaan oikein.

Sähköpostin on oltava luotettava, mutta myös tehokas, varsinkin kun tyypillisen postilaatikon koko on kasvanut merkittävästi viimeisen vuosikymmenen aikana. Monet avoimen lähdekoodin IMAP-toteutukset yleensä optimoidaan yhdelle eikä toiselle, mikä johtaa melko suuriin virheisiin tai kompromisseihin.

Tämän ongelman ratkaisemiseksi sekä järjestää useiden rinnakkaisten yhteyksien käsittelyä asiakkaalta, gluoni toteuttaa tilannekuvamekanismin. Tämän mekanismin ydin on, että Gluon määrittää kullekin asiakkaalle oman postilaatikon tilannevedoksen.

Jokainen tilannevedos heijastaa ainutlaatuista näkymää asiakkaaseen liittyvästä postilaatikosta, joka säilyttää sen tilan ja varmistaa, että järjestysnumerot pysyvät samoina muiden asiakkaiden toimista riippumatta.

Gluon seuraa kahta postilaatikon tilaa: pysyvä ja istunto. Pysyvä tila heijastaa viestien todellista sijaintia valitussa postilaatikossa, kun taas istunnon tila heijastaa kunkin asiakkaan näkemystä postilaatikon sisällöstä.

Tilan synkronointi istuntoa kohti useiden yhdistettyjen asiakkaiden välillä, Gluon käyttää "vastaajajärjestelmää". Nämä ovat tyyppejä, jotka kapseloivat tilanmuutoksen, ja kun ne suoritetaan, ne muunnetaan IMAP-vastauksiksi. 

Kun asiakas suorittaa toiminnon (kuten merkitsee viestin luetuksi), joka muuttaa toisen asiakkaan tilan, taustaohjelma luo toiminnolle vastauksen ja työntää sen tilaan, jota asia koskee. Vaikutettu tila pysyy muuttumattomana, kunnes vastaaja suoritetaan, jolloin se päivitetään ja vastaava IMAP-vastaus lähetetään asiakkaalle. 

Tämän lähestymistavan avulla Gluon voi hallita tehokkaasti tilaa istuntoa kohden ja varmistaa samalla johdonmukaisuuden useiden asiakkaiden välillä.

Lopuksi mainitaan, että valtio IMAP on tallennettu tietokantajärjestelmään, joka tukee SQL:ää. Proton Mail Bridge -palvelun beta-testaus, joka on käännetty Gluonille, osoitti merkittävän (1000 %) lisäyksen IMAP-työskentelyn nopeudessa. Kirjastokoodi on kirjoitettu Go-kielellä ja sitä jaetaan MIT-lisenssillä.

Jos olet kiinnostunut tietämään siitä lisää, voit tutustua yksityiskohtiin Seuraavassa linkissä.


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastaa tiedoista: AB Internet Networks 2008 SL
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.