দুটি ধরণের মরিচা লাইব্রেরি মডিউল রয়েছে, একটি যা মরিচা লাইব্রেরি তৈরি করে এবং অন্যটি সি-সামঞ্জস্যপূর্ণ লাইব্রেরি তৈরি করে। উপরন্তু, বিল্ড সিস্টেমের উদ্দেশ্যে আপনি মরিচা পদ্ধতিগত ম্যাক্রো ( proc-macros ) কে একটি বিশেষ ধরনের লাইব্রেরি হিসাবে বিবেচনা করতে পারেন।
মরিচা_লাইব্রেরি
rust_library মডিউল অন্যান্য Rust মডিউল দ্বারা ব্যবহারের জন্য মরিচা লাইব্রেরি তৈরি করে।
_host ভেরিয়েন্ট ছাড়াও, রাস্ট লাইব্রেরিতে মডিউলের ধরন রয়েছে যা উপলব্ধ লিঙ্কেজ নিয়ন্ত্রণ করে।
| মরিচা লাইব্রেরি মডিউল টাইপ | সংজ্ঞা |
|---|---|
| মরিচা_লাইব্রেরি | লাইব্রেরি ভেরিয়েন্ট, rlib এবং dylib উভয়ই প্রদান করে। AOSP মরিচা লাইব্রেরির জন্য এই মডিউল প্রকারের সুপারিশ করে, কারণ এটি মডিউলগুলিকে সঠিকভাবে কাজ করার অনুমতি দেয় যখন rustlibs সম্পত্তির অধীনে নির্ভরতা হিসাবে তালিকাভুক্ত করা হয় |
| মরিচা_লাইব্রেরি_আরলিব | একটি মরিচা লাইব্রেরির শুধুমাত্র rlib বৈকল্পিক প্রদান করে; শুধুমাত্র rlib ভেরিয়েন্ট প্রদানকারী মডিউলগুলি rustlibs সম্পত্তির সাথে কাজ করার নিশ্চয়তা দেওয়া যায় না। |
| মরিচা_লাইব্রেরি_ডিলিব | একটি মরিচা লাইব্রেরির শুধুমাত্র dylib বৈকল্পিক প্রদান করে; শুধুমাত্র dylib ভেরিয়েন্ট প্রদানকারী মডিউলগুলি rustlibs সম্পত্তির সাথে কাজ করার নিশ্চয়তা দিতে পারে না। |
rust_ffi
rust_ffi মডিউল CC মডিউলের সাথে ইন্টারপ করার জন্য C- সামঞ্জস্যপূর্ণ লাইব্রেরি তৈরি করে।
_host ভেরিয়েন্টগুলি ছাড়াও, রাস্ট এফএফআই লাইব্রেরিতে মডিউলের ধরন রয়েছে যা উপলব্ধ লিঙ্কেজকে নিয়ন্ত্রণ করে, নিম্নলিখিত টেবিলে দেখানো হয়েছে।
| মরিচা এফএফআই লাইব্রেরি মডিউল টাইপ | সংজ্ঞা |
|---|---|
| rust_ffi | উভয় সি লাইব্রেরি ভেরিয়েন্ট প্রদান করে: স্ট্যাটিক এবং শেয়ার করা। |
| rust_ffi_shared | শুধুমাত্র C ভাগ করা লাইব্রেরি বৈকল্পিক প্রদান করে। |
| মরিচা_ফি_স্ট্যাটিক | শুধুমাত্র C স্ট্যাটিক লাইব্রেরি বৈকল্পিক প্রদান করে। |
C থেকে মরিচা কল করার জন্য rust_ffi ব্যবহার করার একটি মৌলিক উদাহরণের জন্য, Android Rust Patterns পৃষ্ঠাটি দেখুন।
আরও উন্নত ব্যবহারের তথ্যের জন্য, অফিসিয়াল রাস্ট ডকুমেন্টেশন দেখুন।
মরিচা_প্রোক_ম্যাক্রো
মরিচা পদ্ধতিগত ম্যাক্রো (প্রোক-ম্যাক্রো) সোর্স কোড রূপান্তর সম্পাদন করতে বা নতুন বৈশিষ্ট্য প্রদানের জন্য কম্পাইলারকে প্রসারিত করার জন্য কার্যকর হতে পারে। অফিসিয়াল রাস্ট ডকুমেন্টেশনের পদ্ধতিগত ম্যাক্রো পৃষ্ঠায় এগুলি সম্পর্কে আরও তথ্য পাওয়া যাবে।
বিল্ড সিস্টেমের উদ্দেশ্যে, rust_proc_macro মডিউলটি rust_library মডিউলের মতোই কাজ করে। rust_proc_macros উপর নির্ভরশীল মডিউলগুলির জন্য, proc_macros বৈশিষ্ট্যে মডিউলের নাম যোগ করুন।
যেহেতু proc_macros হল কম্পাইলার প্লাগইন, তারা অগত্যা হোস্টকে টার্গেট করে এবং কোনো ডিভাইসে চালানোর মতো কোনো কোড তৈরি করে না।
উল্লেখযোগ্য মরিচা লাইব্রেরি বৈশিষ্ট্য
নীচের সারণীতে সংজ্ঞায়িত বৈশিষ্ট্যগুলি গুরুত্বপূর্ণ সাধারণ বৈশিষ্ট্যগুলি ছাড়াও যা সমস্ত মডিউলে প্রযোজ্য। এগুলি হয় বিশেষ করে মরিচা লাইব্রেরি মডিউলগুলির জন্য গুরুত্বপূর্ণ, অথবা rust_library মডিউল প্রকারের জন্য নির্দিষ্ট অনন্য আচরণ প্রদর্শন করে।
| মরিচা লাইব্রেরি বৈশিষ্ট্য | সংজ্ঞা |
|---|---|
| স্টেম/নাম | stem প্রপার্টি আউটপুট লাইব্রেরি ফাইলের নাম নিয়ন্ত্রণ করে, যা অন্যথায় name হিসাবে ডিফল্ট হয়। রাস্ট কম্পাইলার লাইব্রেরি ফাইলের নামগুলিতে কিছু প্রয়োজনীয়তা আরোপ করে এবং ফলস্বরূপ বিল্ড সিস্টেম সংকলন সমস্যাগুলি এড়াতে এই প্রয়োজনীয়তাগুলি প্রয়োগ করে। আউটপুট ফাইলের নাম |
| crate_name | এটি লাইব্রেরি-উৎপাদন মডিউলগুলির জন্য একটি প্রয়োজনীয় সম্পত্তি; আউটপুট ফাইলনামের সাথে এটির একটি সম্পর্ক রয়েছে। ( stem সংজ্ঞা দেখুন।) |
| এক্সপোর্ট_ইনক্লুড_ডিরস | rust_ffi মডিউলগুলির জন্য, এই বৈশিষ্ট্যটি আপেক্ষিক অন্তর্ভুক্ত পাথগুলিকে প্রতিনিধিত্ব করে এমন স্ট্রিংগুলির একটি তালিকা সংজ্ঞায়িত করে: পাথ যেখানে হেডার থাকে যা নির্ভরশীল cc মডিউল ব্যবহার করতে পারে। |
মরিচা_লাইব্রেরি বা মরিচা_ফির সংযোগ
ডিফল্টরূপে, রাস্ট লাইব্রেরি মডিউল টার্গেটিং ডিভাইসগুলি সর্বদা libstd এর সাথে গতিশীলভাবে লিঙ্ক করা হয়। হোস্ট মডিউল, যাইহোক, সবসময় libstd সাথে স্ট্যাটিকভাবে লিঙ্ক করা হয়।
rustlibs নির্ভরতার জন্য ব্যবহৃত লিঙ্কেজটি রুট মডিউলের লিঙ্কেজ পছন্দের উপর নির্ভর করে। (উদাহরণস্বরূপ, prefer_rlib সহ একটি rust_binary prefer_rlib: true ব্যবহার করবে রাস্ট লাইব্রেরি ভেরিয়েন্ট যা rustlibs rlibs হিসাবে লিঙ্ক করে।)
কোনো গতিশীল মরিচা লাইব্রেরির (যেমন স্ট্যাটিক এক্সিকিউটেবল) উপর নির্ভর করে না এমন রুট ডিপেন্ডেন্সি মডিউল উৎপাদনের অনুমতি দিতে, rlibs উভয় গতিশীল এবং স্ট্যাটিক libstd লিঙ্কেজ ভেরিয়েন্ট প্রদান করে। সঠিক বৈকল্পিক স্বয়ংক্রিয়ভাবে Soong দ্বারা লিঙ্ক করা হয়েছে.