Android Rust के बारे में जानकारी

Android प्लैटफ़ॉर्म, Rust में नेटिव ओएस कॉम्पोनेंट डेवलप करने की सुविधा देता है. Rust, सिस्टम प्रोग्रामिंग की एक आधुनिक भाषा है. यह मेमोरी की सुरक्षा की गारंटी देती है. साथ ही, इसकी परफ़ॉर्मेंस C/C++ के बराबर होती है. Rust, कंपाइल-टाइम की जांचों का इस्तेमाल करता है. ये जांचें, ऑब्जेक्ट के लाइफ़टाइम और मालिकाना हक को लागू करती हैं. साथ ही, रनटाइम की जांचें यह पक्का करती हैं कि मेमोरी को सही तरीके से ऐक्सेस किया गया हो. इससे, गार्बेज कलेक्टर की ज़रूरत नहीं पड़ती.

Rust, नई प्रोग्रामिंग लैंग्वेज की कई सुविधाएं उपलब्ध कराता है. इनकी मदद से डेवलपर, ज़्यादा काम कर पाते हैं और उन्हें अपने कोड पर भरोसा होता है:

  • एक साथ कई प्रोग्राम को सुरक्षित तरीके से चलाने की सुविधा - इस सुविधा की मदद से, उपयोगकर्ता आसानी से थ्रेड-सेफ़ कोड लिख सकते हैं. इस वजह से, Rust का स्लोगन Fearless Concurrency बना है.
  • एक्सप्रेसिव टाइप सिस्टम - Rust, लॉजिकल प्रोग्रामिंग से जुड़ी गड़बड़ियों को रोकने में मदद करता है. इसके लिए, यह एक्सप्रेसिव टाइप (जैसे कि Newtype रैपर और कॉन्टेंट वाले enum वैरिएंट) का इस्तेमाल करता है.
  • कंपाइल-टाइम पर ज़्यादा जांच - कंपाइल-टाइम पर ज़्यादा बग पकड़े जाने से, डेवलपर का भरोसा बढ़ता है कि कोड के सही तरीके से कंपाइल होने पर, वह उम्मीद के मुताबिक काम करेगा.
  • टेस्टिंग फ़्रेमवर्क - Rust में एक टेस्टिंग फ़्रेमवर्क होता है. इसमें यूनिट टेस्ट को उस कोड के साथ रखा जा सकता है जिसकी जांच की जानी है. इससे यूनिट टेस्टिंग को शामिल करना आसान हो जाता है.
  • गड़बड़ी ठीक करने के तरीके (एनफ़ोर्समेंट) - जिन फ़ंक्शन में गड़बड़ियां ठीक की जा सकती हैं वे नतीजे का टाइप दिखा सकते हैं. इसमें गड़बड़ी ठीक होने या गड़बड़ी होने की जानकारी शामिल होती है. कंपाइलर को यह ज़रूरी है कि कॉल करने वाले लोग, फ़ंक्शन कॉल से मिले Result enum के गड़बड़ी वाले वैरिएंट की जांच करें और उसे ठीक करें. इससे, हैंडल न किए गए फ़ेलियर की वजह से होने वाली गड़बड़ियों की संभावना कम हो जाती है.
  • शुरुआत - Rust में, हर वैरिएबल को इस्तेमाल करने से पहले, उसके टाइप के कानूनी सदस्य के तौर पर शुरू करना ज़रूरी होता है. इससे, किसी असुरक्षित वैल्यू के लिए अनजाने में वैरिएबल शुरू होने से रोका जा सकता है.
  • पूर्णांकों को ज़्यादा सुरक्षित तरीके से हैंडल करना - पूर्णांक टाइप के सभी कन्वर्ज़न, साफ़ तौर पर कास्ट किए जाते हैं. डेवलपर, किसी फ़ंक्शन कॉल के दौरान किसी वैरिएबल को असाइन करते समय या अन्य टाइप के साथ अंकगणित करने की कोशिश करते समय, गलती से कास्ट नहीं कर सकते. Android में Rust के लिए, ओवरफ़्लो की जांच करने की सुविधा डिफ़ॉल्ट रूप से चालू होती है. इसके लिए, ओवरफ़्लो ऑपरेशन को साफ़ तौर पर बताना ज़रूरी होता है.

ज़्यादा जानकारी के लिए, Android में Rust के इस्तेमाल से जुड़ी ब्लॉग पोस्ट की यह सीरीज़ देखें: