অ্যান্ড্রয়েড প্ল্যাটফর্ম রাস্ট (Rust) ব্যবহার করে নেটিভ ওএস কম্পোনেন্ট তৈরির সুবিধা দেয়। রাস্ট একটি আধুনিক সিস্টেম-প্রোগ্রামিং ভাষা যা C/C++ এর সমতুল্য পারফরম্যান্সের সাথে মেমরি সুরক্ষার নিশ্চয়তা প্রদান করে। রাস্ট কম্পাইল-টাইম চেকের মাধ্যমে অবজেক্টের জীবনকাল ও মালিকানা নিশ্চিত করে এবং রানটাইম চেকের মাধ্যমে বৈধ মেমরি অ্যাক্সেস নিশ্চিত করে, যার ফলে গার্বেজ কালেক্টরের প্রয়োজনীয়তা দূর হয়।
রাস্ট বিভিন্ন আধুনিক ভাষার বৈশিষ্ট্য প্রদান করে, যা ডেভেলপারদের তাদের কোডে আরও বেশি কর্মক্ষম ও আত্মবিশ্বাসী হতে সাহায্য করে:
- নিরাপদ কনকারেন্ট প্রোগ্রামিং - এর মাধ্যমে ব্যবহারকারীরা যে সহজে দক্ষ ও থ্রেড-সেফ কোড লিখতে পারেন, তা-ই রাস্ট-এর 'ফিয়ারলেস কনকারেন্সি' স্লোগানটির জন্ম দিয়েছে।
- এক্সপ্রেসিভ টাইপ সিস্টেম - রাস্ট অত্যন্ত এক্সপ্রেসিভ টাইপ (যেমন নিউটাইপ র্যাপার এবং কন্টেন্টসহ এনাম ভ্যারিয়েন্ট) ব্যবহারের সুযোগ দিয়ে লজিক্যাল প্রোগ্রামিং বাগ প্রতিরোধ করতে সাহায্য করে।
- শক্তিশালী কম্পাইল-টাইম চেক – কম্পাইল-টাইমে যত বেশি বাগ ধরা পড়ে, ডেভেলপারদের এই আস্থা বাড়ে যে কোড সফলভাবে কম্পাইল হলে তা উদ্দেশ্য অনুযায়ীই কাজ করবে।
- অন্তর্নির্মিত টেস্টিং ফ্রেমওয়ার্ক - রাস্ট একটি অন্তর্নির্মিত টেস্টিং ফ্রেমওয়ার্ক প্রদান করে যেখানে ইউনিট টেস্টগুলোকে যে ইমপ্লিমেন্টেশন পরীক্ষা করা হয় তার পাশেই রাখা যায়, ফলে ইউনিট টেস্টিং অন্তর্ভুক্ত করা আরও সহজ হয়।
- ত্রুটি পরিচালনা বাধ্যতামূলককরণ - যে ফাংশনগুলোর ব্যর্থতা থেকে পুনরুদ্ধার সম্ভব, সেগুলো একটি Result টাইপ রিটার্ন করতে পারে, যা হয় একটি সফল সংস্করণ অথবা একটি ত্রুটিপূর্ণ সংস্করণ হবে। কম্পাইলার চায় যে কলাররা ফাংশন কল থেকে রিটার্ন করা
Resultenum-এর ত্রুটিপূর্ণ সংস্করণটি পরীক্ষা করে এবং তা পরিচালনা করে। এর ফলে, পরিচালনা না করা ব্যর্থতার কারণে বাগ হওয়ার সম্ভাবনা কমে যায়। - প্রারম্ভিকীকরণ - রাস্ট-এ প্রতিটি ভেরিয়েবল ব্যবহারের আগে অবশ্যই তার টাইপের একটি বৈধ মেম্বার দিয়ে ইনিশিয়ালাইজ করতে হয়, যা কোনো অনিরাপদ মানে অনিচ্ছাকৃতভাবে ইনিশিয়ালাইজেশন প্রতিরোধ করে।
- আরও নিরাপদ ইন্টিজার হ্যান্ডলিং - সমস্ত ইন্টিজার-টাইপ রূপান্তর সুস্পষ্ট কাস্ট (explicit cast) পদ্ধতিতে করা হয়। ডেভেলপাররা ফাংশন কলের সময় কোনো ভেরিয়েবলে অ্যাসাইন করার সময়, বা অন্য ধরনের ডেটার সাথে গাণিতিক কাজ করার চেষ্টা করার সময় ভুলবশত কাস্ট করতে পারেন না। অ্যান্ড্রয়েড ফর রাস্ট-এ ওভারফ্লো চেকিং ডিফল্টরূপে চালু থাকে, যার ফলে ওভারফ্লো অপারেশনগুলো সুস্পষ্ট হতে হয়।
আরও তথ্যের জন্য, অ্যান্ড্রয়েডে রাস্ট সাপোর্ট সম্পর্কিত ব্লগ পোস্ট সিরিজটি দেখুন:
- অ্যান্ড্রয়েড প্ল্যাটফর্মে রাস্ট
অ্যান্ড্রয়েড টিম কেন রাস্টকে নতুন প্ল্যাটফর্ম ভাষা হিসেবে চালু করেছে, তার একটি সংক্ষিপ্ত বিবরণ দেওয়া হয়েছে। - অ্যান্ড্রয়েড ওপেন সোর্স প্রকল্পে রাস্টকে একীভূত করা
বিল্ড সিস্টেমে কীভাবে রাস্ট (Rust) সাপোর্ট যুক্ত করা হয়েছে এবং কেন নির্দিষ্ট কিছু ডিজাইনগত সিদ্ধান্ত নেওয়া হয়েছিল, তা আলোচনা করা হয়েছে। - অ্যান্ড্রয়েড প্ল্যাটফর্মে রাস্ট/সি++ এর আন্তঃক্রিয়া
অ্যান্ড্রয়েডের মধ্যে রাস্ট/সি++ আন্তঃকার্যক্ষমতার পদ্ধতি নিয়ে আলোচনা করা হয়েছে।