
يسعى Gluon إلى سد هذه الفجوة والتغلب على القيود الموجودة في مكتبات IMAP مفتوحة المصدر.
الشركة السويسرية بروتون إيه جي ، التي تطور خدمات Proton Mail و Proton VPN ، قدم مؤخرًا مكتبة Gluon IMAP، مصممة صلإنشاء خوادم IMAP الخاصة بك. المكتبة رائعة لأنها تدعم بروتوكول IMAP4rev1 (RFC-3501) وهي مضمنة في الإصدار الجديد من خدمة Proton Bridge.
أثناء التطوير ، ينصب التركيز على صحة التنفيذ ، والاستقرار ، والموثوقية ، وسهولة الاستخدام للمطورين ، والأداء العالي.
حول Gluon IMAP
يذكر أن السبب لإنشاء تطبيق جديد لبروتوكول IMAP هي الرغبة في حل موثوق وعالي الأداء يمكنها العمل مع صناديق البريد الكبيرة. وفقًا للمطورين في Proton Mail ، واجهت مكتبات IMAP مفتوحة المصدر مشاكل في الصيانة أو لم تتوسع.
كانت خطوتنا الأولى في كتابة Gluon هي إنشاء محلل IMAP من الصيغة الواردة في RFC3501 (نافذة جديدة). استخدمنا ANTLR4 (نافذة جديدة) ، منشئ محلل شهير ، لإنشاء محلل يمكنه تحليل أوامر واستجابات IMAP وفقًا للمواصفات. سمح لنا ذلك بالتركيز على تنفيذ منطق بروتوكول IMAP بدلاً من تحليل المدخلات والتحقق من صحتها.
يعمل Gluon أيضًا بشكل جيد مع العديد من العملاء. في نفس الوقت ، على سبيل المثال ، عندما يشاهد المستخدم البريد من خلال واجهة الويب ويستخدم عميل بريد منفصل في نفس الوقت.
يرجع تعقيد تنظيم مثل هذا العمل إلى حقيقة أن عملاء IMAP يستخدمون بشكل عام الأرقام التسلسلية للرسائل في صندوق البريد لتحديد رسائل البريد ، ولكن عندما يحذف أحد العملاء رسالة ، تتغير الأرقام التسلسلية ويجب على العميل الآخر إجراء هذا التغيير في حساب.
في مثل هذه الحالة ، يرسل الخادم إشعارًا بالتغيير إلى العملاء ، ولكن قبل الإقرار بالإخطار ، يجب على الخادم التأكد من تفسير أرقام الرسائل في الأوامر المرسلة بشكل صحيح.
يجب أن يكون البريد الإلكتروني موثوقًا به ، ولكنه يحتاج أيضًا إلى أن يكون عالي الأداء ، خاصة وأن حجم البريد الوارد النموذجي قد نما بشكل ملحوظ خلال العقد الماضي. تميل العديد من تطبيقات IMAP مفتوحة المصدر إلى التحسين لأحدها دون الآخر ، مما يؤدي إلى أخطاء أو مقايضات كبيرة إلى حد ما.
لحل هذه المشكلة وكذلك لتنظيم معالجة عدة اتصالات متوازية من العميل ، غلوون تنفذ آلية اللقطة. جوهر هذه الآلية هو أن Gluon يعين لقطة صندوق البريد الخاصة به لكل عميل.
تعكس كل لقطة طريقة عرض فريدة لصندوق البريد المرتبط بالعميل والتي تحافظ على حالتها وتضمن بقاء أرقام التسلسل كما هي ، بغض النظر عن الإجراءات التي يتخذها العملاء الآخرون.
يتتبع Gluon حالتين من علب البريد: الحالة المستمرة وجلسة العمل. تعكس الحالة المستمرة الموقع الفعلي للرسائل في صندوق البريد المحدد ، بينما تعكس حالة الجلسة عرض كل عميل لمحتوى صندوق البريد.
لمزامنة الحالة لكل جلسة بين العديد من العملاء المتصلين ، يستخدم جلون نظام "المستجيبين". هذه هي الأنواع التي تغلف تغييرًا في الحالة ، وعند تنفيذها ، يتم تحويلها إلى استجابات IMAP.
عندما يقوم العميل بتنفيذ إجراء (مثل تعليم رسالة كمقروءة) من شأنه تغيير حالة عميل آخر ، فإن الواجهة الخلفية تنشئ مستجيبًا للإجراء وتدفعه إلى الحالة المتأثرة. تظل الحالة المتأثرة بدون تغيير حتى يتم تنفيذ المستجيب ، وفي ذلك الوقت يتم تحديثه ويتم إرسال استجابة IMAP المقابلة إلى العميل.
يسمح هذا النهج لـ Gluon بإدارة الحالة بكفاءة على أساس كل جلسة مع ضمان الاتساق عبر العديد من العملاء.
واخيرا يذكر ان الدولة يتم تخزين IMAP في DBMS يدعم SQL. أظهر الاختبار التجريبي لخدمة Proton Mail Bridge ، المترجمة إلى Gluon ، زيادة ملحوظة (1000٪) في سرعة العمل مع IMAP. تمت كتابة رمز المكتبة في Go ويتم توزيعه بموجب ترخيص معهد ماساتشوستس للتكنولوجيا.
إذا كنت مهتمًا بمعرفة المزيد عنها ، يمكنك الرجوع إلى التفاصيل في الرابط التالي.