रस्ट मानक पुस्तकालय: पूर्ण अवलोकन
\n\nरस्ट मानक पुस्तकालय (std) वह आधार है जिस पर इस भाषा में कोई भी एप्लिकेशन बनाया जाता है। यह संग्रह के साथ काम करने से लेकर निम्न-स्तरीय मेमोरी प्रबंधन तक, सामान्य कार्यों को हल करने के लिए विश्वसनीय, कुशल और सुरक्षित उपकरणों का एक सेट प्रदान करता है। कई अन्य भाषाओं के विपरीत, रस्ट मानक पुस्तकालय को इस तरह से डिज़ाइन किया गया है कि बुनियादी संचालन के लिए बाहरी क्रेट्स (crates) पर निर्भरता कम से कम हो, साथ ही C/C++ के करीब प्रदर्शन बना रहे।
\n\nमानक पुस्तकालय के मुख्य मॉड्यूल
\n\nमानक पुस्तकालय तार्किक मॉड्यूल में व्यवस्थित है। आइए उनमें से प्रमुख पर नज़र डालें:
\n\n- \n
std::collections— डेटा संरचनाएं:Vec,HashMap,HashSet,BTreeMap,LinkedListऔर अन्य। \n std::io— इनपुट-आउटपुट के साथ काम: फ़ाइलें पढ़ना/लिखना, स्ट्रीम के साथ काम, बफरिंग। \n std::fs— फ़ाइल सिस्टम: फ़ाइलों और निर्देशिकाओं का निर्माण, विलोपन, प्रतिलिपि। \n std::thread— मल्टीथ्रेडिंग: थ्रेड बनाना,Mutex,Arcके माध्यम से सिंक्रनाइज़ेशन। \n std::sync— सिंक्रनाइज़ेशन प्रिमिटिव: चैनल (mpsc), बैरियर, सेमाफोर। \n std::net— नेटवर्क प्रोग्रामिंग: TCP/UDP सॉकेट, पते। \n std::time— समय के साथ काम: माप, टाइमर, अवधि। \n std::mem— मेमोरी प्रबंधन: प्रकारों के आकार, संरेखण,swap,replace। \n
संग्रह: Vec से HashMap तक
\n\nरस्ट में संग्रह केवल कंटेनर नहीं हैं। वे एक समृद्ध API लागू करते हैं और संकलन चरण में मेमोरी सुरक्षा की गारंटी देते हैं। सबसे लोकप्रिय संग्रह Vec<T> है — एक डायनामिक ऐरे।
fn main() {\n let mut numbers: Vec<i32> = vec![1, 2, 3, 4];\n numbers.push(5);\n \n // परिवर्तन के साथ पुनरावृत्ति\n for num in &mut numbers {\n *num *= 2;\n }\n \n // फ़िल्टरिंग\n let evens: Vec<&i32> = numbers.iter()\n .filter(|&&x| x % 2 == 0)\n .collect();\n \n println!("{:?}", evens); // [2, 4, 6, 8, 10]\n}\n\n\nHashMap — हैशिंग के साथ साहचर्य सरणी। यह ध्यान रखना महत्वपूर्ण है कि डिफ़ॉल्ट रूप से एक क्रिप्टोग्राफिक रूप से सुरक्षित हैश एल्गोरिदम (SipHash) का उपयोग किया जाता है, जो HashDoS हमलों को रोकता है।
use std::collections::HashMap;\n\nfn main() {\n let mut scores = HashMap::new();\n scores.insert(String::from("Alice"), 100);\n scores.insert(String::from("Bob"), 85);\n \n // मान की सुरक्षित प्राप्ति\n match scores.get(&String::from("Alice")) {\n Some(score) => println!("Score: {}", score),\n None => println!("Not found"),\n }\n \n // इटरेटर के साथ ट्रैवर्सल\n for (name, score) in &scores {\n println!("{}: {}", name, score);\n }\n}\n\n\nइनपुट-आउटपुट और फ़ाइलों के साथ काम
\n\nमॉड्यूल std::io डेटा स्ट्रीम के साथ काम करने के लिए उच्च-स्तरीय और निम्न-स्तरीय दोनों साधन प्रदान करता है। विशेष ध्यान Read और Write ट्रेट्स पर दिया जाना चाहिए।
use std::fs::File;\nuse std::io::{self, Read, Write};\n\nfn read_file(path: &str) -> io::Result<String> {\n let mut file = File::open(path)?;\n let mut contents = String::new();\n file.read_to_string(&mut contents)?;\n Ok(contents)\n}\n\nfn write_file(path: &str, data: &str) -> io::Result<()> {\n let mut file = File::create(path)?;\n file.write_all(data.as_bytes())?;\n Ok(())\n}\n\nfn main() -> io::Result<()> {\n write_file("example.txt", "Hello, Rust पुस्तकालय में भी
TypeScript में HTML पार्सिंग: लाइब्रेरीज़, टूल्स और उदाहरण
C# (.NET) के लिए HTTP क्लाइंट: वेब अनुरोधों के लिए शीर्ष लाइब्रेरी
Java में Rate Limiting: Bucket4j, Resilience4j और Guava के साथ अनुरोध नियंत्रण