- Android प्लेटफ़ॉर्म में Rust अपनाने के बाद memory safety vulnerabilities का अनुपात कुल का 20% से नीचे आ गया, जिससे security और development efficiency दोनों में सुधार हुआ
- Rust कोड में C/C++ की तुलना में memory safety vulnerability density 1000 गुना कम है, rollback rate 4 गुना कम है, और code review time 25% कम हुआ
- Rust का उपयोग kernel, firmware, और 1st-party apps तक फैल रहा है, जिससे पूरे सिस्टम की baseline security बेहतर हो रही है
- CrabbyAVIF में मिले Rust-आधारित पहले memory safety vulnerability के ‘लगभग घटित’ मामले ने Scudo allocator और सुरक्षित unsafe code education की अहमियत को रेखांकित किया
- Rust की ओर बदलाव को security और development speed दोनों को साथ में बेहतर करने वाले नए software development paradigm के रूप में देखा जा रहा है
Rust अपनाने के प्रभाव और 2025 का डेटा
- 2025 में Android में memory safety vulnerabilities का अनुपात 20% से कम हो गया, जिससे यह साबित हुआ कि Rust-केंद्रित security strategy प्रभावी है
- Rust में C/C++ की तुलना में memory safety vulnerability density 1000 गुना कम, rollback rate 4 गुना कम, और code review time 25% कम है
- Rust अपनाना केवल security improvement तक सीमित नहीं रहा, बल्कि software delivery speed में सुधार तक पहुँचा
- इस डेटा में Android प्लेटफ़ॉर्म के C, C++, Java, Kotlin, Rust में 1st-party और 3rd-party code changes शामिल हैं
सिस्टम भाषा परिवर्तन और development productivity
- Android ने system programming language के रूप में Rust को C/C++ के विकल्प के तौर पर अपनाया, जो समान स्तर का control देता है लेकिन जोखिम कम करता है
- 1st-party code के आधार पर Rust code growth ने C++ को पीछे छोड़ दिया, जिससे दोनों भाषाओं के development metrics की तुलना संभव हुई
- DORA framework का उपयोग करके Throughput (delivery speed) और Stability (stability) को मापा गया
- तुलना करते समय Rust और C++ के code size, developer pool, और time trends को नियंत्रित किया गया
Throughput: code review efficiency में सुधार
- Rust code को C++ की तुलना में 20% कम revisions की ज़रूरत पड़ती है, और code review time 25% कम होता है
- 2023~2024 के बीच Rust expertise बढ़ने से review efficiency में बड़ा सुधार हुआ
- Review और rework में कमी से productivity बढ़ी, और stability improvement सबसे बड़ा प्रभावकारी कारक रहा
Stability: rollback rate में कमी और quality improvement
- DORA मानकों के अनुसार Rust का rollback rate C++ की तुलना में लगभग 4 गुना कम है, खासकर medium और large changes में यह अंतर अधिक स्पष्ट है
- कम rollback rate सीधे productivity बढ़ाता है, क्योंकि इससे build rework, postmortem, और team blocking जैसे अतिरिक्त खर्च कम होते हैं
- 2022 के Google engineer survey में भी Rust को review करना आसान और accuracy में बेहतर माना गया था
- यह डेटा उस धारणा को वास्तविक रूप से समर्थन देता है
security और productivity में एक साथ सुधार
- पहले security मजबूत करने से performance कम होती थी या development धीमा पड़ता था, लेकिन Rust की ओर बदलाव security और efficiency दोनों को साथ में बेहतर करता है
- Rust अपनाने से security, development efficiency, और product stability तीनों में सुधार लाने वाली संरचना बनी
Rust के विस्तार के क्षेत्र
- kernel: Android 6.12 Linux kernel में Rust support और पहला Rust driver शामिल किया गया
- Arm और Collabora के सहयोग से Rust-आधारित GPU driver पर काम चल रहा है
- firmware: Rust अपनाने से high-privilege और constrained environments की security मजबूत हुई, और संबंधित tutorials, education, और code सार्वजनिक किए गए
- Arm के साथ मिलकर Rusted Firmware-A project चलाया जा रहा है
- 1st-party apps:
- Nearby Presence: Bluetooth-आधारित device discovery protocol को Rust में implement किया गया, जो Google Play Services में चलता है
- MLS: RCS messaging के लिए security protocol को Rust में implement किया गया, जिसे आगे Google Messages app में शामिल किया जाएगा
- Chromium: PNG, JSON, और web font parsers को Rust से बदला गया, जिससे Rule of 2 का पालन करना आसान हुआ
Rust-आधारित पहला memory safety vulnerability ‘लगभग घटित’ मामला
- CrabbyAVIF में shipping से ठीक पहले buffer overflow vulnerability (CVE-2025-48530) मिली, जिसे public disclosure से पहले ठीक कर दिया गया
- Scudo hardened allocator ने guard page के कारण इस vulnerability को non-exploitable बना दिया
- Scudo पहले से Pixel आदि में default रूप से उपयोग में है, और partner companies के लिए भी इसे अनिवार्य बनाने की कोशिश हो रही है
- Crash reporting में सुधार से overflow detection signals अधिक स्पष्ट हुए
unsafe code management और education को मजबूत करना
- OS development में अनिवार्य रूप से unsafe code (C/C++ या unsafe Rust) की आवश्यकता पड़ती है
- Google ने Comprehensive Rust training course में unsafe code पर advanced module जोड़ा
- इसमें unsafe code की soundness, undefined behavior, safety comments, और safe abstraction techniques शामिल हैं
- unsafe Rust की बेहतर समझ से Android और पूरे open source ecosystem में code quality बेहतर होगी
vulnerability density की तुलना
- Android Rust code की लगभग 50 लाख lines में 1 संभावित vulnerability मिली → Rust vulnerability density 0.2/MLOC
- C/C++ का ऐतिहासिक औसत 1,000/MLOC रहा है, यानी 1000 गुना से अधिक कमी
- memory safety vulnerability density में कमी से पूरे security architecture की प्रभावशीलता बढ़ती है
- Rust code का लगभग 4%
unsafe{} blocks में है, लेकिन डेटा के अनुसार इसमें C/C++ की तुलना में bug की संभावना कम है
- इसके कारणों में safety checks का बने रहना, encapsulation, और अतिरिक्त review शामिल हैं
निष्कर्ष
- पहले security सुनिश्चित करने के लिए static analysis, sandboxing, patching जैसी महंगी प्रक्रियाएँ ज़रूरी थीं
- Rust की ओर बदलाव security और efficiency दोनों को एक साथ हासिल करने का नया तरीका है
- अब यह “तेज़ी से develop करो और बाद में ठीक करो” वाला मॉडल नहीं, बल्कि “तेज़ी से develop करो और साथ-साथ ठीक भी करो” वाला चरण है
- security जितनी मजबूत होगी, performance और productivity की वापसी की संभावना भी उतनी बढ़ेगी
आभार
- CVE-2025-48530 analysis, Scudo improvements, unsafe Rust education development, और Rust उपयोग संबंधी जानकारी देने वाले कई contributors का उल्लेख किया गया
- Android Rust team और पूरे Android संगठन के लगातार quality improvement efforts के लिए आभार व्यक्त किया गया
3 टिप्पणियां
Rust ज़िंदाबाद!
Embassy के साथ firmware development को थोड़ा-सा छेड़कर देखा
भाषा की stability तो अच्छी है ही.... लेकिन tooling इतनी अच्छी है कि c/c++ इस्तेमाल करते समय की तुलना में productivity जबरदस्त रूप से ज्यादा है.
Hacker News टिप्पणियाँ
Rust code की 50 लाख लाइनों में सिर्फ एक memory safety vulnerability मिली
यानी Rust में प्रति 10 लाख लाइनों पर 0.2 vulnerability का अनुपात दिखा
वहीं C/C++ में यह लगभग प्रति 10 लाख लाइनों पर 1,000 के स्तर पर है, इसलिए अंतर बेहद बड़ा है
लेकिन ऐसे स्पष्ट डेटा के सामने भी लोग इसे क्यों नज़रअंदाज़ करते हैं, यह समझना मुश्किल है
मैंने खुद अभी तक Rust इस्तेमाल नहीं किया है, लेकिन कभी न कभी इसे ज़रूर सीखना चाहता हूँ
security महत्वपूर्ण है, लेकिन rollback के बिना deployment ही वह चीज़ है जो developer सच में चाहते हैं
Rust में लिखने पर वैसी स्थिरता मिलती है
computer science में इस तरह की innovation वास्तव में बहुत कम देखने को मिलती है
2025 में C++ इस्तेमाल करने की वजह मौजूदा codebase को maintain करने के अलावा लगभग नहीं बचेगी
जो भी नया बनाया जाए, वह सब Rust में जाना चाहिए
नए project आमतौर पर आधुनिक testing system और स्पष्ट goals के साथ शुरू होते हैं
फिर भी यह नकारा नहीं जा सकता कि Rust, C++ की तुलना में मानसिक रूप से ज्यादा स्वस्थ language है
Rust सीखना सच में काफ़ी दर्दनाक था, और दूसरी languages से कहीं ज्यादा जटिल लगा
लेकिन compiler से कुछ बार जूझने के बाद यह भरोसा बनने लगता है कि code चलने पर उसमें लगभग कोई समस्या नहीं होगी
Ruby, JS/TS और Python से Rust पर आने पर ऐसा लगता है कि “अगर compile हो गया, तो 80~90% काम पूरा है”
और ऊपर से यह तेज़ भी है
compiler से लड़ने की प्रक्रिया दरअसल छिपे हुए bugs को पहले ही ठीक करने की प्रक्रिया है
Rust की सोच आपके दिमाग़ पर हावी होने लगती है
यह बस एक मज़ाक है कि यह ऐसी language है जिसे भूलना भी आसान है और फिर से सीखना भी
Ruby, JS और Python वाली बात से सहमत हूँ, लेकिन TS थोड़ा अलग लगता है
Google अब भी Android userspace में Rust को आधिकारिक support नहीं देता
NDK और Android Studio अभी भी सिर्फ C/C++ को support करते हैं
Rust इस्तेमाल करने के लिए community को खुद tools बनाने पड़ते हैं
JVM-side code के बिना app बनाना मुश्किल है
Android का ABI language से स्वतंत्र है, बस उसके नियमों का पालन करना होता है
यह तो C++ को डुबो देने वाला बम जैसा मामला है
अब “Rust भी unsafe है” या “C++ को सही तरह लिखो तो सुरक्षित है” जैसी दलीलें देना कठिन हो जाएगा
safe code लिखना झंझट भरा हो सकता है, लेकिन एक बार pass हो जाए तो multi-threaded environment में भी आत्मविश्वास मिलता है
Android app भी Rust में बनाना चाहता हूँ
बस यह अच्छा लग रहा है कि safe system tools बनाने के विकल्प बढ़े हैं
industry standard अब भी C/C++ केंद्रित हैं, इसलिए Rust के लिए पूरी तरह replace कर देना आसान नहीं होगा
rollback rate में 4 गुना अंतर होना चौंकाने वाला है
ज़्यादातर आँकड़े पहले से अनुमानित हक़ीक़त जैसे लगते थे, लेकिन यह नया है
इसका मतलब यह कम है कि Rust बिल्कुल परफेक्ट है, और ज़्यादा यह कि पुराने code में bugs इतने अधिक हैं
इतने बड़े codebase से ऐसा डेटा आना प्रभावशाली है
अगर शुरुआत से module-level acceptance test system बनाया जाए, तो Rust जो verification करती है उसे testing से कुछ हद तक replace किया जा सकता है
memory leak ही नहीं, performance degradation तक पर नज़र रखी जा सकती है
तो यह सिर्फ पुराने code के risk का अंतर भी हो सकता है
एक दोस्त को Rust rewrite project दिया गया,
तो उसने मज़ाक में कहा, “इससे 3 साल की salary पक्की हो गई”
यह rewrite → memory safety सुनिश्चित करना → stable salary loop जैसा आधा मज़ाक, आधा strategy है
जब तक Rust compiler धीरे-धीरे compile करता रहेगा, तब तक वह पुराना code पढ़ते हुए आराम से काम कर सकता है
इस डेटा में confounding variables को control नहीं किया गया है
आमतौर पर rewrite के लिए वही code चुना जाता है जिसे पहले से अच्छी तरह समझा जा चुका हो, इसलिए review तेज़ और rollback कम होते हैं
जबकि जटिल legacy code में review लंबा चलता है और rollback ज़्यादा होते हैं
अगर केवल आसान code ही rewrite किया गया होता, तो memory safety vulnerability ratio अलग आता
वास्तव में ज़्यादा समस्याग्रस्त code को Rust में फिर से लिखने की प्रवृत्ति होती है
यह परफेक्ट experiment नहीं है, लेकिन इसे वास्तविक प्रभाव मानना ज़्यादा उचित है
हटाई गई lines के आधार पर rewrite के पैमाने का विश्लेषण किया जाए तो और भी दिलचस्प होगा
उतना ही वह rewrite के लिए आसान माहौल बन सकता है
मैं Rust के फायदों पर भरोसा करता हूँ, लेकिन इसे वैज्ञानिक प्रमाण से ज़्यादा मजबूत अनुभवजन्य साक्ष्य मानता हूँ
आगे Rust अपनाने का non-memory safety bugs पर क्या असर होगा, यह जानने की जिज्ञासा है
मैं game development में Rust इस्तेमाल करता हूँ (Bevy नहीं)
stability और throughput की वजह से अब किसी दूसरी language में लौटने का मन नहीं है
जानना चाहूँगा कि आप किस crate combination और architecture का इस्तेमाल करते हैं
मैं भी hobby के तौर पर game बनाता हूँ, और Bevy मुझे थोड़ा ज़्यादा भारी लगा
अब लगता है कि Rust ने core system code में भी अच्छी जगह बना ली है
यह अब कोई uphill battle नहीं रहा
“Rust में फिर से लिखो” अब सिर्फ meme नहीं है, उसके पीछे असली आधार जमा हो रहा है
comments के 80% अब भी Rust haters से भरे होते हैं
“C++ भी सही लिखो तो सुरक्षित है”, “Rust में भी bugs होते हैं” जैसी वही पुरानी दलीलें दोहराई जाती हैं
यह अज्ञानपूर्ण आलोचना है, लेकिन अब यह मज़ेदार से ज़्यादा दुखद लगती है
लेकिन इसे हर जगह लागू करने की बात ज़्यादा होगी
Rust का ownership model development speed को धीमा कर सकता है, और language खुद भी अभी evolve हो रही है
अगर service में network latency बहुत अधिक है, तो Python या Node ज्यादा efficient हो सकते हैं
यानी Rust शानदार है, लेकिन हर समस्या का जवाब नहीं है