Kotlin के लिए CLI फ्रेमवर्क: कंसोल एप्लिकेशन बनाना

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Kotlin के लिए CLI फ्रेमवर्क: शक्तिशाली कंसोल एप्लिकेशन बनाना

\n\n

Kotlin एक आधुनिक भाषा है जिसका उपयोग न केवल Android डेवलपमेंट के लिए, बल्कि सर्वर और कंसोल एप्लिकेशन बनाने के लिए भी सक्रिय रूप से किया जाता है। Kotlin पर CLI (Command Line Interface) टूल का विकास विशेष फ्रेमवर्क की मदद से काफी सरल किया जा सकता है। इस लेख में, हम तीन सबसे लोकप्रिय समाधानों पर विचार करेंगे: Clikt, Kotlinx-cli और Aigrette, और व्यावहारिक उदाहरणों के साथ उनका विश्लेषण करेंगे।

\n\n

CLI फ्रेमवर्क की आवश्यकता क्यों है?

\n\n

मैन्युअल रूप से कमांड लाइन आर्गुमेंट पार्सर लिखना एक थकाऊ और त्रुटि-प्रवण कार्य है। CLI के लिए फ्रेमवर्क प्रदान करते हैं:

\n\n
    \n
  • आर्गुमेंट और विकल्पों का स्वचालित पार्सिंग
  • \n
  • सहायता (--help) का निर्माण
  • \n
  • इनपुट डेटा का सत्यापन
  • \n
  • उप-कमांड (subcommands) के लिए समर्थन
  • \n
  • स्पष्ट संदेशों के साथ त्रुटि प्रबंधन
  • \n
\n\n

Clikt — सबसे लोकप्रिय विकल्प

\n\n

Clikt एक शक्तिशाली और लचीली लाइब्रेरी है जो Kotlin पर CLI के लिए डी-फैक्टो मानक बन गई है। यह एनोटेशन के साथ घोषणात्मक दृष्टिकोण का उपयोग करती है और एक समृद्ध API प्रदान करती है।

\n\n

स्थापना (Gradle के माध्यम से):

\n\n
implementation("com.github.ajalt.clikt:clikt:4.2.1")
\n\n

सरल एप्लिकेशन का उदाहरण:

\n\n
import com.github.ajalt.clikt.core.CliktCommand\nimport com.github.ajalt.clikt.parameters.arguments.argument\nimport com.github.ajalt.clikt.parameters.options.option\nimport com.github.ajalt.clikt.parameters.types.int\n\nclass Greet : CliktCommand() {\n    val name by argument()\n    val count by option("--count", "-c", help = "दोहराव की संख्या").int().default(1)\n\n    override fun run() {\n        repeat(count) {\n            echo("नमस्ते, $name!")\n        }\n    }\n}\n\nfun main(args: Array<String>) = Greet().main(args)
\n\n

चलाना:

\n\n
./app --count 3 इवान\n# आउटपुट:\n# नमस्ते, इवान!\n# नमस्ते, इवान!\n# नमस्ते, इवान!
\n\n

Clikt नेस्टेड कमांड, ऑटो-कम्प्लीशन, कंसोल में रंग और सख्त टाइपिंग का समर्थन करता है। जटिल प्रोजेक्ट्स (जैसे DevOps टूल, API के साथ काम करने के लिए उपयोगिताएँ) के लिए यह सबसे अच्छा विकल्प है।

\n\n

Kotlinx-cli — JetBrains का हल्का समाधान

\n\n

Kotlinx-cli Kotlin के निर्माताओं की आधिकारिक लाइब्रेरी है। यह Clikt की तुलना में कम कार्यात्मक है, लेकिन सरल उपयोगिताओं और छोटे प्रोजेक्ट्स के लिए एकदम सही है।

\n\n

स्थापना:

\n\n
implementation("org.jetbrains.kotlinx:kotlinx-cli:0.3.6")
\n\n

उदाहरण:

\n\n
import kotlinx.cli.*\n\nfun main(args: Array<String>) {\n    val parser = ArgParser("file-util")\n    val input by parser.argument(ArgType.String, description = "इनपुट फ़ाइल")\n    val output by parser.option(ArgType.String, shortName = "o", description = "आउटपुट फ़ाइल").default("out.txt")\n    val verbose by parser.option(ArgType.Boolean, shortName = "v", description = "विस्तृत आउटपुट").default(false)\n\n    parser.parse(args)\n\n    println("से पढ़ रहे हैं: $input")\n    println("में लिख रहे हैं: $output")\n    if (verbose) println("विस्तृत मोड चालू है")\n}
\n\n

Kotlinx-cli को अतिरिक्त निर्भरताओं की आवश्यकता नहीं है और यह तेज़ प्रोटोटाइपिंग के लिए उपयुक्त है। हालाँकि, यह नेस्टेड कमांड और जटिल सत्यापन का समर्थन नहीं करता है।

\n\n

Aigrette — कार्यात्मक दृष्टिकोण

\n\n

Aigrette एक कम ज्ञात लेकिन दिलचस्प लाइब्रेरी है जो कार्यात्मक शैली का उपयोग करती है। यह "पार्सर कॉम्बिनेटर" की अवधारणा पर आधारित है।

\n\n

स्थापना:

\n\n
implementation("io.github.petertrr:aigrette:0.3.0")
\n\n

उदाहरण:

\n\n
import io.github.petertrr.aigrette.*\n\ndata class Config(val name: String, val age: Int, val flag: Boo                    

अनुशंसाएँ