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

Swoole एक PHP एक्सटेंशन है जो इवेंट-संचालित, अतुल्यकालिक, कोरूटीन-आधारित समवर्ती रनटाइम प्रदान करता है। यह C एक्सटेंशन के रूप में लिखा गया है और PECL के माध्यम से स्थापित किया जाता है या स्रोत से संकलित किया जाता है; इसके लिए Linux, macOS, Cygwin या WSL, PHP 8.2 या बाद का संस्करण, और GCC 4.8 या बाद का संस्करण आवश्यक है। README में वर्णित मुख्य क्षमताएँ: - कोरूटीन: अंतर्निहित कोरूटीन शेड्यूलिंग डेवलपर्स को सिंक्रोनस-दिखने वाला PHP कोड लिखने की अनुमति देता है जो अतुल्यकालिक रूप से निष्पादित होता है। कोरूटीन को अल्ट्रा-लाइटवेट थ्रेड के रूप में वर्णित किया गया है, जिनमें से एक प्रक्रिया में हजारों बनाए जा सकते हैं। - रनटाइम हुक: Swoole\Runtime::enableCoroutine() Zend VM स्ट्रीम फ़ंक्शन पॉइंटर्स को बदल देता है ताकि ब्लॉकिंग I/O फ़ंक्शन गैर-ब्लॉकिंग और कोरूटीन-शेड्यूल्ड हो जाएं। समर्थित एकीकरणों में ext-curl (Symfony और Guzzle के साथ), ext-redis, ext-mysqli, कई PDO ड्राइवर (MySQL, PostgreSQL, SQLite, Oracle, ODBC), TCP/UDP/UDG/Unix/SSL-TLS पर स्ट्रीम फ़ंक्शन और फाइलसिस्टम API, ext-sockets, ext-soap, sleep फ़ंक्शन, proc_open, gethostbyname, shell_exec, exec, और fread/fopen/fsockopen/fwrite/flock जैसे फ़ाइल फ़ंक्शन शामिल हैं। - सर्वर: HTTP, WebSocket, HTTP/2 और TCP सर्वर एक इवेंट लूप साझा कर सकते हैं; एक WebSocket सर्वर उदाहरण दूसरे पोर्ट पर रॉ TCP के लिए भी सुनता है। नेटवर्क परत epoll/kqueue का उपयोग करती है। - क्लाइंट: HTTP, WebSocket, HTTP/2 और TCP के लिए कोरूटीन क्लाइंट दिखाए गए हैं, जिनमें DNS, अनुरोध और प्रतिक्रिया हैंडलिंग स्वचालित रूप से शेड्यूल की जाती है। - चैनल: Swoole\Coroutine\Channel कोरूटीन के बीच CSP-शैली संचार प्रदान करता है, जिसे Redis कनेक्शन पूल और एक उत्पादक/उपभोक्ता उदाहरण के साथ प्रदर्शित किया गया है। - टाइमर: Swoole\Timer::tick, after, clear और exists, साथ ही कोरूटीन-आधारित स्लीपिंग लूप। - मिश्रित कार्यभार: README रनटाइम हुक का उपयोग करके एक ही प्रक्रिया में 10K स्लीप, फ़ाइल रीड/राइट, PDO/MySQLi क्वेरी, और TCP/UDP सर्वर-क्लाइंट एक्सचेंज को दर्शाता है। स्थापना विकल्प PECL (pecl install swoole) या स्रोत निर्माण (phpize, configure, make, make install) हैं, जिनमें वैकल्पिक फ्लैग जैसे --enable-openssl, --enable-sockets, --enable-mysqlnd और --enable-swoole-curl शामिल हैं। Async क्लाइंट और API को संस्करण 4.3.0 से एक अलग swoole_async एक्सटेंशन में स्थानांतरित कर दिया गया था। परियोजना Apache 2.0 के तहत लाइसेंस प्राप्त है और दस्तावेज़ीकरण के लिए wiki.swoole.com, एक IDE हेल्पर रिपॉजिटरी, एक Awesome Swoole सूची, और Twitter, Discord और एक चीनी-भाषा समुदाय पर सामुदायिक चैनलों की ओर इशारा करती है।