تعرف على كيفية استخدام كروز في مشروعك.
اتبع ReadMe في مستودع المشروع على Github.
اقرأ وثائق API
شاهد الحديث التمهيدي في مؤتمر Rust Nation 2023 الأخير في لندن.
يمكنك أيضًا الانضمام إلى المحادثة الودية على قناة Zulip الخاصة بنا.
لاحظ أن هذه الجوهر تجريبي وموجود حاليًا تحت التطوير النشط (ربما لا تكون جاهزًا للاستخدام في تطبيقات الإنتاج حتى الآن). ومع ذلك ، يجب أن يعمل الفرع الرئيسي دائمًا بشكل جيد ، وسنحاول الحفاظ على الأمثلة والوثائق حتى الآن مع تقدمنا. نحن نعتقد أن واجهة برمجة التطبيقات قد استقرت الآن ، لذا لديك مسرحية! :-)
المفهوم المعماري الأساسي هو الفصل الصارم للمهام الحسابية النقية عن المهام التي تسبب آثارًا جانبية. هذا مشابه للطريقة التي يعمل بها الدردار.
في الرسم البياني أعلاه ، يتم تجميع "النواة" الداخلية وربطها بـ "shell" الخارجي على كل منصة كمكتبة:
في الواقع ، نظرًا لأن Webassembly (WASM) هو أحد أهداف التجميع ، يجب أن يظل النواة خالية من التأثير الجانبي ، نظرًا للطبيعة الرملية لبيئة وقت تشغيل WASM.
على هذا النحو ، فإن النواة معزولة تمامًا وآمنة ضد هجمات سلسلة إمداد البرمجيات ، لأنه لا يمكن الوصول إلى أي واجهات برمجة التطبيقات الخارجية. كل ما يمكن أن تفعله هو إجراء حسابات نقية والحفاظ على الحالة الداخلية.
بعد بنية ELM ، يحدد Core أنواع المكونات الرئيسية داخل التطبيق:
Event - enum يصف الأحداث التي يمكن أن يتعامل معها الأساسيةModel - يصف الحالة الداخلية للتطبيقViewModel - يمثل المعلومات التي يجب عرضها على المستخدم يتم ربط الاثنان السابقان معًا من خلال وظيفة update ، مألوفة من ELM أو Redux أو غيرها من بنيات مصادر الأحداث ، والتي لديها حاليًا توقيع هذا النوع:
fn update (
& self ,
event : Event ,
model : & mut Model ,
capabilities : & Capabilities ,
) تتمثل مهمة وظيفة update في معالجة Event ما ، وتحديث النموذج وفقًا لذلك ، وربما تطلب بعض الآثار الجانبية باستخدام القدرات.
تتم كتابة "shell" الأصلي المنصة المرفقة باستخدام اللغة المناسبة للمنصة ، وتعمل كبيئة وقت التشغيل التي يتم من خلالها تنفيذ جميع المهام غير المعروضة. من وجهة نظر النواة ، فإن shell هي المنصة التي يعمل عليها الأساسية.
بعد بنية الدردار ، تعتمد الواجهة مع النواة على الرسائل. هذا يعني أن النواة غير قادر على أداء أي شيء آخر غير الحسابات الخالصة. لتنفيذ أي مهمة تنشئ تأثيرًا جانبيًا (مثل مكالمة HTTP أو توليد الأرقام العشوائية) ، يجب أن يطلب القلب من القشرة.
يحتوي Core على مفهوم للقدرات-واجهات قابلة لإعادة الاستخدام للآثار الجانبية المشتركة-تدعم الدلالات النارية والاستجابة/الاستجابة.
القدرة الوحيدة المدمجة هي Render . لكن هذا المستودع يحتوي على بعض القدرات في مراحل مختلفة من النضج ، ويمكنك بسهولة كتابة خاصة بك إذا كنت تريد:
Render (اطلب من واجهة المستخدم تقديم ViewModel)-المصدر ، مدمج إلى crux_core ، طلب فقطHttp (تطبيق HTTP الكامل استنادًا إلى API Surf) - المصدر ، الصناديق ، الطلب/الاستجابةKeyValue (API الأساسي للمتجر الرئيسي)-المصدر ، الصناديق ، الطلب/الاستجابةTime (احصل على الوقت الحالي ، والإخطار بعد المدة ، والإخطار في اللحظة) - المصدر ، الصناديق ، الطلب/الاستجابةPlatform (الحصول على النظام الأساسي الحالي) - المصدر ، الصناديق ، الطلب/الاستجابةSSE (أحداث Server-Sent الأساسية)-المصدر ، الطلب/البثPubSub (Pub Sub مع تدفق) - المصدر ، الطلب/الاستجابة/البثTimer (بدء المؤقت ، الانتهاء ، إلغاء) - المصدر ، الطلب/الاستجابة/البثDelay - جزء من البرنامج التعليمي في الكتابRed Badger هي استشارات المنتجات الرقمية التي تثق بها Blue Chips و Global Brands. يتيح لنا تصميم منتجاتنا ونسبنا التقنية صياغة المنتجات الرقمية عالية التأثير التي يريدها العملاء. نحن نستخدم النهج الهندسية الحديثة لتقديم تغيير مستدام. وتضمين القدرات الرقمية لسلطة الابتكار المستمر.
Zulip هو تطبيق دردشة الفريق الحديثة مفتوحة المصدر مصمم للحفاظ على كل من المحادثات الحية وغير المتزامنة.
Zulip راعي Crux من خلال توفير خادم Zulip الخاص بنا - شكرًا لك Zulip!