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

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

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

TOML থেকে JSON কনভার্ট করুন

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

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

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

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

১০০% প্রাইভেট ব্রাউজার-মধ্যস্থ কনভার্শন - ফাইল কখনো আপনার ডিভাইস ছেড়ে যায় না

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

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

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

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

5B ... 5D

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

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

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

কন্টেইনার আর্কিটেকচারHuman-readable configuration file mapping unequivocally to a hash table, structured with [tables] and key = value pairs
কম্প্রেশনUncompressed text stream
বাইট এন্ডিয়াননেসUTF-8 text stream
কালার স্পেসN/A (Configuration File)
চ্যানেল ও কাঠামোTables, arrays of tables, inline tables, strings, integers, floats, booleans, and RFC 3339 datetimes
সর্বোচ্চ মাত্রাUnbounded text length
স্বচ্ছতাNone
স্ট্রিমিং ও প্রোগ্রেসিভSequential line-by-line configuration parsing

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

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

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

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

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

পুনরুদ্ধার: File2File 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.toml' ফাইলে TOML ফরম্যাটে সমস্ত প্যাকেজ ডিপেন্ডেন্সি এবং কম্পাইলার ফ্ল্যাগ নির্দিষ্ট করা থাকে।
  • 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-এ রূপান্তর করতে পারেন।