YAML कॉन्फ़िगरेशन (.yaml)

YAML मानक

YAML ऐनट मार्कअप लैंग्वेज (YAML) आधुनिक DevOps, क्लाउड बुनियादी ढांचे (Kubernetes, Docker Compose), और CI/CD स्वचालन के लिए प्रमुख डेटा सिरीलाइजेशन प्रारूप है, जो स्वच्छ व्हाइटस्पेस इंडेंटेशन के माध्यम से मानवीय पठनीयता पर जोर देता है।

YAML को JSON में कन्वर्ट करें

मुफ्त इन-ब्राउज़र YAML से JSON कन्वर्टर। अपने डिवाइस पर तुरंत फ़ाइलें कन्वर्ट करें।

इंस्पेक्ट और मेटाडेटा

ऑपरेटिंग सिस्टम और फ़ाइल विश्लेषक शुरुआती बाइनरी बाइट अनुक्रम का निरीक्षण करके YAML फ़ाइलों की पहचान करते हैं:

फ़ाइलें यहाँ चुनें या छोड़ें

100% प्राइवेट इन-ब्राउज़र कन्वर्शन - फ़ाइलें कभी आपका डिवाइस नहीं छोड़तीं

या पेस्ट करें Ctrl+V
शून्य-नेटवर्क-ट्रांसमिशन गोपनीयता गारंटी: बाहरी सर्वर पर 0 बाइट अपलोड किए गए। सारी प्रोसेसिंग आपके ब्राउज़र सैन्डबॉक्स में स्थानीय रूप से हुई।

बाइट-स्तरीय हेडर हस्ताक्षर (मैजिक बाइट्स)

ऑपरेटिंग सिस्टम और फ़ाइल विश्लेषक शुरुआती बाइनरी बाइट अनुक्रम का निरीक्षण करके YAML फ़ाइलों की पहचान करते हैं:

HEX हस्ताक्षर (ऑफ़सेट 0):

2D 2D 2D 0A

ASCII निरूपण: ---\n

मानकीकरण: YAML 1.2.2 Specification

तकनीकी विनिर्देश

कंटेनर आर्किटेक्चरIndentation-based human-friendly data serialization format superset of JSON supporting anchors and aliases
कंप्रेशनUncompressed text stream
बाइट एंडियानेसUTF-8 / Unicode text stream
कलर स्पेसN/A (Data Serialization)
चैनल और संरचनाMappings (key-value dictionaries), sequences (lists), scalar types (strings, numbers, booleans), and anchors (&ref/*ref)
अधिकतम आयामUnbounded document size (supports multi-document streams separated by '---')
पारदर्शिता (Transparency)None
स्ट्रीमिंग और प्रोग्रेसिवMulti-document streams allow sequential document-by-document processing

तकनीकी तुलना मैट्रिक्स: YAML बनाम प्रतियोगी

तकनीकी विशेषताYAML (वर्तमान)JSONTOMLXML
सिंटैक्स शैलीइंडेंटेशन व्हाइटस्पेस पदानुक्रमसख्त ब्रैकेट और कोट्सटेबल और key=value युग्मवर्बोज़ खुलने/बंद होने वाले टैग
टिप्पणी समर्थनमूल (# टिप्पणियाँ)कोई टिप्पणी स्वीकृत नहींमूल (# टिप्पणियाँ)<!-- टिप्पणियाँ -->
DevOps अपनानासार्वभौमिक मानक (Kubernetes, CI/CD)सार्वभौमिक API मानकRust/Python पैकेज कॉन्फ़िगरेशनएंटरप्राइज लिगेसी कॉन्फ़िगरेशन
डेटा पुन उपयोगमूल एंकर (&) और उपनाम (*)कोई नहीं (मैनुअल डुप्लीकेशन)कोई नहीं (मैनुअल डुप्लीकेशन)XML एंटिटीज़

सामान्य करप्शन मोड और हेक्स रिकवरी गाइड

पार्सर त्रुटि: 'mapping values are not allowed here' या इंडेंटेशन त्रुटि।

मूल कारण: रिक्त स्थान के साथ टैब मिलाना या गलत संरेखित इंडेंटेशन स्तर।

रिकवरी: टैब को रिक्त स्थान में बदलें और File2File YAML फ़ॉर्मेटर का उपयोग करके सिंटैक्स को सत्यापित करें।

सुरक्षा विश्लेषण और पार्सर अटैक वेक्टर्स

YAML पार्सर्स जो कस्टम प्रकार टैग (जैसे PyYAML का 'yaml.load()') का समर्थन करते हैं, ऐतिहासिक रूप से मनमाने ऑब्जेक्ट इंस्टेंटेशन के माध्यम से रिमोट कोड निष्पादन की अनुमति देते थे।

ज्ञात अटैक वेक्टर्स

  • असुरक्षित ऑब्जेक्ट डिसीरियलाइजेशन टैग के माध्यम से मनमाना कोड निष्पादन (उदा. '!!python/object/apply')।
  • एंटिटी विस्तार बम (YAML एंकर और उपनामों का उपयोग करने के समतुल्य बिलियन लाफ्स)।
  • निहित बूलियन और टाइमस्टैम्प पार्सिंग के कारण प्रकार भ्रम कमजोरियां।

सुरक्षात्मक सर्वोत्तम प्रथाएँ:

ऐतिहासिक मूल और मील के पत्थर

2021YAML 1.2.2 संशोधन प्रकाशित हुआ, जिसने JSON संगतता और औपचारिक व्याकरण परिभाषाओं को परिष्कृत किया।
2009YAML 1.2 ने YAML को JSON के सख्त सुपरसेट के रूप में मानकीकृत किया, जिसका अर्थ है कि सभी वैध JSON वैध YAML हैं।
2001क्लार्क इवांस, Ingy döt Net, और ओरन बेन-किकी ने XML के मानव-अनुकूल विकल्प के रूप में YAML बनाया।

मुख्य लाभ और खूबियाँ

  • आधुनिक क्लाउड बुनियादी ढांचे के लिए निर्विवाद मानक: Kubernetes मेनिफेस्ट, Docker Compose और GitHub Actions में सार्वभौमिक रूप से उपयोग किया जाता है।
  • स्वच्छ, पठनीय सिंटैक्स: सहज इंडेंटेशन के माध्यम से ब्रेसिज़, ब्रैकेट और कोट्स की अव्यवस्था को समाप्त करता है।
  • डुप्लीकेशन के बिना दोहराए गए कॉन्फ़िगरेशन ब्लॉकों का पुन उपयोग करने के लिए संदर्भों और एंकरों (&anchor / *anchor) का समर्थन करता है।

तकनीकी सीमाएँ और कमियाँ

  • व्हाइटस्पेस-संवेदनशील: एक आकस्मिक टैब या एक अतिरिक्त स्थान दस्तावेज़ पदानुक्रम को दूषित कर सकता है या पार्सिंग त्रुटियों का कारण बन सकता है।
  • कुख्यात प्रकार रूपांतरण बग: 'no', 'on', 'yes' जैसे अनकोटेड शब्द, या देश कोड (नॉरवे के लिए 'NO') चुपचाप बूलियन बन सकते हैं।
  • बाइनरी प्रारूपों या सख्त JSON की तुलना में काफी धीमी पार्सिंग गति।

रोचक तकनीकी जानकारी

  • YAML का मूल रूप से मतलब 'Yet Another Markup Language' था, लेकिन डेटा सिरीलाइजेशन पर जोर देने के लिए इसे हास्यस्पद रूप से पुनरावर्ती संक्षिप्त नाम 'YAML Ain't Markup Language' में बदल दिया गया था।
  • नॉरवे समस्या एक प्रसिद्ध प्रोग्रामिंग बग है जहाँ YAML फ़ाइल में देश कोड 'NO' को बूलियन 'false' के रूप में पार्स किया गया था।
  • दुनिया में हर वैध JSON फ़ाइल एक ही समय में 100% वैध YAML फ़ाइल भी है।

अक्सर पूछे جانے वाले तकनीकी प्रश्न

YAML का उपयोग किस लिए किया जाता है?

YAML क्लाउड कंप्यूटिंग, कुबेरनेट्स क्लस्टर डिप्लॉयमेंट, डॉकर कंपोज फ़ाइलों, गिटहब एक्शन वर्कफ़्लो और सॉफ़्टवेयर सेटिंग के लिए प्राथमिक कॉन्फ़िगरेशन भाषा है।

क्या मैं YAML फ़ाइलों में टैब का उपयोग कर सकता हूँ?

नहीं। आधिकारिक YAML विनिर्देश इंडेंटेशन के लिए टैब वर्णों के उपयोग को कड़ाई से प्रतिबंधित करता है; आपको हमेशा रिक्त स्थान (आमतौर पर प्रति स्तर 2 रिक्त स्थान) का उपयोग करना चाहिए।

मैं YAML को JSON में कैसे बदल सकता हूँ?

पूर्ण गोपनीयता के साथ अपने वेब ब्राउज़र में सीधे File2File.app का उपयोग करके आप एक क्लिक में YAML फ़ाइलों को साफ़, मान्य JSON में बदल सकते हैं।