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

PyO3 হলো একটি লাইব্রেরি যা রাস্ট এবং পাইথনের মধ্যে মসৃণ ইন্টারঅপারেবিলিটি নিশ্চিত করে। এটি ডেভেলপারদের রাস্ট ব্যবহার করে নেটিভ পাইথন এক্সটেনশন মডিউল লিখতে দেয়, যেখানে রাস্টের পারফরম্যান্স এবং মেমরি সফটেি বজায় রেখে পাইথনের সহজ ব্যবহারযোগ্যতা অক্ষুণ্ন থাকে। বিকল্পভাবে, এটি রাস্ট অ্যাপ্লিকেশনের মধ্যে পাইথন ইন্টারপ্রেটার ইনবড করার সমর্থন করে, যা রাস্ট বাইনারি থেকে সরাসরি পাইথন কোড পরিচালনা সম্ভব করে। লাইব্রেরিটি একাধিক পাইথন ইমপ্লিমেন্টেশন সমর্থন করে: CPython 3.9+, PyPy 7.3 (পাইথন 3.11+), এবং GraalPy 25.0+ (পাইথন 3.12+)। পাইথন প্যাকেজ তৈরির জন্য PyO3 maturin (আদর্শ) এবং setuptools-rust-এর মতো টুলস integratsion করে। ডেভেলপাররা Cargo ব্যবহার করে ম্যানুয়ালিও বিল্ড করতে পারেন। প্রধান বৈশিষ্ট্য: - #[pyfunction] এবং #[pymodule] এর মতো ম্যাক্রো দিয়ে পাইথন ফাংশন ও মডিউল সংজ্ঞায়িত করা। - PyO3-এর উচ্চস্তরের API ব্যবহার করে রাস্ট থেকে পাইথন অবজেক্ট, মডিউল এবং বিল্ট-ইন অ্যাক্সেস। - রাস্ট ও পাইথন টাইপের মধ্যে স্বয়ংক্রিয় রূপান্তর। - pyo3-async-runtimes এর মাধ্যমে async/await ইন্টারঅপারেবিলিটি। - NumPy (rust-numpy), Pandas (delta-rs, polars), এবং Arrow (arro3, pyo3-arrow)-এর মতো জনপ্রিয় পাইথন লাইব্রেরির সাথে ইন্টিগ্রেশন। PyO3 পলারস (dataframes), orjson (JSON serialization), tiktoken (OpenAI মডেলের tokenization), এবং River (অনলাইন মেশিন লার্নিং)-এর মতো বহু প্রকল্পে প্রোডাকশনে ব্যবহৃত হয়। এটি পারফরম্যান্স-গুরুত্বপূর্ণ কম্পোনেন্টের জন্য ব্যাপকভাবে গ্রহণ করা হয়। নথিপত্রের মধ্যে সুসঙ্গত ইউজার গাইড এবং API রেফারেন্স রয়েছে। প্রকল্পটি GitHub ইস্যু, নথিপত্র উন্নতি, ফিচার ডেভেলপমেন্ট এবং Discord-এ কমিউনিটি সাপোর্টের মাধ্যমে অবদানের জন্য উন্মুক্ত। PyO3 Apache-2.0 এবং MIT লাইসেন্সে ডুয়াল-লাইসেন্সড।