প্রকল্প সম্পর্কে

Seastar হলো একটি ইভেন্ট-চালিত ফ্রেমওয়ার্ক, যা C++-এ নন-ব্লকিং, অ্যাসিঙ্ক্রোনাস সার্ভার-সাইড কোড লেখার জন্য। এটি ফিউচার এবং প্রমিসেসের উপর ভিত্তি করে, যা ডেভেলপারদের মডেলটি বুঝে গেলে তুলনামূলকভাবে সরল উপায়ে অ্যাসিঙ্ক্রোনাস লজিক প্রকাশ করতে দেয়। নির্মাণ: প্রদত্ত 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 CPU, দ্রুত NIC (১০G বা ৪০G পরামর্শ দেওয়া হয়, প্রতি CPU-তে অনেক হার্ডওয়্যার কিউ সহ), উচ্চ-IOPS SSD, এবং লোড তৈরির জন্য একাধিক ক্লায়েন্ট মেশিন। সম্পদ: একটি মিনি টিউটোরিয়াল এবং একটি বিস্তৃত টিউটোরিয়াল প্রদান করা হয়েছে, সাথে ওয়েব ডকুমেন্টেশন, একটি উন্নয়ন মেইলিং তালিকা, GitHub ডিসকাশন এবং একটি ইস্যু ট্র্যাকার। Seastar ব্যবহারকারী প্রকল্পগুলির মধ্যে রয়েছে cpv-cql-driver, cpv-framework, Redpanda, Scylla, smf এবং Ceph Crimson।