منصوبے کے بارے میں
Iris زبان Go کے لیے ایک ویب فریم ورک ہے۔ README انگریزی میں لکھا گیا ہے اور موجودہ v12 لائن کے ساتھ ساتھ منصوبہ بند v14 ریلیز کا پیش نظارہ پیش کرتا ہے۔
v12 کے لیے بیان کردہ بنیادی صلاحیتیں:
- HTTP/2 سپورٹ، بشمول سرور پش اور ایمبیڈڈ ڈیٹا۔
- ایک راؤٹر جو :uuid، :string اور :int جیسی معیاری اقسام کے ساتھ متحرک پاتھ پیرامیٹرز قبول کرتا ہے، اور کسٹم پیرامیٹر اقسام کی تعریف کی اجازت دیتا ہے۔
- بلٹ ان مڈل ویئر جیسے کہ access log، basic auth، CORS، gRPC، hCaptcha اور reCaptcha اینٹی بوٹ چیکس، JWT، method override، monitor، pprof، rate limit، recovery، request ID اور rewrite۔
- API ورژننگ، Model-View-Controller (mvc پیکیج) اور MVC، ہینڈلرز اور API راؤٹرز کے لیے ڈیپینڈینسی انجکشن۔
- WebSockets، gRPC اور خودکار HTTPS۔
- مقامی ایپ کو انٹرنیٹ پر ظاہر کرنے کے لیے بلٹ ان ngrok سپورٹ۔
- رسپانس کمپریشن (gzip, deflate, brotli, snappy, s2) اور ایک Compression مڈل ویئر۔
- ویو انجن جن میں HTML، Django، Handlebars اور Pug/Jade شامل ہیں۔
- کسٹم فائل سرورز اور ایک WebDAV سرور۔
- کیش، بین الاقوامیت (i18n, sitemap)، سیشنز اور ایک ٹیسٹنگ سویٹ۔
- بھرپور رسپانسز: HTML، ٹیکسٹ، Markdown، XML، YAML، بائنری، JSON، JSONP، Protocol Buffers، MessagePack، مواد کی بات چیت (content negotiation)، اسٹریمنگ اور سرور سینٹ ایونٹس۔
- بھرپور ریکوسٹ بائنڈنگ: URL کوئری، ہیڈرز، فارم، ٹیکسٹ، XML، YAML، بائنری، JSON، ویلیڈیشن، Protocol Buffers اور MessagePack۔
- README میں موجود کوڈ کی مثالیں iris.New() کے ساتھ بنائی گئی ایک سادہ ایپ، app.Get کے ذریعے رجسٹرڈ روٹ، اور app.Listen(":8080") کو ظاہر کرتی ہیں۔
README میں بتایا گیا ہے کہ _examples ڈائریکٹری میں 285 مثالیں دستیاب ہیں اور کمیونٹی چیٹ اور عطیات کے صفحات کے لنکس دیے گئے ہیں۔
منصوبہ بند v14 (جسے پروجیکٹ کی تاریخ کی سب سے بڑی ریلیز قرار دیا گیا ہے، جس کی کوئی عوامی ریلیز کی تاریخ نہیں ہے اور ایک نیا امپورٹ پاتھ ہے تاکہ v12 کوڈ متاثر نہ ہو):
- ایک کمپائل چیکڈ ایپلی کیشن بلڈر (iris.NewBuilder) جو CORS، کمپریشن، ایکسیس لاگنگ، ہیلتھ اینڈ پوائنٹ، ایرر میپنگ، سروسز اور API گروپس کو ایک زنجیر میں ترتیب دیتا ہے جس میں مراحل کی ترتیب لازمی ہے۔
- rest ہیلپرز جیسے کہ rest.ReadJSON[T], rest.OK, rest.NoContent, rest.Count, rest.Created اور rest.Paginated جو ڈی کوڈنگ، ویلیڈیشن اور ایرر رینڈرنگ کو ہینڈلر باڈیز سے باہر منتقل کرتے ہیں۔
- ایک rest/errors پیکیج تاکہ ڈومین ایرر سے HTTP رسپانس میپنگ ایک بار declared کی جا سکے، جس میں لاگنگ اور JSON یا ویو کے طور پر رینڈرنگ کے لیے اختیاری کلیکٹرز شامل ہیں۔
- MVC سے آگے ڈیپینڈینسی انجکشن دستیاب ہے، جس میں Build() کے دوران چلنے والا ایک Init(ctx) ہک اور شٹ ڈاؤن پر بند ہونے والے ریسورسز شامل ہیں؛ hero پیکیج کو dep اور rest سے تبدیل کر دیا گیا ہے۔
- پیکیج کی نقل مکانی: sessions, cache, websocket, i18n, view اور versioning اب مڈل ویئر بن جائیں گے؛ mvc اب fileserver, sitemap اور apigraph کنٹرولرز کے ساتھ controller کے تحت آئے گا؛ ویو انجن کی نافذ العمل iris-contrib/views میں منتقل ہو جائیں گے۔
- تقریباً تیس بنڈل شدہ مڈل ویئر، بشمول نئے مڈل ویئر جیسے کہ httpcost (فی ریکوسٹ وقت، میموری اور CPU)، bodylimit, compress, counter, referrer, geolocation, ipaccess اور servertiming۔
- iris.Options پارشل لٹرلز کے ذریعے کنفیگریشن، جس میں Bind ماحول کے متغیر SERVER_CONFIG یا فائل سے YAML لوڈ کرتا ہے۔
- ناموں کی تبدیلی جیسے Party کو Router اور ctx.URLParam کو ctx.Query().Get میں تبدیل کیا گیا ہے، جس کی تفصیل مائیگریشن گائیڈ میں موجود ہے۔
- ڈیفالٹ طور پر محفوظ سیشن کوکیز (Secure, SameSite=Lax)، ہر ریڈ پاتھ پر ریکوسٹ باڈی کی حدود، اور ریٹ لمٹینگ اور Logout میں پہلے سے بیان کردہ مسائل کی اصلاح۔
- دستاویزات کا منصوبہ ریپوزٹری میں 23 ابواب کی کتاب، ایک گائیڈ، v12 مائیگریشن گائیڈ، اور ایک جنریٹڈ ویکی کے طور پر ہے۔
README میں Iris کو تیز، سادہ لیکن مکمل خصوصیات والا فریم ورک قرار دیا گیا ہے، اور طویل مدتی کمیونٹی سپورٹ پر زور دیا گیا ہے؛ یہ پیمائش کی رپورٹ کرنے کے بجائے بیرونی بینچ مارک اور تعریفی صفحات کے لنکس فراہم کرتا ہے۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.