Go Academy · पाठ

Go plugin पैकेज की मूल बातें

.so फ़ाइलें बनाना और plugin.Open / Lookup

पाठ 1, कुल 4 में से13 चरण

Go plugin पैकेज की मूल बातें, CoddyKit पर Go Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Go Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Go Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

Go प्लगइन पैकेज क्या है

plugin पैकेज (Go 1.8+) रनटाइम पर संकलित .so साझा लाइब्रेरी लोड करने और उनमें से निर्यातित फ़ंक्शन तथा चर को कॉल करने की सुविधा देता है।

प्लगइन बनाना

-buildmode=plugin के साथ किसी Go फ़ाइल को प्लगइन के रूप में संकलित करें:

// greeter/greeter.go
package main
func Greet(name string) string { return "Hello, " + name }

प्लगइन लोड करना

.so फ़ाइल लोड करें और निर्यातित प्रतीकों को खोजें:

p, err := plugin.Open("./greeter.so")
if err != nil { log.Fatal(err) }

sym, err := p.Lookup("Greet")
if err != nil { log.Fatal(err) }

greet, ok := sym.(func(string) string)
if !ok { log.Fatal("wrong type") }
fmt.Println(greet("World"))

प्लगइन की सीमाएँ

प्लगइन और होस्ट द्वारा आयात किए गए सभी पैकेजों के संस्करण बिल्कुल समान होने चाहिए। प्लगइन में package main होना चाहिए। एक बार लोड हो जाने के बाद प्लगइन को अनलोड नहीं किया जा सकता।

प्रतीकों के प्रकार

प्लगइन.Lookup किसी भी प्रकार का मान लौटाता है। उसके प्रकार की पुष्टि अपेक्षित फ़ंक्शन हस्ताक्षर या चर के प्रकार के अनुसार करें। असंगतियों से रनटाइम पैनिक होता है।

मंच की सीमाएँ

प्लगइन पैकेज Linux और macOS पर काम करता है, लेकिन Windows या CGO_ENABLED=0 के साथ नहीं। यह प्लगइन लक्ष्यों के लिए क्रॉस-कम्पाइलेशन का भी समर्थन नहीं करता।

संस्करण संगतता

प्लगइन और होस्ट को एक ही Go संस्करण तथा सभी साझा पैकेजों के समान संस्करणों के साथ संकलित किया जाना चाहिए। संस्करणों के असंगत होने पर प्लगइन लोड नहीं हो पाता।

उपयोग के मामले

प्लगइन इनके लिए उपयुक्त हैं: उपयोगकर्ता द्वारा दिए गए हैंडलर वाले सामग्री प्रबंधन तंत्र, बदले जा सकने वाले भंडारण बैकएंड वाले डेटाबेस, और ऐसे अनुप्रयोग जिन्हें होस्ट को दोबारा संकलित किए बिना रनटाइम पर लोड किए जा सकने वाले विस्तार चाहिए।

विकल्प

अधिक लचीलेपन के लिए मूल प्लगइनों के बजाय RPC-आधारित प्लगइन (HashiCorp go-प्लगइन), WebAssembly मॉड्यूल या होस्ट में एम्बेड की गई स्क्रिप्टिंग भाषा (Lua, Starlark) का उपयोग करें।

प्लगइनों का त्रुटि-निवारण

प्लगइन के प्रतीक नहीं मिले? जाँचें: सही main पैकेज, बड़े अक्षर से शुरू होने वाला निर्यातित प्रतीक, मेल खाते निर्माण टैग और मॉड्यूल संस्करण, तथा सही मंच।

प्लगइन लोड करना एकतरफ़ा है

एक बार प्लगइन लोड हो जाने पर उसे अनलोड नहीं किया जा सकता। तंत्रों को इस प्रकार बनाएँ कि प्रक्रिया के पूरे जीवनकाल में लोड किए गए सभी प्लगइनों के सक्रिय रहने पर भी वे सही ढंग से काम करें।

त्वरित जाँच

HashiCorp go-प्लगइन की तुलना में Go प्लगइन पैकेज की एक प्रमुख सीमा क्या है?

पुनरावलोकन: Go प्लगइन पैकेज

मुख्य बिंदु:

  • -buildmode=plugin के साथ बनाएँ; plugin.Open के साथ लोड करें
  • plugin.Lookup किसी भी प्रकार का मान लौटाता है; अपेक्षित प्रकार की पुष्टि करें
  • केवल Linux/macOS; समान संस्करण आवश्यक; अनलोड करना संभव नहीं
  • विभिन्न मंचों पर लचीलेपन के लिए go-प्लगइन (RPC-आधारित) को प्राथमिकता दें
शुरुआत निःशुल्क

एआई शिक्षक के साथ Go सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
51
पाठ
203

अक्सर पूछे जाने वाले प्रश्न

क्या “Go plugin पैकेज की मूल बातें” पाठ निःशुल्क है?

हाँ — Go Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “Go plugin पैकेज की मूल बातें” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Go Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“Go plugin पैकेज की मूल बातें” में मैं क्या सीखूँगा?

.so फ़ाइलें बनाना और plugin.Open / Lookup आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Go Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Go Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Go Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।

“Go plugin पैकेज की मूल बातें” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Go Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Go Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Go plugin पैकेज की मूल बातें
  2. Plugin इंटरफ़ेस डिज़ाइन करना
  3. गतिशील लोडिंग और Symbols
  4. विकल्प: HashiCorp go-plugin
← Go Academy पर वापस जाएँ