محرك الويب المؤازر في كيو تي
كداب (شركة رائدة في توفير الخبرة في برامج Qt وC++ و3D/OpenGL على منصات سطح المكتب والمنصات المدمجة والمحمولة) أعلن مؤخراً عبر مدونته، إطلاق "Servo WebView لـ Qt". هذه الأداة الجديدة استخدم المحرك المتصفح Servo بدلاً من وحدة Qt WebEngine المستندة إلى Chromium، تقديم بديل لعرض محتوى الويب في تطبيقات QML.
سيرفو هو مشروع تم تطويره في البداية بواسطة Mozilla والآن تحت إشراف مؤسسة Linux، فهو يتميز بكونه تطبيقًا محرك عرض الويب المكتوب بلغة Rust، تركز على سلامة الذاكرة والاستخدام الفعال للأنظمة الحديثة متعددة النواة.
من بين ميزاته أبرزها ودعم العرض متعدد الخيوط لصفحات الويب، موازاة العمليات مع DOM و استخدام آليات البرمجة الآمنة التي توفرها شركة Rust. على عكس محرك متصفح Firefox، الذي يستخدم أنظمة معالجة محتوى ذات ترابط واحد، تم تصميم Servo خصيصًا للاستفادة من الأنظمة الحديثة متعددة النواة عن طريق تقسيم DOM وتنفيذ المهام الفرعية بالتوازي، وبالتالي تحسين استخدام موارد وحدة المعالجة المركزية المتعددة. قامت Mozilla بدمج أجزاء من Servo في Firefox، مثل محرك CSS متعدد الخيوط ونظام العرض WebRender.
حول سيرفو ويب فيو كيو تي
دمج يهدف Servo WebView في تطبيقات Qt إلى تحسين الأداء وتقديم قدر أكبر من الكفاءة، يساهم هذا التكامل أيضًا بشكل كبير في أمان تطبيقات Qt. التكامل المؤازر في كيو تي يتم تحقيق ذلك من خلال طبقة CXX-Qtوالذي يعمل كجسر بين Rust وC++. تسمح هذه الطبقة بإنشاء مكونات Rust التي تتكامل بسلاسة مع برامج C++ باستخدام Qt. وهذا يفتح إمكانيات جديدة لتطوير تطبيقات Qt مع التركيز على الأمان وأداء عرض الويب.
في KDAB تمكنا من دمج محرك الويب Servo داخل Qt، وذلك باستخدام مكتبة CXX-Qt الخاصة بنا كجسر بين Rust وC++. وهذا يعني أنه يمكننا الآن استخدام Servo كبديل لـ Chromium لعروض الويب في تطبيقات Qt.
من منظور QML، يشبه هذا المكون Chromium WebView، حيث يوفر canGoBack الخصائص والأساليب. يعمل عنصر QML نفسه بنفس الطريقة ويتم عرض المحتوى ليتوافق مع حجمه canGoForwardloadingtitleurlgoBackgoForward
وجاء في الإعلان أن سمن المتوقع أن تكون إحدى أكبر مزايا Servo WebView هي القدرة على تقليل سطح الهجوم في تطبيقات Qt. التي تستخدم WebView API، وذلك بفضل استخدام لغة Rust التي تقلل من ظهور الثغرات الأمنية المتعلقة بأخطاء إدارة الذاكرة.
وبالإضافة إلى هذا، يُذكر أيضًا ذلك التكامل يقدم عددا من الفوائد، بما فيها:
- أمان أكبر: ولأنه مكتوب بلغة Rust، يعمل Servo على تقليل سطح الهجوم وتقليل نقاط الضعف المتعلقة بإدارة الذاكرة، مما يساهم في تجربة تصفح ويب أكثر أمانًا لمستخدمي تطبيقات Qt.
- أداء أفضل: يعمل تركيز Servo على الموازاة والاستخدام الفعال لموارد وحدة المعالجة المركزية متعددة النواة على تحسين أداء عرض الويب في تطبيقات Qt، مما يوفر تجربة أكثر سلاسة واستجابة.
- المرونة وقابلية التوسع: يوفر دمج Servo في Qt من خلال CXX-Qt منصة مرنة وقابلة للتطوير لتطوير تطبيقات الويب، مما يفتح إمكانيات جديدة للتطبيقات الغنية بالمحتوى والميزات.
وفيما يتعلق بخطط التطوير والتحسين المستقبلية، تم ذكر التكامل للبحث الإضافي والتحسينات في الجسر بين Rust وQt، والتحسينات في واجهة برمجة التطبيقات (API) للأنظمة المدمجة، والتحسينات في كائن Framebuffer الذي يفرض استخدام الواجهة الخلفية لبرنامج OpenGL، من بين أشياء أخرى.
أخيرًا ، يجب ذكر ذلك كود Servo WebView لـ Qt مرخص بموجب MPL-2.0 وإذا كنت مهتمًا بأن تكون قادرًا على معرفة المزيد عنها ، يمكنك الرجوع إلى التفاصيل في الرابط التالي.