عن المشروع
Seastar هو إطار عمل يعتمد على الأحداث لكتابة كود غير متزامن من جانب الخادم في C++. يعتمد على futures و promises، مما يتيح للمطورين التعبير عن المنطق غير المتزامن بطريقة مباشرة نسبيًا بمجرد فهم النموذج.
البناء: يمكن تثبيت التبعيات عبر السكربت install-dependencies.sh، ثم تكوينه باستخدام configure.py (واجهة حول CMake) وترجمته بـ ninja. يمكن جلب التبعيات المفقودة محليًا باستخدام خيار --cook. ترتبط أوضاع البناء بأنواع CMake: debug (Debug، ASAN/UBSAN، موزع النظام، جميع الفحوصات)، release (RelWithDebInfo، -O3، موزع Seastar، تأكيدات)، dev (مخصص، -O1، بدون معلومات تصحيح)، sanitize (مخصص، -Os، ASAN/UBSAN). تشير README إلى أن Seastar حساس للموزعات والتحسينات، مع كون release أسرع بكثير من dev و sanitize و debug.
الاستهلاك: يمكن استخدام Seastar مباشرة من دليل البناء أو بعد التثبيت، عبر pkg-config أو CMake مع حزمة Seastar. يدعم C++23 و C++26، مع افتراض أحدث معيار يدعمه المترجم، قابل للاختيار بـ --c++-standard. توجد تعليمات بناء عبر Docker، واستخدام DPDK اختياري.
الميزات: يتضمن Seastar مكدس TCP/IP خاصًا في وضع المستخدم لتحسين الأداء. الأجهزة الموصى بها تشمل وحدات معالجة متعددة النواة/NUMA، بطاقات شبكة سريعة (10G أو 40G مقترحة، مع قوائم انتظار أجهزة متعددة لكل معالج)، أقراص SSD عالية الإدخال/الإخراج، وأجهزة عملاء متعددة لتوليد الحمل.
الموارد: يتوفر برنامج تعليمي مصغر وشامل، مع وثائق ويب، وقائمة بريدية للتطوير، ومناقشات GitHub، ومتتبع للمشكلات.
من المشاريع التي تستخدم Seastar: cpv-cql-driver، cpv-framework، Redpanda، Scylla، smf، و Ceph Crimson.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.