প্রকল্প সম্পর্কে

nlohmann/json (JSON for Modern C++) হলো একটি হেডার-অনলি C++ লাইব্রেরি, যা C++11 এবং পরবর্তী সংস্করণের জন্য JSON সমর্থন প্রদান করে। সম্পূর্ণ ইমপ্লিমেন্টেশন একটি ফাইলে (single_include/nlohmann/json.hpp) রয়েছে, কোনো বাহ্যিক নির্ভরতা বা জটিল বিল্ড সেটআপের প্রয়োজন নেই, এবং এটি অনেক প্যাকেজ ম্যানেজারের মাধ্যমে বিতরণ করা হয়। এটি operator overloading এবং initializer lists ব্যবহার করে স্বজ্ঞাত অবজেক্ট ও অ্যারে নির্মাণের মাধ্যমে C++-এ JSON-কে প্রথম শ্রেণির ডেটা টাইপের মতো অনুভব করানোর জন্য ডিজাইন করা হয়েছে। লাইব্রেরিতে স্ট্রিং, স্ট্রিম এবং ইটারেটর রেঞ্জ থেকে/তে পার্সিং ও সিরিয়ালাইজেশন; উপাদানগুলিতে STL-সদৃশ অ্যাক্সেস; এবং JSON মান ও স্ট্যান্ডার্ড C++ টাইপের মধ্যে রূপান্তর রয়েছে, যার মধ্যে specialization-এর মাধ্যমে যেকোনো ব্যবহারকারী-সংজ্ঞায়িত টাইপও অন্তর্ভুক্ত। এটি ডকুমেন্ট কোয়েরি ও পরিবর্তনের জন্য JSON Pointer, JSON Patch এবং JSON Merge Patch ইমপ্লিমেন্ট করে, এবং বেশ কয়েকটি বাইনারি সিরিয়ালাইজেশন ফরম্যাট সমর্থন করে: BSON, CBOR, MessagePack, UBJSON এবং BJData। ইভেন্ট-চালিত ব্যবহারের জন্য একটি SAX-স্টাইল পার্সিং ইন্টারফেসও উপলব্ধ। README অনুসারে, প্রকল্পটি পুঙ্খানুপুঙ্খ পরীক্ষার উপর জোর দেয়: 100% ইউনিট টেস্ট কভারেজ, Valgrind এবং Clang sanitizers দিয়ে মেমরি চেক, এবং Google OSS-Fuzz-এর মাধ্যমে অবিরাম ফাজ টেস্টিং। ডকুমেন্টেশন, FAQ, API রেফারেন্স এবং উদাহরণ json.nlohmann.me-এ হোস্ট করা হয়েছে। ইন্টিগ্রেশন অপশনের মধ্যে CMake, প্যাকেজ ম্যানেজার এবং pkg-config অন্তর্ভুক্ত। লাইব্রেরিটি শুধুমাত্র UTF-8 সমর্থন করে; অন্যান্য এনকোডিংয়ের জন্য ডাম্পিংয়ের সময় error-handler কনফিগারেশন প্রয়োজন।