SDK کیا ہے؟ Software Development Kits آسان زبان میں
SDK (software development kit) ایک تیار ٹول کٹ ہے جو کوئی کمپنی ڈیولپرز کو دیتی ہے تاکہ وہ اس کی سروس یا پلیٹ فارم کو سب کچھ خود بنائے بغیر استعمال کر سکیں۔ اس میں عموماً کسی مخصوص پروگرامنگ زبان کے لیے کوڈ لائبریری، دستاویزات اور مثالیں ہوتی ہیں، اور کبھی کبھی ٹیسٹنگ ٹولز جیسی اضافی چیزیں بھی۔ جب آپ کی ایپ “Stripe SDK استعمال کرتی ہے”، تو مطلب ہے کہ آپ کا کوڈ Stripe کے تیار کردہ فنکشنز کو کال کرتا ہے، بجائے اس کے کہ Stripe کے API کو ہر درخواست ہاتھ سے بھیجے۔
AI سے ایپ بناتے وقت SDKs کیوں اہم ہیں
جب آپ کسی AI بلڈر سے ادائیگیاں، AI چیٹ، نقشے یا ای میل شامل کرنے کو کہتے ہیں، تو وہ عموماً اس فراہم کنندہ کا SDK انسٹال کرتا ہے اور اسے کال کرنے والی چند لائنیں لکھتا ہے۔ SDK کیا ہے، یہ جاننا آپ کی مدد کرتا ہے کہ:
- سمجھیں کہ آپ کے پروجیکٹ میں کیا شامل ہو رہا ہے۔ SDK ایک ڈیپینڈنسی ہے، یعنی باہر کا کوڈ جس پر آپ کی ایپ اب انحصار کرتی ہے۔
- ضروری سیٹ اپ پہچانیں۔ تقریباً ہر SDK کو API key درکار ہوتی ہے، اور بہت سوں کے “سرور” اور “براؤزر” کے الگ ورژن ہوتے ہیں جن کے اصول مختلف ہیں کہ کون سی کیز محفوظ ہیں۔
- درست چیز مانگیں۔ “سرور پر سرکاری Stripe SDK استعمال کرو” کہنا “Stripe شامل کرو” سے واضح ہدایت ہے۔
- ایررز پڑھیں۔ AI سے بنی ایپس میں بہت سی خرابیاں اس وجہ سے آتی ہیں کہ SDK غلط ترتیب دیا گیا ہو، پرانا ہو، یا غلط جگہ استعمال ہو۔
روزمرہ کی ایک مثال
تصور کریں آپ کو شیلف لگانی ہے۔
- API عمارت کے اصول ہیں: کون سی دیواروں پر پیچ لگ سکتے ہیں، وہ کتنا وزن سہارتی ہیں، اور پائپ کہاں ہیں۔ آپ ان اصولوں کے تحت خود سب کچھ ناپ کر لگا سکتے ہیں۔
- SDK اسی کمپنی کا فلیٹ پیک شیلف کٹ ہے: پہلے سے کٹے ہوئے پرزے، صحیح پیچ، ایک بریکٹ جو ان کی دیواروں پر بالکل فٹ آتا ہے، اور ہدایات کا کتابچہ۔
شیلف کہاں لگے اور اس پر کیا رکھا جائے، یہ فیصلہ آپ خود کرتے ہیں۔ کٹ بس لکڑی کاٹنے اور پیچ کے سائز کا اندازہ لگانے سے بچاتا ہے، اور اس بات کا امکان بھی کم کر دیتا ہے کہ پانی کا پائپ ہی چھید دیا جائے۔
SDK بمقابلہ API بمقابلہ لائبریری بمقابلہ فریم ورک
یہ اصطلاحات آپس میں ملتی ہیں، اس لیے بہت سے لوگ الجھ جاتے ہیں:
| اصطلاح | یہ کیا ہے | مثال |
|---|---|---|
| API | کسی سروس سے بات کرنے کے اصول: وہ کون سی درخواستیں قبول کرتی ہے اور کیا واپس دیتی ہے | Stripe کا REST API api.stripe.com پر |
| SDK | کسی فراہم کنندہ کا ٹول کٹ، جو کسی مخصوص زبان سے اس کے API یا پلیٹ فارم کو استعمال کرنے کے لیے دستاویزات اور ٹولز کے ساتھ آتا ہے | Stripe کی سرکاری Node.js لائبریری |
| لائبریری | کوئی بھی دوبارہ استعمال ہونے والا کوڈ جو آپ پروجیکٹ میں شامل کریں | تاریخ فارمیٹ کرنے کا ایک پیکج |
| فریم ورک | ایک بڑا ڈھانچہ جس کے اندر آپ کی پوری ایپ بنتی ہے | React، Next.js، Django |
ایک SDK عموماً ایک لائبریری پر مشتمل ہوتا ہے، اور وہ لائبریری عموماً ایک API کو کال کرتی ہے۔ ویب سروس کے لیے “SDK” اور “client library” اکثر ایک دوسرے کی جگہ استعمال ہوتے ہیں۔
کچھ SDKs کا تعلق ویب سروسز سے بالکل نہیں ہوتا۔ Apple اور Google iOS اور Android ایپس بنانے کے لیے SDKs شائع کرتے ہیں، جن میں کمپائلرز، سمیولیٹرز اور پلیٹ فارم کا کوڈ شامل ہوتا ہے۔ خیال وہی ہے: کسی ایک پلیٹ فارم کے لیے بنانے کی ہر ضروری چیز ایک کٹ میں۔
SDK آپ کے لیے کیا کرتا ہے
یہی کام، یعنی ادائیگی فراہم کنندہ پر ایک کسٹمر بنانا، دو طریقوں سے دیکھیں۔
SDK کے بغیر، آپ کے کوڈ کو HTTP درخواست خود بنانی ہوگی: URL سیٹ کرنا، صحیح ہیڈر میں secret key ڈالنا، ڈیٹا کو API کی توقع کے مطابق فارمیٹ کرنا، بھیجنا، اسٹیٹس کوڈ چیک کرنا، جواب پارس کرنا، اور نیٹ ورک میں گڑبڑ ہو تو دوبارہ کوشش سنبھالنا۔
SDK کے ساتھ، یہ تقریباً ایک لائن ہے:
const customer = await stripe.customers.create({ email: "lena@example.com" });
اس لائن کے پیچھے SDK یہ سنبھالتا ہے:
- Authentication: ہر درخواست کے ساتھ آپ کی key درست طریقے سے جوڑنا
- ڈیٹا کی فارمیٹنگ: آپ کے ڈیٹا کو API کی توقع کے مطابق بدلنا، اور جواب کو واپس آبجیکٹس میں بدلنا
- ایررز: اسٹیٹس کوڈز کو واضح ایرر اقسام میں بدلنا جنہیں آپ کا کوڈ پکڑ سکے
- دوبارہ کوشش: عارضی وجوہات سے ناکام درخواست کو محفوظ طریقے سے دوبارہ بھیجنا (کئی سرکاری SDKs یہ کرتے ہیں)
- Types: TypeScript میں، آپ کے ایڈیٹر کو بتانا کہ کون سے فیلڈز موجود ہیں تاکہ کوڈ چلانے سے پہلے ہی غلطیاں نظر آ جائیں
ایک عملی مثال: سپورٹ ایپ میں AI جوابات شامل کرنا
آپ AI بلڈر سے کہتے ہیں: “جب کوئی کسٹمر سپورٹ ٹکٹ بھیجے، تو AI ماڈل کا استعمال کرتے ہوئے تجویز کردہ جواب بناؤ۔”
- AI فراہم کنندہ کا سرکاری SDK آپ کے پروجیکٹ میں پیکج کے طور پر انسٹال کرتا ہے (JavaScript پروجیکٹس پر، npm رجسٹری سے)۔
- آپ API key کو پروجیکٹ secret کے طور پر شامل کرتے ہیں۔ SDK اسے سرور پر ایک environment variable سے پڑھتا ہے۔
- AI ایک سرور روٹ لکھتا ہے جو ٹکٹ کا متن اور ایک مختصر ہدایت کے ساتھ SDK کو کال کرتا ہے، اور تجویز کردہ جواب ڈیٹابیس میں محفوظ کرتا ہے۔
- براؤزر کبھی key نہیں دیکھتا؛ وہ صرف آپ کے اپنے سرور روٹ کو کال کرتا ہے۔
اگر فراہم کنندہ بعد میں اپنا API بدلے، تو عموماً وہ نیا SDK ورژن جاری کرتا ہے۔ پیکج اپ ڈیٹ کرنا، اور breaking changes کے لیے ریلیز نوٹس دیکھنا، اکثر بس اتنا ہی کافی ہوتا ہے۔
اہم اصطلاحات
| اصطلاح | مطلب |
|---|---|
| Dependency | آپ کے پروجیکٹ کا باہر کا کوڈ جس پر وہ انحصار کرتا ہے۔ SDK بھی ایک ہے۔ |
| Package / package manager | کوڈ کا قابلِ ڈاؤن لوڈ بنڈل، اور وہ ٹول جو اسے انسٹال کرتا ہے (JavaScript کے لیے npm، Python کے لیے pip)۔ |
| Client library | ایسا کوڈ جو کسی مخصوص API کو کال کرنا آسان بناتا ہے۔ ویب سروسز کے لیے اکثر یہی “SDK” کا مطلب ہوتا ہے۔ |
| Server-side SDK | آپ کے بیک اینڈ پر چلتا ہے اور secret keys محفوظ طریقے سے استعمال کر سکتا ہے۔ |
| Client-side / browser SDK | صارف کے براؤزر میں چلتا ہے۔ اسے صرف عوامی یا “publishable” keys دی جاتی ہیں۔ |
| Version | ہر SDK ریلیز کا ایک نمبر ہوتا ہے (جیسے 4.2.0)۔ بڑی چھلانگیں اکثر breaking changes کا مطلب ہوتی ہیں۔ |
| Breaking change | ایسا اپ ڈیٹ جس کے لیے آپ کو اپنا کوڈ بدلنا پڑے۔ |
| Changelog / release notes | فراہم کنندہ کی فہرست کہ ہر ورژن میں کیا بدلا۔ |
عام غلط فہمیاں
- “SDK اور API ایک ہی چیز ہیں۔” API سروس کا انٹرفیس ہے؛ SDK اس کے اوپر آسانی کی تہہ ہے۔ زیادہ تر ویب APIs آپ SDK کے بغیر بھی کال کر سکتے ہیں، بس زیادہ کام ہوتا ہے۔
- “اگر SDK انسٹال ہو گیا تو انضمام مکمل ہو گیا۔” آپ کو پھر بھی فراہم کنندہ کا اکاؤنٹ، درست keys، اور وہ کوڈ چاہیے جو ناکامی کی صورت میں سنبھالے۔
- “جس پیکج کا نام درست لگے وہی سرکاری ہے۔” حملہ آور کبھی کبھار ملتے جلتے نام والے جعلی پیکجز شائع کرتے ہیں۔ پیکج کا درست نام فراہم کنندہ کی دستاویزات میں چیک کریں۔
- “براؤزر SDK میری secret key استعمال کر سکتا ہے۔” کبھی نہیں۔ براؤزر کے کوڈ میں جو کچھ ہے وہ زائرین کو نظر آتا ہے۔ Secret keys صرف سرور کے کوڈ میں رہتی ہیں، دیکھیں API keys کیسے محفوظ رکھیں۔
- “SDKs کو کبھی اپ ڈیٹ کی ضرورت نہیں ہوتی۔” پرانے ورژن فکسز وصول کرنا بند کر دیتے ہیں اور فراہم کنندگان پرانے API ورژن ختم کرنے پر آخرکار کام کرنا چھوڑ دیتے ہیں۔
اپنے AI بلڈر سے کیا پوچھیں
- “فراہم کنندہ کا سرکاری SDK استعمال کرو، کسی تیسرے فریق کا ریپر نہیں۔ مجھے درست پیکج کا نام اور انسٹال ہونے والا ورژن بتاؤ۔”
- “SDK صرف سرور پر استعمال کرو، اور key کو environment variable سے پڑھو۔”
- “اس SDK کے کون سے حصے براؤزر میں چلتے ہیں، اور وہ کون سی keys استعمال کرتے ہیں؟”
- “اگر SDK کی کال ناکام ہو یا وقت ختم ہو جائے تو کیا ہوتا ہے؟ صارف کو واضح پیغام دکھاؤ اور ایرر لاگ کرو۔”
- “اس ایپ کے ہر SDK اور پیکج کی فہرست دو جن پر یہ انحصار کرتی ہے، اور ہر ایک کس کام کے لیے ہے۔”
- “دیکھو کہ ہمارے کوئی SDKs پرانے ہیں یا ان میں معلوم سیکیورٹی مسائل ہیں۔”
Mythex میں SDKs
Mythex ایجنٹ آپ کے پروجیکٹ sandbox میں پیکجز انسٹال کر سکتا ہے، اپنے stack کے معمول کے package manager کے ذریعے، جن میں فراہم کنندگان کے SDKs بھی شامل ہیں۔ پیکج کا نام اور وہ فیچر بتائیں جس کے لیے آپ اسے چاہتے ہیں۔ دیکھیں npm پیکجز استعمال کرنا۔ Mythex آپ کی ایپ کے لیے پہلے سے بنے انضمامات کی کوئی کیٹلاگ فراہم نہیں کرتا: آپ فراہم کنندہ کی key کو پروجیکٹ secret کے طور پر محفوظ کرتے ہیں اور ایجنٹ سے کہتے ہیں کہ سرور کی جانب سے سروس کو کال کرے، جیسا کہ کسی بھی API کو انضمام کرنا میں بیان ہے۔
SDKs کے نیچے کی تہہ کے لیے API کیا ہے پڑھیں۔ دو عام SDK پر مبنی فیچرز کے لیے اپنی ایپ میں ادائیگیاں کیسے شامل کریں اور LLM APIs کیسے استعمال کریں دیکھیں۔
سوالات
سادہ الفاظ میں SDK کیا ہے؟
SDK (software development kit) تیار کوڈ، دستاویزات اور ٹولز کا ایک مجموعہ ہے جو کوئی کمپنی اس لیے فراہم کرتی ہے تاکہ ڈیولپرز اس کی سروس یا پلیٹ فارم آسانی سے استعمال کر سکیں۔ ہر درخواست API کو ہاتھ سے لکھنے کے بجائے آپ وہ سادہ فنکشنز کال کرتے ہیں جو SDK پہلے سے فراہم کرتا ہے۔
SDK اور API میں کیا فرق ہے؟
API اس سروس سے بات کرنے کے اصولوں کا مجموعہ ہے، یعنی وہ درخواستیں جو وہ قبول کرتی ہے اور جو جواب دیتی ہے۔ SDK اسی API کے اوپر بنایا گیا ٹول کٹ ہے، عموماً ایک پروگرامنگ زبان کے لیے، جو وہ درخواستیں آپ کے لیے بناتا ہے اور authentication، دوبارہ کوشش اور ڈیٹا فارمیٹ جیسی تفصیلات خود سنبھالتا ہے۔
کیا SDKs مفت ہیں؟
ویب سروسز کے زیادہ تر SDKs ڈاؤن لوڈ کرنے کے لیے مفت اور اوپن سورس ہیں، مگر جس سروس سے وہ جڑتے ہیں وہ استعمال پر چارج کر سکتی ہے۔ Stripe یا OpenAI SDK استعمال کرنا بذات خود مفت ہے؛ اس کے ذریعے کی گئی ادائیگیاں یا AI درخواستیں فراہم کنندہ کی طرف سے بل ہوتی ہیں۔
کیا SDK استعمال کرنا محفوظ ہے؟
فراہم کنندہ کے سرکاری SDKs عموماً اس کی سروس کو کال کرنے کا محفوظ طریقہ ہوتے ہیں، کیونکہ وہ دیکھ بھال میں رہتے ہیں اور سیکیورٹی کی تفصیلات سنبھالتے ہیں۔ انہیں سرکاری پیکج رجسٹری سے انسٹال کریں، اپ ڈیٹ رکھیں، اور ملتے جلتے ناموں والے غیر سرکاری پیکجز سے محتاط رہیں۔