Haskell Language
Google प्रोटोकॉल बफ़र्स
खोज…
टिप्पणियों
हास्केल के साथ प्रोटोकॉल बफ़र्स का उपयोग करने के लिए आपको htprotoc
पैकेज स्थापित करना चाहिए:
अब आपको $HOME/.local/bin/
में hprotoc
निष्पादन योग्य hprotoc
चाहिए।
एक साधारण .proto फ़ाइल बनाना, निर्माण करना और उसका उपयोग करना
पहले हम एक सरल बनाएँ .proto
फ़ाइल person.proto
package Protocol;
message Person {
required string firstName = 1;
required string lastName = 2;
optional int32 age = 3;
}
सहेजने के बाद अब हम हास्केल फाइलें बना सकते हैं जिन्हें हम रन करके अपनी परियोजना में उपयोग कर सकते हैं
$HOME/.local/bin/hprotoc --proto_path=. --haskell_out=. person.proto
हमें इसके समान एक आउटपुट प्राप्त करना चाहिए:
Loading filepath: "/<path-to-project>/person.proto"
All proto files loaded
Haskell name mangling done
Recursive modules resolved
./Protocol/Person.hs
./Protocol.hs
Processing complete, have a nice day.
hprotoc
एक नई फ़ोल्डर Protocol
बना देगा, जो मौजूदा निर्देशिका में Person.hs
साथ है, जिसे हम केवल अपने हैस्केल प्रोजेक्ट में आयात कर सकते हैं:
import Protocol (Person)
अगले चरण के रूप में, यदि Stack ऐड का उपयोग किया जाता है
protocol-buffers
, protocol-buffers-descriptor
build-depends:
करने के build-depends:
और
Protocol
आपके .cabal
फ़ाइल में exposed-modules
यदि हमें अब एक स्ट्रीम से आने वाला संदेश मिलता है, तो संदेश में ByteString
टाइप ByteString
।
ByteString
को बदलने के लिए (जिसमें स्पष्ट रूप से एन्कोडेड "व्यक्ति" डेटा होना चाहिए) हमारे हास्केल डेटा प्रकार में, हमें फ़ंक्शन messageGet
को कॉल करना messageGet
जिसे हम आयात करते हैं
import Text.ProtocolBuffers (messageGet)
जो का उपयोग कर Person
के प्रकार के मूल्य बनाने में सक्षम बनाता है:
transformRawPerson :: ByteString -> Maybe Person
transformRawPerson raw = case messageGet raw of
Left _ -> Nothing
Right (person, _) -> Just person