मैं एक एचस्केल एप्लिकेशन पर काम कर रहा हूं, जीएचसीजेएस के साथ संकलित ब्राउज़र में चल रहा है, जो सर्वर के साथ संचार करता है, जो वेबस्केट्स पर हास्केल में भी लिखा जाता है। दोनों प्रोग्राम समान हास्केल डेटा प्रकार परिभाषा साझा करते हैं, और मुझे "बस" को क्रमबद्धता प्रारूप चुनना है।वेबकॉकेट्स पर जीएचसीजेएस कोड के लिए सबसे कुशल वायर प्रारूप
फिलहाल, सादगी के लिए, कार्यक्रम Read
और Show
पर चलता है, जो काम करता है, लेकिन स्पष्ट रूप से आदर्श नहीं है।
दूसरी ओर, यह स्पष्ट नहीं है कि cereal
लाइब्रेरी जैसे तेज धारावाहिक के लिए सामान्य दावेदार, जो ByteStrings
पर काम करते हैं, वास्तव में जीएचसीजेएस में कुशल होने जा रहे हैं। इसके अलावा, जीएचसीजेएस की एपीआई ByteStrings
द्विआधारी Blob
प्रकार के साथ इंटरैक्ट करने के लिए मुश्किल बनाती है, जो कि वेबसाइकिलों को जावास्क्रिप्ट बाइंडिंग प्रदान करता है।
जेनेरिक कोड जनरेशन (GHC.Generics
का उपयोग करके) अच्छा होगा।
क्या किसी ने इस समस्या को हल किया है? संभावित रूप से जीएचसीजेएस पर विभिन्न धारावाहिक रूपों को भी बेंचमार्क किया गया है?
मैंने अभी अनाज का उपयोग किया था। मैं क्लाइंट पर रिफ्लेक्स-फ्रैप का उपयोग कर रहा था, जिसने मूल रूप से बाइटस्ट्रिंग के इनपुट इवेंट और बाइटस्ट्रिंग के आउटपुट इवेंट के रूप में एक वेबसाकेट देखने का एक तरीका प्रदान किया। हालांकि वास्तव में मेरे पास कोई विशेष प्रदर्शन आवश्यकता नहीं थी, और मैंने बेंचमार्क नहीं किया; मेरे पास पहले से ही झूठ बोलने वाले टुकड़े थे (वैसे भी अनाज का उपयोग कर रहे थे), और यह अभी काम किया, इसलिए मुझे बस इतना ही चाहिए। – Ben
मान लीजिए कि मुझे अपने वेबसाइकिल बाइंडिंग के लिए 'रिफ्लेक्स-एफआरपी' देखना चाहिए। –
मुझे अब याद है कि मैं हैकेज की बजाय 'https: // github.com/reflex-frp/reflex-platform' का उपयोग कर रहा था, और मुझे तब तक कुछ निराशा हुई जब तक मुझे पता चला कि इसमें शामिल वेबसाइकिल सामग्री महत्वपूर्ण थी उस समय हैकेज पर रिलीज़ होने से अलग (कुछ महीने पहले)। – Ben