TOML কনফিগারেশন (.toml)

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

টমস অবভিয়াস মিনিমাল ল্যাঙ্গুয়েজ (TOML) হলো একটি দ্ব্যর্থহীন, মানব-কেন্দ্রিক কনফিগারেশন ফরম্যাট যা গিটহাবের সহ-প্রতিষ্ঠাতা টম প্রেস্টন-ওয়ার্নার তৈরি করেছেন। এটি রাস (Cargo) এবং পাইথন (pyproject.toml)-এর মতো আধুনিক প্রোগ্রামিং ইকোসিস্টেমে ব্যাপকভাবে সমাদৃত।

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

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

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

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

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

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

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

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

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

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

5B ... 5D

ASCII রিপ্রেজেন্টেশন: [...]

স্ট্যান্ডার্ডাইজেশন: TOML v1.0.0 Specification

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

কন্টেইনার আর্কিটেকচারমানুষের পড়ার উপযোগী কনফিগারেশন ফাইল, যা দ্ব্যর্থহীনভাবে hash table-এ রূপ নেয়; এতে [tables] ও key = value জোড়া থাকে
কম্প্রেশনকমপ্রেশনবিহীন টেক্সট স্ট্রিম
বাইট এন্ডিয়াননেসUTF-8 টেক্সট স্ট্রিম
কালার স্পেসপ্রযোজ্য নয় (কনফিগারেশন ফাইল)
চ্যানেল ও কাঠামোটেবিল, টেবিলের অ্যারে, ইনলাইন টেবিল, স্ট্রিং, পূর্ণসংখ্যা, দশমিক সংখ্যা, বুলিয়ান এবং RFC 3339 তারিখ-সময়
সর্বোচ্চ মাত্রাটেক্সটের দৈর্ঘ্যের নির্দিষ্ট সীমা নেই
স্বচ্ছতানেই
স্ট্রিমিং ও প্রোগ্রেসিভলাইন ধরে ধারাবাহিক কনফিগারেশন পার্সিং

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

প্রযুক্তিগত বৈশিষ্ট্যTOML (বর্তমান)YAMLJSONINI
দ্ব্যর্থতার ঝুঁকিশূন্য (কঠোরভাবে দ্ব্যর্থহীন স্পেসিফিকেশন)উচ্চ (YAML-এর 'নরওয়ে সমস্যা' বুলিয়ান বাগ)শূন্য (কঠোর ডেটা টাইপ)মাঝারি (কোনো আনুষ্ঠানিক স্ট্যান্ডার্ড নেই)
নেটিভ ডেটটাইম টাইপনেটিভ RFC 3339 তারিখ ও সময় সমর্থনঅন্তর্নিহিত স্ট্রিং / তারিখ পার্সিংনেই (শুধুমাত্র স্ট্রিং)নেই (শুধুমাত্র স্ট্রিং)
কমেন্ট সমর্থননেটিভ (# কমেন্ট)নেটিভ (# কমেন্ট)কোনো কমেন্ট অনুমোদিত নয়নেটিভ (; এবং # কমেন্ট)
প্রধান ইকোসিস্টেমরাস (Cargo), পাইথন (PEP 518), গোকুবারনেটস, অ্যানসিবল, CI/CD পাইপলাইনওয়েব API, ব্রাউজার যোগাযোগলিগ্যাসি উইন্ডোজ, গিট কনফিগারেশন

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

পার্সার ত্রুটি: 'টেবিলে ডুপ্লিকেট কী' বা 'অবৈধ টেবিল হেডার' (Duplicate key in table or Invalid table header)।

মূল কারণ: নথির মধ্যে একটি বিদ্যমান কী বা টেবিল নেমস্পেস পুনরায় সংজ্ঞায়িত করার চেষ্টা করা।

পুনরুদ্ধার: File2File.app TOML ফরম্যাটার ব্যবহার করে TOML সিনট্যাক্স যাচাই এবং পুনর্বিন্যাস করুন।

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

TOML পার্সারগুলোকে প্রোটোটাইপ পলিউশন এবং অতিরিক্ত টেবিল অ্যারে নেস্টিংয়ের কারণে CPU নিষ্ক্রিয়তা থেকে রক্ষা করতে হবে।

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

  • JavaScript TOML পার্সারে প্রোটোটাইপ পলিউশন যা Object.prototype-এ প্রপার্টি ইনজেক্ট করে।
  • গভীরভাবে নেস্টেড টেবিল অ্যারে ঘোষণার মাধ্যমে পরিষেবা অস্বীকারের আক্রমণ (DoS)।
  • বিশাল ইনলাইন অ্যারে পার্সিংয়ের সময় অপরিমিত মেমরি বরাদ্দ।

প্রতিরক্ষামূলক সেরা অনুশীলন: টেবিল নেস্টিং সীমা যাচাই করুন এবং প্রোটোটাইপ-পলিউশন-নিরাপদ ডিকশনারি অবজেক্ট ব্যবহার করুন।

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

2021TOML v1.0.0 আনুষ্ঠানিকভাবে প্রকাশিত হয়, যা মূল সিনট্যাক্স স্পেসিফিকেশনকে স্থিতিশীল করে।
2018পাইথন আধুনিক বিল্ড কনফিগারেশন স্ট্যান্ডার্ড হিসেবে 'pyproject.toml' (PEP 518) আদর্শ হিসেবে গ্রহণ করে।
2013YAML-এর জটিলতা ছাড়াই একটি পরিচ্ছন্ন কনফিগারেশন ফরম্যাট প্রদানের জন্য টম প্রেস্টন-ওয়ার্নার TOML প্রকাশ করেন।

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

  • সম্পূর্ণ দ্ব্যর্থহীন: কোনো ধরনের অপ্রত্যাশিত টাইপ রূপান্তর ছাড়াই পরিচ্ছন্ন ও অনুমানযোগ্যভাবে একটি হ্যাশ টেবিলে ম্যাপ করে।
  • স্ট্রিং এস্কেপিং ছাড়াই প্রথম শ্রেণির নেটিভ ডেটটাইম সমর্থন (RFC 3339 টাইমস্ট্যাম্প, তারিখ, সময়)।
  • আধুনিক ভাষা টুলিংয়ের জন্য অফিসিয়াল স্ট্যান্ডার্ড কনফিগারেশন ফরম্যাট হিসেবে গৃহীত (রাস Cargo.toml, পাইথন pyproject.toml)।

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

  • YAML-এর তুলনায় গভীরভাবে নেস্টেড বহু-স্তরের অবজেক্ট ট্রি অনেক বড় ও জটিল হতে পারে।
  • টেবিলের অ্যারে সিনট্যাক্স ([[table.array]]) নতুনদের জন্য সহজে বোধগম্য নাও হতে পারে।
  • উচ্চ-থ্রুপুট মেশিন-টু-মেশিন API ডেটা বিনিময়ের ক্ষেত্রে JSON-এর তুলনায় কম কম্প্যাক্ট।

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

  • TOML তৈরি করেছেন টম প্রেস্টন-ওয়ার্নার, যিনি গিটহাব সহ-প্রতিষ্ঠা করেছিলেন এবং Gravatar ও SemVer (Semantic Versioning) তৈরি করেছিলেন।
  • Cargo প্যাকেজে মেটাডেটা, নির্ভরতা ও টার্গেট ঘোষণার জন্য Cargo.toml ব্যবহৃত হয়; অন্য বিল্ড সিস্টেমের Rust প্রকল্পে ভিন্ন ফাইল থাকতে পারে।
  • JSON-এর বিপরীতে, TOML স্বাভাবিকভাবেই কমেন্ট ('#' অক্ষর ব্যবহার করে) এবং মাল্টিলাইন স্ট্রিং সমর্থন করে।

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

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

TOML সফটওয়্যার কনফিগারেশনের জন্য ব্যবহৃত হয়, বিশেষ করে Rust-এর Cargo.toml, Python-এর pyproject.toml, Go Hugo কনফিগ এবং কন্টেইনার টুলসে।

কনফিগারেশনের জন্য YAML-এর চেয়ে TOML কেন বেশি পছন্দ করা হয়?

TOML, YAML-এর কুখ্যাত এজ-কেস পার্সিং বাগগুলো (যেমন আনকোটেড 'NO' ভুলবশত বুলিয়ান false-এ পরিণত হওয়া) এড়িয়ে চলে, পাশাপাশি কমেন্ট এবং পরিষ্কার টেবিলসহ এটি মানব-বান্ধব থাকে।

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

আপনি আপনার ওয়েব ব্রাউজারে সরাসরি File2File.app ব্যবহার করে তাৎক্ষণিকভাবে TOML ফাইলগুলোকে JSON বা YAML-এ রূপান্তর করতে পারেন।