मैं एक वेब सर्वर मॉड्यूल में मल्टीपार्ट फॉर्म-डेटा पार्सिंग को एकीकृत करने के लिए देख रहा हूं ताकि मैं बैकएंड वेब एप्लिकेशन (अक्सर डायनामिक भाषाओं में लिखे गए) को मल्टीपार्ट डेटा को पार्स करने से मुक्त कर सकूं। मल्टीपार्ट व्याकरण (आरएफसी 2046) गैर-तुच्छ दिखता है और यदि मैं इसे हाथ से कार्यान्वित करता हूं तो बहुत सी चीजें गलत हो सकती हैं। क्या सी या सी ++ में पहले से ही एक अच्छा, हल्का मल्टीपार्ट/फॉर्म-डेटा पार्सर लिखा गया है? मैं सी या सी ++ मानक पुस्तकालय के अलावा बाहरी निर्भरताओं के साथ एक की तलाश में हूं। मुझे ईमेल अनुलग्नक हैंडलिंग या buffered I/O कक्षाओं या पोर्टेबिलिटी रनटाइम या जो भी हो, बस मल्टीपार्ट/फॉर्म-डेटा पार्सिंग की आवश्यकता नहीं है।क्या सी या सी ++ में हल्का मल्टीपार्ट/फॉर्म-डेटा पार्सर है?
चीज़ें है कि मैं पर विचार किया है:
- GMime - चिकना, इसलिए कोई जाने पर निर्भर करता है।
- libapreq - बहुत बड़ा, एपीआर पर निर्भर करता है, बुरी तरह से प्रलेखित, कोई यूनिट परीक्षण नहीं।
मैंने रागेल के साथ एक पार्सर लिखने पर भी ध्यान दिया है, लेकिन मुझे यह नहीं पता कि यह कैसे करना है क्योंकि व्याकरण स्थिर नहीं है: सीमा मनमाने ढंग से बदल सकती है।
"। GMime - चिकना, इसलिए कोई जाने पर निर्भर करता है" - समझाने की देखभाल क्यों? –
क्या आपने यह धागा पढ़ा है: http://stackoverflow.com/questions/218089/simple-c-mime-parser? – Manuel
@ जॉन: प्रत्येक नई निर्भरता मेरे उपयोगकर्ताओं के लिए इंस्टॉलेशन परेशानी जोड़ती है, और मैं इसे न्यूनतम से बचाना चाहता हूं। कई सर्वरों में ग्लिब स्थापित नहीं होता है। इसके अलावा हर नई निर्भरता संसाधन उपयोग को बढ़ाती है। ग्लिब का उपयोग करने वाले कई सर्वर ऐप्स नहीं हैं, इसलिए यदि मैं ग्लिब पर निर्भर करता हूं तो मैं इसे कुछ मेम डेटा को पार्स करने के लिए अपनी सभी मेमोरी खपत खींच दूंगा। – Hongli