csv क्या है?
csv CSV (Comma-Separated Values) प्रारूप में फ़ाइलों को पढ़ने और लिखने के लिए Rust भाषा की एक मानक लाइब्रेरी है। यह सारणीबद्ध डेटा के साथ काम करने के लिए एक उच्च-प्रदर्शन और लचीला इंटरफ़ेस प्रदान करती है, जो सरल और जटिल दोनों परिदृश्यों (जैसे, एस्केपिंग, विभिन्न विभाजक, हेडर) का समर्थन करती है।
इसकी आवश्यकता क्यों है?
CSV एप्लिकेशन, डेटाबेस और स्प्रेडशीट के बीच डेटा आदान-प्रदान के लिए सबसे सामान्य प्रारूपों में से एक है। csv लाइब्रेरी निम्नलिखित की अनुमति देती है:
- डेटा सेट (लॉग, Excel/Google Sheets से एक्सपोर्ट, DB डंप) को तेज़ी से लोड और प्रोसेस करना।
- मानव-पठनीय रूप में रिपोर्ट और एक्सपोर्ट तैयार करना।
- Rust एप्लिकेशन को CSV के माध्यम से काम करने वाले सिस्टम (जैसे, वित्तीय सिस्टम, ML पाइपलाइन) के साथ एकीकृत करना।
कैसे स्थापित करें?
अपने प्रोजेक्ट के Cargo.toml में निर्भरता जोड़ें:
[dependencies]csv = "1.3"cargo build के माध्यम से बिल्ड करने पर स्थापना स्वचालित रूप से हो जाती है।
मुख्य कार्य
- पढ़ना — स्वचालित टाइप पार्सिंग के साथ पंक्तियों पर इटरेशन।
- लिखना — सीरियलाइज़ेशन के साथ डेटा संरचनाओं से CSV बनाना।
- कॉन्फ़िगरेशन — कस्टम विभाजक (टैब, सेमीकोलन), एस्केपिंग, कंप्रेशन।
- हेडर के साथ काम करना — नाम से कॉलम तक पहुंच।
- सीरियलाइज़ेशन/डीसीरियलाइज़ेशन — संरचनाओं के स्वचालित रूपांतरण के लिए
serdeके साथ एकीकरण।
Rust में कोड उदाहरण
use csv::ReaderBuilder;use serde::Deserialize;use std::error::Error;
#[derive(Debug, Deserialize)]struct Record { name: String, age: u8, city: String,}
fn main() -> Result<(), Box<dyn Error>> { let data = "name,age,cityAlice,30,New YorkBob,25,London"; let mut reader = ReaderBuilder::new() .has_headers(true) .from_reader(data.as_bytes());
for result in reader.deserialize::<Record>() { let record: Record = result?; println!("{:?}", record); } Ok(())}कब उपयोग करें?
csv लाइब्रेरी निम्नलिखित के लिए आदर्श है:
- लॉग, CRM/ERP से एक्सपोर्ट प्रोसेस करना।
- ETL पाइपलाइन (एक्सट्रैक्ट, ट्रांसफॉर्म, लोड) बनाना।
- मशीन लर्निंग के लिए डेटा तैयार करना।
- सरल CLI उपयोगिताओं में कॉन्फ़िगरेशन आयात/निर्यात करना।
यदि आपको उच्च प्रदर्शन और टाइप सुरक्षा की आवश्यकता है — csv Rust के लिए सबसे अच्छा विकल्प है।