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