شهد مؤتمر P99 الافتراضي لعام 2026 من ScyllaDB عرضًا مثيرًا للاهتمام من Carl Lerche، المهندس الرئيسي في Amazon Web Services. قدم Lerche إطار عمل جديدًا يحمل اسم «Topcoat»، والذي يهدف إلى تغيير نظرتنا للغة Rust وتوسيع استخدامها في تطوير تطبيقات الويب، وهو مجال لم تُعرف به Rust تقليديًا.
لماذا Rust لتطبيقات الويب؟
لطالما كانت Rust محبوبة لأدائها العالي وضمانات الأمان التي تقدمها في مجالات أخرى، لكنها لم تكن الخيار الأول لمطوري الويب الذين يميلون إلى JavaScript وRuby. يرى Lerche، المعروف بعمله على «Tokio» (أشهر بيئة تشغيل Rust غير المتزامنة)، أن الأمور قد تتغير. مع وجود الذكاء الاصطناعي الذي يتولى المهام الثقيلة، قد يبدأ المطورون في التفكير بجدية في Rust لتطبيقات الويب، مستفيدين من مزاياها الفائقة.
على عكس إطارات عمل Rust الأخرى مثل «Leptos» و«Dioxus» التي تقوم بتحويل Rust إلى WebAssembly للتشغيل في المتصفحات، يتخذ «Topcoat» مسارًا مختلفًا. فهو يقوم بتحويل كود Rust الخاص بك إلى JavaScript، معتقدًا أن JavaScript لا تزال الطريقة الأمثل للتفاعل مع نموذج كائن المستند (DOM) الخاص بالمتصفح. ويشير Lerche إلى أن هذه المقاربة قد تبدو للوهلة الأولى وكأنها تعيدنا إلى الأيام الأولى للويب، لكنها في الواقع تحديث لأساليب مثبتة بتقنيات أفضل.
كيف يعمل Topcoat؟
التركيز الأساسي لـ «Topcoat» هو العرض من جانب الخادم (Server-Side Rendering). هذا يعني أن معظم منطق التطبيق يتم تنفيذه على الخادم، وتُرسل النتائج النهائية فقط إلى المتصفح. هذا يختلف عن تعريف «Reactive» الحالي، حيث يتم تحميل منطق البرنامج بالكامل إلى المتصفح في بداية الجلسة. ومع ذلك، يمكن للمطورين كتابة منطق من جانب العميل باستخدام مجموعة فرعية من لغة Rust، يقوم «Topcoat» بتحويلها تلقائيًا إلى JavaScript للمتصفح.
يزعم Lerche أن «Topcoat» ليس مخصصًا لبناء تطبيقات معقدة جدًا مثل Figma، لكنه مثالي لما يصل إلى 90 بالمئة من تطبيقات الويب الشائعة المعتمدة على قواعد البيانات التي تعمل في المتصفح. وعندما ينقر المستخدم على زر في الصفحة، لا يتم تحديث الصفحة بأكملها، بل فقط جزء HTML الخاص بذلك المكون يعود ويُحدَّث من الخادم، مما يوفر تجربة سريعة وسلسة.
من أهم مزايا «Topcoat» أنه يتيح للمكونات الموجودة على الخادم التحدث مباشرة مع قاعدة البيانات. هذا ممكن بفضل مشروع سابق لـ Lerche يُدعى «Toasty»، وهو عبارة عن ORM (Object-Relational Mapper) غير متزامن مبني على Rust. هذا التكامل يلغي الحاجة إلى تسلسل البيانات وإرسالها إلى العميل وإلغاء تسلسلها، مما يبسط عملية التعامل مع البيانات ويجعلها أكثر كفاءة. كما أنه يتيح للخادم إرسال رأس قالب HTML إلى العميل فورًا، مما يسمح للمتصفح ببدء التحميل المسبق للموارد (مثل CSS أو الصور) بينما يقوم الخادم بإنشاء بقية الصفحة.
ما الذي يعنيه هذا للمطورين؟
برأينا، يقدم «Topcoat» فرصة مثيرة لمطوري Rust للانخراط في تطوير الويب بكفاءة أعلى، خاصةً في بناء تطبيقات الويب التي تحتاج إلى أداء عالٍ وأمان. القدرة على كتابة منطق الواجهة الخلفية والأمامية بلغة واحدة، مع الاستفادة من سرعة Rust، يمكن أن تبسط عملية التطوير وتقلل من التعقيد. كما أن التكامل المباشر مع قواعد البيانات عبر «Toasty» يمثل ميزة قوية للمشاريع التي تتطلب تفاعلاً مكثفًا مع البيانات.
على الرغم من أن «Topcoat» قد لا يكون مناسبًا للتطبيقات شديدة التعقيد، إلا أن المطور Ken Kohlman من قناة «Code to the Moon» على YouTube أشار إلى بساطته وسهولة البدء به حتى لمن ليسوا على دراية كاملة بـ Rust. هذا يجعله خيارًا واعدًا للمشاريع الأصغر والمتوسطة التي ترغب في الاستفادة من قوة Rust في بيئة الويب.
المصدر: theregister.com