منصوبے کے بارے میں

TinyGo گو میں لکھے گئے پروگراموں کے لیے ایک متبادل کمپائلیشن ٹول چین فراہم کرتا ہے۔ یہ گو لینگویج ٹولز کی لائبریریوں کو LLVM کے ساتھ ملاتا ہے، ان استعمال کے معاملات کو نشانہ بناتا ہے جہاں بائنری سائز، تعیناتی کا ماحول، یا ہارڈویئر کی پابندیاں معیاری کمپائلر کو کم موزوں بناتی ہیں۔ ایمبیڈڈ ڈیولپمنٹ کے لیے، TinyGo میں ہارڈویئر تک رسائی کے لیے ایک `machine` پیکج شامل ہے اور یہ ایک ہی پروگرام کو سپورٹڈ مائیکرو کنٹرولر بورڈز پر ٹارگٹ منتخب کر کے کمپائل اور فلیش کر سکتا ہے، جیسے Arduino Uno، Adafruit Circuit Playground Express، یا Seeed Studio XIAO-ESP32S3۔ یہ پروجیکٹ 150 سے زائد مائیکرو کنٹرولر بورڈز کی سپورٹ درج کرتا ہے۔ WebAssembly کے لیے، TinyGo براؤزر پر مبنی WASM ماڈیولز اور سرورز، ایج ماحول، اور میزبانوں جیسے Fastly Compute، Fermyon Spin، اور wazero کے لیے WASI پروگرام بنا سکتا ہے۔ یہ WASI Preview 1 ٹارگٹس اور ایکسپورٹڈ WASM فنکشنز کو سپورٹ کرتا ہے۔ یہ Linux، macOS، اور Windows کے لیے کمانڈ لائن پروگرام بھی بنا سکتا ہے۔ انسٹالیشن کے اختیارات میں مقامی سیٹ اپ اور ایک Docker کنٹینر شامل ہے، جس میں دستاویزات اور شروعاتی مواد TinyGo ویب سائٹ پر شائع کیا گیا ہے۔ پروجیکٹ کے بیان کردہ اہداف میں چھوٹے بائنریز، وسیع مائیکرو کنٹرولر سپورٹ، WebAssembly کی استعمال کی اہلیت، موثر CGo انٹرآپریبلٹی، اور عام اسٹینڈرڈ لائبریری پیکجز کے ساتھ مطابقت شامل ہے تاکہ بہت سے گو پروگرام بغیر ترمیم کے کمپائل ہو سکیں۔ اس کا مقصد ہر گو پروگرام کو کمپائل کرنا، معیاری `gc` کمپائلر سے ہر کارکردگی کے منظر نامے میں مماثلت رکھنا، یا بنیادی طور پر انتہائی بڑی تعداد میں goroutines کے لیے بہتر بنانا نہیں ہے۔ TinyGo بنیادی طور پر BSD 3-clause لائسنس کے تحت لائسنس یافتہ ہے۔ کچھ درآمد شدہ LLVM کوڈ Apache 2.0 ویرینٹ استعمال کرتا ہے، اور Teensy لائبریریوں سے ماخوذ کوڈ PJRC کا لائسنس استعمال کرتا ہے، جیسا کہ متعلقہ فائل ہیڈرز میں ظاہر کیا گیا ہے۔ کمیونٹی سپورٹ Gophers Slack #TinyGo چینل کے ذریعے دستیاب ہے، اور شراکتیں پروجیکٹ ویب سائٹ پر دستاویزی کی گئی ہیں۔