প্রকল্প সম্পর্কে
pybind11 একটি হালকা, হেডার-অনলি C++ লাইব্রেরি যা C++ এবং পাইথনের মধ্যে নির্বিঘ্ন আন্তঃকার্যক্ষমতা সক্ষম করে। এটি মূলত বিদ্যমান C++ কোডের জন্য পাইথন বাইন্ডিং তৈরি করতে ব্যবহৃত হয়, যার মাধ্যমে C++ টাইপগুলি পাইথনে এবং পাইথনের টাইপগুলি C++-তে প্রকাশ করা যায়। প্রকল্পটি Boost.Python-এর একটি ছোট, স্বয়ংসম্পূর্ণ বিকল্প হিসেবে তৈরি করা হয়েছে, যা টুপল, ল্যাম্বডা ফাংশন এবং ভ্যারিয়াডিক টেমপ্লেটের মতো C++11 বৈশিষ্ট্যের উপর নির্ভর করে Boost-এর বড় নির্ভরশীলতার পদচিহ্ন এড়িয়ে চলে।
লাইব্রেরিটি C++-এর বিস্তৃত বৈশিষ্ট্যকে পাইথনে ম্যাপিং সমর্থন করে, যার মধ্যে রয়েছে কাস্টম ডেটা স্ট্রাকচার সহ ফাংশন, ইনস্ট্যান্স এবং স্ট্যাটিক মেথড, ওভারলোডেড ফাংশন, অ্যাট্রিবিউট, এক্সেপশন, এনুমারেশন, কলব্যাক, ইটারেটর, কাস্টম অপারেটর, ইনহেরিটেন্স, STL কন্টেইনার, স্মার্ট পয়েন্টার এবং পাইথন থেকে ভার্চুয়াল মেথড এক্সটেনশন। এটি সমন্বিত NumPy সমর্থন, NumPy অ্যারের উপর স্বয়ংক্রিয় ফাংশন ভেক্টরাইজেশন, দক্ষ ডেটা স্থানান্তরের জন্য বাফার প্রোটোকল এক্সপোজার, স্লাইস-ভিত্তিক অ্যাক্সেস এবং C++ টাইপের জন্য পিকল সমর্থন প্রদান করে।
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.