इस प्रोजेक्ट के बारे में

Seastar एक इवेंट-संचालित फ्रेमवर्क है जो C++ में नॉन-ब्लॉकिंग, एसिंक्रोनस सर्वर-साइड कोड लिखने के लिए है। यह फ्यूचर्स और प्रॉमिसेस पर आधारित है, जिससे डेवलपर्स मॉडल समझ लेने के बाद एसिंक्रोनस लॉजिक को अपेक्षाकृत सरल तरीके से व्यक्त कर सकते हैं। निर्माण: निर्भरताएँ दिए गए install-dependencies.sh स्क्रिप्ट के माध्यम से स्थापित की जा सकती हैं, फिर configure.py (CMake के चारों ओर एक रैपर) के साथ कॉन्फ़िगर किया जा सकता है और ninja के साथ संकलित किया जा सकता है। लापता निर्भरताएँ --cook विकल्प का उपयोग करके स्थानीय रूप से प्राप्त की जा सकती हैं। बिल्ड मोड CMake बिल्ड प्रकारों से मेल खाते हैं: debug (Debug, ASAN/UBSAN, सिस्टम एलोकेटर, सभी जाँचें), release (RelWithDebInfo, -O3, Seastar एलोकेटर, asserts), dev (कस्टम, -O1, कोई डीबग जानकारी नहीं), और sanitize (कस्टम, -Os, ASAN/UBSAN)। README नोट करता है कि Seastar एलोकेटर और अनुकूलन के प्रति संवेदनशील है, release dev, sanitize और debug की तुलना में काफी तेज़ है। उपभोग: Seastar का उपयोग सीधे इसके बिल्ड निर्देशिका से या स्थापना के बाद, pkg-config या Seastar पैकेज के साथ CMake के माध्यम से किया जा सकता है। यह C++23 और C++26 दोनों का समर्थन करता है, डिफ़ॉल्ट रूप से कंपाइलर द्वारा समर्थित नवीनतम मानक का उपयोग करता है, जिसे --c++-standard के साथ चुना जा सकता है। Docker-आधारित बिल्ड निर्देश मौजूद हैं, और DPDK का उपयोग वैकल्पिक है। विशेषताएँ: Seastar में बेहतर प्रदर्शन के लिए अपना स्वयं का यूजरस्पेस TCP/IP स्टैक शामिल है। अनुशंसित हार्डवेयर में मल्टीकोर/NUMA CPU, तेज़ NIC (10G या 40G सुझाए गए, प्रति CPU कई हार्डवेयर कतारों के साथ), उच्च-IOPS SSDs, और लोड उत्पन्न करने के लिए कई क्लाइंट मशीनें शामिल हैं। संसाधन: एक मिनी ट्यूटोरियल और एक व्यापक ट्यूटोरियल प्रदान किया गया है, साथ ही वेब दस्तावेज़ीकरण, एक विकास मेलिंग सूची, GitHub Discussions और एक मुद्दा ट्रैकर भी। Seastar का उपयोग करने वाली परियोजनाओं में cpv-cql-driver, cpv-framework, Redpanda, Scylla, smf और Ceph Crimson शामिल हैं।