इस प्रोजेक्ट के बारे में
pybind11 एक हल्की, हेडर-ओनली C++ लाइब्रेरी है जो C++ और Python के बीच सहज इंटरऑपरेबिलिटी सक्षम करती है। इसका मुख्य उपयोग मौजूदा C++ कोड के लिए Python बाइंडिंग बनाने, C++ टाइप्स को Python में और Python टाइप्स को C++ में एक्सपोज़ करने के लिए किया जाता है। यह प्रोजेक्ट Boost.Python के छोटे, स्व-निहित विकल्प के रूप में बनाया गया था, जो C++11 सुविधाओं जैसे tuples, lambda functions और variadic templates पर निर्भर रहकर Boost की बड़ी निर्भरता से बचता है।
यह लाइब्रेरी C++ की कई विशेषताओं को Python में मैप करने का समर्थन करती है, जिनमें कस्टम डेटा स्ट्रक्चर वाले फ़ंक्शन, इंस्टेंस और स्टैटिक मेथड्स, ओवरलोडेड फ़ंक्शन, एट्रिब्यूट्स, एक्सेप्शन, एन्यूमरेशन, कॉलबैक, इटरेटर, कस्टम ऑपरेटर, इनहेरिटेंस, STL कंटेनर, स्मार्ट पॉइंटर और Python से वर्चुअल मेथड एक्सटेंशन शामिल हैं। यह एकीकृत NumPy समर्थन, NumPy एरेज़ पर स्वचालित फ़ंक्शन वेक्टराइज़ेशन, कुशल डेटा ट्रांसफर के लिए बफर प्रोटोकॉल एक्सपोज़र, स्लाइस-आधारित एक्सेस और C++ टाइप्स के लिए pickle समर्थन भी प्रदान करती है।
pybind11 CPython 3.9+, PyPy3 और GraalPy के साथ इम्प्लीमेंटेशन-अज्ञेय इंटरफ़ेस के माध्यम से काम करती है। लाइब्रेरी में केवल कुछ हेडर फ़ाइलें होती हैं और अतिरिक्त लाइब्रेरीज़ से लिंक करने की आवश्यकता नहीं होती। दस्तावेज़ pybind11.readthedocs.io पर उपलब्ध है, जिसमें setuptools, scikit-build और CMake इंटीग्रेशन के उदाहरण शामिल हैं। यह प्रोजेक्ट BSD-शैली लाइसेंस के तहत वितरित किया जाता है और PyPI तथा conda-forge पर उपलब्ध है।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.