- Sj.h लगभग 150 लाइनों का एक अत्यंत हल्का JSON parser है, जिसे C99 आधारित environments में इस्तेमाल किया जा सकता है
- इसमें zero memory allocation और minimal state जैसी विशेषताएं हैं, इसलिए यह हल्के embedded environments या कम dependencies वाली स्थितियों के लिए उपयुक्त है
- यह number और string parsing को सीधे संभालने के बजाय ऐसा तरीका अपनाता है, जिससे उपयोगकर्ता संबंधित processing अपनी जरूरत के अनुसार स्वतंत्र रूप से implement कर सके
- line:column आधारित error messages के समर्थन से debugging के दौरान readability और location पहचान बेहतर होती है
- यह public domain software है, इसलिए कोई भी इसे स्वतंत्र रूप से इस्तेमाल, संशोधित और वितरित कर सकता है
प्रोजेक्ट परिचय
- Sj.h एक C99 header file है, जो अतिरिक्त features या अनावश्यक memory allocation के बिना सिर्फ न्यूनतम कोड से JSON parsing की सुविधा देता है
- पूरा implementation लगभग 150 लाइनों का है, इसलिए यह embedded systems, tools, या ऐसे मामलों के लिए उपयुक्त है जहाँ external library dependencies को कम रखना हो
मुख्य विशेषताएं
- zero-allocations और minimal state के साथ काम करता है, इसलिए memory overhead बहुत कम है
- line:column जानकारी वाले error messages parsing के दौरान होने वाली समस्याओं की स्थिति समझना आसान बनाते हैं
- number parsing built-in रूप से उपलब्ध नहीं है; उपयोगकर्ता strtod, atoi आदि अपनी पसंद के तरीके इस्तेमाल कर सकते हैं
- string parsing भी उपयोगकर्ता स्वयं implement कर सकते हैं, और जरूरत के अनुसार Unicode surrogate pair handling जैसी चीजें जोड़ सकते हैं
- पूरा source code public domain (Unlicense) में उपलब्ध है, इसलिए license जैसी पाबंदियों के बिना इसका उपयोग और संशोधन किया जा सकता है
उपयोग उदाहरण
- JSON string को Rect struct में parse करने का एक सरल उदाहरण दिया गया है
char *json_text = "{ \"x\": 10, \"y\": 20, \"w\": 30, \"h\": 40 }"; typedef struct { int x, y, w, h; } Rect; ... - sj_Reader, sj_Value, sj_reader, sj_read, sj_iter_object जैसे सरल और स्पष्ट API इस्तेमाल किए जाते हैं
- numeric value parsing और key-value comparison उपयोगकर्ता को स्वयं implement करने होते हैं; built-in सुविधा नहीं दी गई है
- demo folder में कई अतिरिक्त उपयोग उदाहरण देखे जा सकते हैं
लाइसेंस
- Sj.h एक public domain software है, जिसे कोई भी बिना किसी प्रतिबंध के इस्तेमाल कर सकता है
- अधिक जानकारी के लिए LICENSE file देखें
अन्य
- code और folder structure सरल हैं, इसलिए बिना किसी अलग configuration या build प्रक्रिया के इसे तुरंत इस्तेमाल किया जा सकता है
- यह स्वतंत्र है, external dependencies नहीं हैं, और मुख्य रूप से उन environments के लिए उपयुक्त है जहाँ हल्कापन और ease of use महत्वपूर्ण हों
1 टिप्पणियां
Hacker News राय