Gluon, una biblioteca IMAP open source de la mà de Proton Mail

gluon-imap-library

Gluon busca tancar aquesta bretxa i superar les limitacions a les biblioteques IMAP de codi obert existents

L'empresa suïssa Proton AG, que desenvolupa els serveis Proton Mail i Proton VPN, presento recentment la llibreria Gluon IMAP, dissenyada para crear servidors IMAP propis. La biblioteca és destacable, ja que admet el protocol IMAP4rev1 (RFC-3501) i està inclosa a la nova versió del servei Proton Bridge.

Durant el desenvolupament, l'atenció se centra en la correcció de la implementació, estabilitat, fiabilitat, facilitat d'ús per als desenvolupadors i l'alt rendiment.

Sobre Gluon IMAP

S'esmenta que la raó per crear una nova implementació del protocol IMAP és el desig d'obtenir una solució fiable i d'alt rendiment que pugui funcionar amb bústies grans. Segons els desenvolupadors de Proton Mail, les biblioteques IMAP de codi obert existents van experimentar problemes de manteniment o no van escalar.

El nostre primer pas per escriure Gluon va ser generar un analitzador IMAP a partir de la sintaxi donada a RFC3501 (nova finestra). Fem servir ANTLR4(nova finestra), un popular generador d'analitzadors, per crear un analitzador que pogués analitzar ordres i respostes IMAP d'acord amb l'especificació. Això ens va permetre centrar-nos a implementar la lògica del protocol IMAP en comptes d‟analitzar i validar l‟entrada.

Gluon també funciona correctament amb múltiples clients al mateix temps, per exemple, quan un usuari està veient el correu a través de la interfície web i utilitza un client de correu separat alhora.

La complexitat d'organitzar aquest treball es deu al fet que els clients IMAP generalment usen els números de seqüència dels missatges a la bústia per identificar els missatges de correu, però quan un client elimina un missatge, els números de seqüència canvien i l'altre client ha de tenir en compte aquest canvi.

En aquesta situació, el servidor envia una notificació de canvi als clients, però abans d'acusar rebut de la notificació, el servidor ha d'assegurar-se que els números de missatges a les ordres transmeses s'interpretin correctament.

El correu electrònic ha de ser fiable, però també ha de ser dalt rendiment, especialment perquè la mida de la safata dentrada típica ha crescut significativament durant lúltima dècada. Moltes implementacions d'IMAP de codi obert tendeixen a optimitzar per a una i no per a l'altra, cosa que genera errors o compensacions força importants.

Per resoldre aquest problema, així com per organitzar el processament de diverses connexions paral·leles des d'un client, Gluó implementa el mecanisme dinstantànies. L'essència d'aquest mecanisme és que Gluon assigna la vostra pròpia instantània de bústia de correu a cada client.

Cada instantània reflecteix una vista única de la bústia associada amb el client que conserva el seu estat i garanteix que els números de seqüència segueixin sent els mateixos, independentment de les accions realitzades per altres clients.

Gluon fa un seguiment de dos estats de bústia: persistent i de sessió. L'estat persistent reflecteix la posició real dels missatges a la bústia seleccionada, mentre que l'estat de sessió reflecteix la vista de cada client del contingut de la bústia.

Per sincronitzar l'estat per sessió entre diversos clients connectats, Gluon utilitza un sistema de «responedors». Aquests són els tipus que encapsulen un canvi d'estat i, quan s'executen, es converteixen en respostes IMAP. 

Quan un client realitza una acció (com marcar un missatge com a llegit) que canviaria l'estat d'un altre client, el backend crea un responedor per a l'acció i l'empeny a l'estat afectat. L'estat afectat roman sense canvis fins que el responedor s'executa, moment en què s'actualitza i s'envia una resposta IMAP corresponent al client. 

Aquest enfocament permet a Gluon administrar de manera eficient l'estat per sessió alhora que garanteix la coherència entre múltiples clients.

Finalment, s'esmenta que l'estat IMAP s'emmagatzema en un DBMS que admet SQL. Les proves beta del servei Proton Mail Bridge, traduït a Gluon, van mostrar un augment significatiu (1000%) en la velocitat de treball amb IMAP. El codi de la biblioteca està escrit a Go i es distribueix sota la llicència MIT.

Si estàs interessat a poder conèixer-ne més, pots consultar els detalls en el següent enllaç.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: AB Internet Networks 2008 SL
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.