من المؤكد أن wasm لن يكون خيارًا هنا، فحجم الحمولة سيكون أكبر بكثير، وهناك العديد من مشكلات الأمان المتعلقة بتشغيله بشكل صحيح مع سياسات المحتوى (CSPs) (ومخاوف CORS). إن تنفيذ markdown.it سريع بشكل مذهل وقابل للتوسع، مما يسمح باستخدام عدد كبير من الإضافات ووجود نظام بيئي واسع موجود مسبقًا.
بعض السياق الإضافي حول mini_racer. منذ اليوم الأول في Discourse، أصررنا على وجود خط معالجة واحد لطهي markdown، مما أزال تمامًا فئة مزعجة من الأخطاء التي واجهتها في Stack Overflow حيث كان الخادم والعميل يتحدثان لهجات مختلفة قليلاً. بالنسبة لـ Discourse، هذا أكثر أهمية لأن الإضافات يمكنها تعديل خط المعالجة. على سبيل المثال:
يتم تنفيذه في إضافة (تحليل [])
لدينا العديد من ميزات “جودة الحياة” التي نحصل عليها باستخدام unicorn والاعتماد على التفرع، انظر:
على وجه التحديد، نراقب وندير عملية فرعية لـ sidekiq من العملية الرئيسية.
لكن… لا يحتوي truffle على GIL، وpuma موجود بالفعل في Gemfile بمجرد عمل mini_racer، يمكننا التعاون في إعداد truffle يحافظ على الذاكرة ويحافظ على sidekiq وpuma في نفس العملية. أو يمكن للأشخاص ببساطة بدء عملية sidekiq يدويًا. يمكن لـ Puma بالتأكيد العمل، فنحن نستخدم Rack.hijack على نطاق واسع، لكن ذلك مُنفذ بالفعل عبر Puma/Unicorn/Passenger.