YAML কনফিগারেশন (.yaml)

YAML স্ট্যান্ডার্ড

YAML Ain't Markup Language (YAML) হলো আধুনিক ডেভপস, ক্লাউড অবকাঠামো (কুবারনেটস, ডকার কম্পোজ) এবং CI/CD অটোমেশনের প্রধান ডেটা সিরিয়ালাইজেশন ফরম্যাট, যা পরিচ্ছন্ন হোয়াইটস্পেস ইন্ডেন্টেশনের মাধ্যমে মানব পঠনযোগ্যতার ওপর জোর দেয়।

YAML থেকে JSON-তে রূপান্তর করুন

বিনামূল্যের ব্রাউজারভিত্তিক YAML-থেকে-JSON রূপান্তরকারী। আপনার ডিভাইসেই ফাইল তাৎক্ষণিকভাবে রূপান্তর করুন।

ইনস্পেক্ট ও মেটাডেটা

অপারেটিং সিস্টেম এবং ফাইল অ্যানালাইজারগুলো শুরুর বাইনারি বাইট সিকোয়েন্স পরীক্ষা করে YAML ফাইল শনাক্ত করে:

এখানে ফাইল নির্বাচন করুন বা ড্রপ করুন

ব্যক্তিগত - ফাইল কখনোই আপনার ডিভাইস ছেড়ে যায় না

অথবা পেস্ট করুন Ctrl+V
নেটওয়ার্কে কোনো ডেটা পাঠানো হয় না - গোপনীয়তার নিশ্চয়তা: বাহ্যিক সার্ভারে ০ বাইট আপলোড করা হয়েছে। সমস্ত প্রক্রিয়াকরণ আপনার ব্রাউজার স্যান্ডবক্সে স্থানীয়ভাবে ঘটেছে।

বাইট-লেভেল হেডার সিগনেচার (ম্যাজিক বাইটস)

অপারেটিং সিস্টেম এবং ফাইল অ্যানালাইজারগুলো শুরুর বাইনারি বাইট সিকোয়েন্স পরীক্ষা করে YAML ফাইল শনাক্ত করে:

হেক্স সিগনেচার (অফসেট 0):

2D 2D 2D 0A

ASCII রিপ্রেজেন্টেশন: ---\n

স্ট্যান্ডার্ডাইজেশন: YAML 1.2.2 Specification

প্রযুক্তিগত বৈশিষ্ট্য

কন্টেইনার আর্কিটেকচারইন্ডেন্টেশনভিত্তিক, মানুষের পড়ার উপযোগী ডেটা সিরিয়ালাইজেশন ফরম্যাট; এটি JSON-এর সুপারসেট এবং anchor ও alias সমর্থন করে
কম্প্রেশনকমপ্রেশনবিহীন টেক্সট স্ট্রিম
বাইট এন্ডিয়াননেসUTF-8 / Unicode টেক্সট স্ট্রিম
কালার স্পেসপ্রযোজ্য নয় (ডেটা সিরিয়ালাইজেশন)
চ্যানেল ও কাঠামোম্যাপিং (key-value অভিধান), সিকোয়েন্স (তালিকা), স্কেলার টাইপ (স্ট্রিং, সংখ্যা, বুলিয়ান) এবং anchor (&ref/*ref)
সর্বোচ্চ মাত্রানথির আকারের নির্দিষ্ট সীমা নেই (--- দিয়ে আলাদা করা একাধিক নথির স্ট্রিম সমর্থন করে)
স্বচ্ছতানেই
স্ট্রিমিং ও প্রোগ্রেসিভএকাধিক নথির স্ট্রিমে একটির পর একটি নথি প্রক্রিয়া করা যায়

টেকনিক্যাল তুলনা ম্যাট্রিক্স: YAML বনাম প্রতিযোগীগণ

প্রযুক্তিগত বৈশিষ্ট্যYAML (বর্তমান)JSONTOMLXML
সিনট্যাক্স স্টাইলইন্ডেন্টেশন হোয়াইটস্পেস হায়ারার্কিকঠোর ব্র্যাকেট এবং কোটেশনটেবিল এবং key=value জোড়বিবরণমূলক ওপেনিং/ক্লোজিং ট্যাগ
কমেন্ট সমর্থননেটিভ (# কমেন্ট)কোনো কমেন্ট অনুমোদিত নয়নেটিভ (# কমেন্ট)<!-- কমেন্ট -->
ডেভপস গ্রহণসফটওয়্যারভেদে সমর্থন ভিন্ন হয়।সফটওয়্যারভেদে সমর্থন ভিন্ন হয়।রাস/পাইথন প্যাকেজ কনফিগারেশনএন্টারপ্রাইজ লিগ্যাসি কনফিগারেশন
ডেটা পুনঃব্যবহারনেটিভ অ্যাঙ্কর (&) এবং এলিয়াস (*)নেই (ম্যানুয়াল ডুপ্লিকেশন)নেই (ম্যানুয়াল ডুপ্লিকেশন)XML এনটিটি

সাধারণ করাপশন মোড এবং হেক্স রিকভারি গাইড

পার্সার ত্রুটি: 'mapping values are not allowed here' বা ইন্ডেন্টেশন ত্রুটি।

মূল কারণ: ট্যাব এবং স্পেস একসাথে ব্যবহার করা বা ভুলভাবে সাজানো ইন্ডেন্টেশন লেভেল।

পুনরুদ্ধার: ট্যাবগুলোকে স্পেস দিয়ে প্রতিস্থাপন করুন এবং File2File.app YAML ফরম্যাটার ব্যবহার করে সিনট্যাক্স যাচাই করুন।

নিরাপত্তা বিশ্লেষণ ও পার্সার অ্যাটাক ভেক্টর

যে সমস্ত YAML পার্সার কাস্টম টাইপ ট্যাগ সমর্থন করে (যেমন PyYAML-এর 'yaml.load()'), সেগুলো অতীতে স্বেচ্ছাচারী অবজেক্ট ইনস্ট্যান্সিয়েশনের মাধ্যমে রিমোট কোড এক্সিকিউশন (RCE) এর সুযোগ দিত।

পরিচিত অ্যাটাক ভেক্টর

  • অনিরাপদ অবজেক্ট ডিসিরিয়ালাইজেশন ট্যাগ (যেমন '!!python/object/apply') এর মাধ্যমে স্বেচ্ছাচারী কোড এক্সিকিউশন।
  • এনটিটি এক্সপ্যানশন বম (YAML অ্যাঙ্কর এবং এলিয়াস ব্যবহার করে বিলিয়ন লাফস অ্যাটাকের সমতুল্য)।
  • অন্তর্নিহিত বুলিয়ান এবং টাইমস্ট্যাম্প পার্সিংয়ের কারণে টাইপ কনফিউশন দুর্বলতা।

প্রতিরক্ষামূলক সেরা অনুশীলন: সর্বদা নিরাপদ YAML পার্সার ব্যবহার করুন (Python-এ 'yaml.safe_load()') এবং অ্যাঙ্কর এক্সপানশন ডেপথের সীমা প্রয়োগ করুন।

ঐতিহাসিক উৎপত্তি ও মাইলফলক

2021YAML 1.2.2 সংস্করণ প্রকাশিত হয়, যা JSON সামঞ্জস্যতা এবং আনুষ্ঠানিক ব্যাকরণ সংজ্ঞা উন্নত করে।
2009YAML 1.2 স্ট্যান্ডার্ড অনুযায়ী YAML কে JSON-এর একটি কঠোর সুপারসেট হিসেবে নির্ধারণ করা হয়, যার মানে সমস্ত বৈধ JSON-ই বৈধ YAML।
2001ক্লার্ক ইভানস, ইঙ্গি ডট নেট এবং ওরেন বেন-কিচি XML-এর মানব-বান্ধব বিকল্প হিসেবে YAML তৈরি করেন।

প্রধান সুবিধাসমূহ ও গুণাবলী

  • অবকাঠামো-সংক্রান্ত টুলে YAML বহুল ব্যবহৃত, তবে সমর্থন ও আচরণ বাস্তবায়নভেদে ভিন্ন হয়।
  • পরিচ্ছন্ন, পঠনযোগ্য সিনট্যাক্স: স্বজ্ঞাত ইন্ডেন্টেশনের মাধ্যমে ব্র্যাকেট, বন্ধনী এবং কোটেশনের ঝামেলা দূর করে।
  • ডুপ্লিকেশন ছাড়াই পুনরাবৃত্ত কনফিগারেশন ব্লকগুলো পুনরায় ব্যবহার করার জন্য রেফারেন্স এবং অ্যাঙ্কর (&anchor / *anchor) সমর্থন করে।

কারিগরি সীমাবদ্ধতা ও অসুবিধা

  • হোয়াইটস্পেস সংবেদনশীল: একটি অনভিপ্রেত ট্যাব বা সামান্য অতিরিক্ত স্পেস নথির হায়ারার্কি নষ্ট করতে পারে বা পার্সিং ত্রুটি ঘটাতে পারে।
  • কুখ্যাত টাইপ কোয়েরশন বাগ: 'no', 'on', 'yes' বা দেশের কোডের (নরওয়ের জন্য 'NO') মতো উদ্ধৃতিচিহ্নহীন শব্দগুলো নীরবে বুলিয়ানে রূপান্তরিত হতে পারে।
  • বাইনারি ফরম্যাট বা কঠোর JSON-এর তুলনায় উল্লেখযোগ্যভাবে ধীর পার্সিং গতি।

আকর্ষণীয় কারিগরি তথ্য

  • YAML-এর আদি অর্থ ছিল 'Yet Another Markup Language', কিন্তু ডেটা সিরিয়ালাইজেশনের ওপর জোর দিতে এর নাম পরিবর্তন করে মজার ছলে রিকার্সিভ অ্যাক্রোনিম 'YAML Ain't Markup Language' করা হয়।
  • 'নরওয়ে সমস্যা' হলো একটি বিখ্যাত প্রোগ্রামিং বাগ যেখানে YAML ফাইলের দেশের কোড 'NO'-কে ভুলবশত বুলিয়ান মান 'false' হিসেবে পার্স করা হয়েছিল।
  • বিশ্বের প্রতিটি বৈধ JSON ফাইল একই সাথে ১০০% বৈধ YAML ফাইলও বটে।

সচরাচর জিজ্ঞাসিত প্রযুক্তিগত প্রশ্নাবলি

YAML কী কাজে ব্যবহার করা হয়?

YAML হলো ক্লাউড কম্পিউটিং, Kubernetes ক্লাস্টার ডিপ্লয়মেন্ট, Docker Compose ফাইল, GitHub Actions ওয়ার্কফ্লো এবং সফটওয়্যার সেটিংসের প্রাথমিক কনফিগারেশন ভাষা।

আমি কি YAML ফাইলে ট্যাব ব্যবহার করতে পারি?

না। অফিশিয়াল YAML স্পেসিফিকেশন ইন্ডেন্টেশনের জন্য ট্যাব ক্যারেক্টার ব্যবহার কঠোরভাবে নিষিদ্ধ করে; আপনাকে সর্বদা স্পেস ব্যবহার করতে হবে (সাধারণত প্রতি লেভেলে ২টি স্পেস)।

আমি কীভাবে YAML-কে JSON-এ রূপান্তর করতে পারি?

সম্পূর্ণ গোপনীয়তা বজায় রেখে আপনার ওয়েব ব্রাউজারে সরাসরি File2File.app ব্যবহার করে এক ক্লিকেই আপনি YAML ফাইলগুলোকে পরিষ্কার, যাচাইকৃত JSON-এ রূপান্তর করতে পারেন।