Redbean 2.0 ویب ایپلیکیشنز کے لیے ایک پلیٹ فارم ہے جو ایک عالمگیر قابل عمل زپ آرکائیو میں پیک کیا گیا ہے

Redbean 2.0 پروجیکٹ کی ریلیز پیش کی گئی ہے، ایک ویب سرور پیش کرتا ہے جو آپ کو ویب ایپلیکیشنز کو یونیورسل ایگزیکیوٹیبل فائل کی شکل میں ڈیلیور کرنے کی اجازت دیتا ہے جسے لینکس، ونڈوز، میک او ایس، فری بی ایس ڈی، نیٹ بی ایس ڈی اور اوپن بی ایس ڈی پر عمل میں لایا جاسکتا ہے۔ ویب ایپلیکیشن اور سرور سے وابستہ تمام وسائل ایک واحد قابل عمل فائل میں مرتب کیے گئے ہیں، جو زپ آرکائیو فارمیٹ کے ساتھ مطابقت رکھتی ہے اور آپ کو اضافی فائلیں شامل کرنے کے لیے زپ یوٹیلیٹی استعمال کرنے کی اجازت دیتی ہے۔ ایک فائل کو مختلف OS پر چلانے اور اسے زپ آرکائیو کے طور پر تسلیم کرنے کی قابلیت قابل عمل فائل ہیڈرز کو جوڑ کر اور ملٹی پلیٹ فارم معیاری C لائبریری کاسموپولیٹن کے ساتھ لنک کرکے حاصل کی جاتی ہے۔ پروجیکٹ کوڈ ISC لائسنس کے تحت تقسیم کیا جاتا ہے۔

پروجیکٹ کا خیال ایک بلٹ ان ویب سرور کے ساتھ ایک قابل عمل فائل "redbean.com" فراہم کرنا ہے۔ ایک ویب ایپلیکیشن ڈویلپر زپ یوٹیلیٹی کو اس فائل میں ایچ ٹی ایم ایل اور لوا فائلوں کو شامل کرنے کے لیے استعمال کر سکتا ہے اور ایک خود ساختہ ویب ایپلیکیشن حاصل کر سکتا ہے جو تمام مشہور آپریٹنگ سسٹمز پر چلتا ہے اور اسے سسٹم پر چلانے کے لیے علیحدہ ویب سرور کی ضرورت نہیں ہوتی ہے۔

نتیجے میں قابل عمل فائل کو لانچ کرنے کے بعد، بلٹ ان ویب سرور فائل میں محفوظ کردہ ویب ایپلیکیشن تک رسائی کے لیے استعمال کیا جاتا ہے۔ پہلے سے طے شدہ طور پر، ہینڈلر لوکل ہوسٹ سے منسلک ہوتا ہے، لیکن سرور کو باقاعدہ پبلک ویب سرور کے طور پر بھی استعمال کیا جا سکتا ہے (مثال کے طور پر، یہ سرور پروجیکٹ کی ویب سائٹ کو پیش کرتا ہے)۔ بلٹ ان ویب سرور HTTPS رسائی کو سپورٹ کرتا ہے اور اسے سینڈ باکس آئسولیشن کا استعمال کرتے ہوئے عمل میں لایا جا سکتا ہے، جو آپ کو کنٹرول کرنے کی اجازت دیتا ہے کہ کون سے سسٹم انٹرفیس تک رسائی حاصل ہے۔ اس کے عمل کے دوران سرور کے آپریشن کو کنٹرول کرنے کے لیے، ایک انٹرایکٹو REPL انٹرفیس فراہم کیا جاتا ہے (Lua REPL اور bestline لائبریری پر مبنی، GNU Readline کا ایک اینالاگ)، جو عمل کی حالت کو انٹرایکٹو طریقے سے تبدیل کرنا ممکن بناتا ہے۔

یہ دعوی کیا جاتا ہے کہ ویب سرور ایک عام پی سی پر ایک ملین سے زیادہ درخواستوں کو فی سیکنڈ پروسیس کرنے کی صلاحیت رکھتا ہے، gzip-کمپریسڈ مواد پیش کرتا ہے۔ کارکردگی میں جو چیز مدد کرتی ہے وہ یہ ہے کہ زپ اور جیزپ ایک مشترکہ فارمیٹ کا استعمال کرتے ہیں، لہذا زپ فائل میں پہلے سے کمپریسڈ ایریاز سے دوبارہ پیک کیے بغیر ڈیٹا پیش کیا جاتا ہے۔ مزید برآں، چونکہ ایگزیکیوٹیبل کو سٹیٹک لنکنگ کا استعمال کرتے ہوئے بنایا گیا ہے اور یہ سائز میں چھوٹا ہے، اس لیے اس پر کالنگ فورک سے کوئی میموری اوور ہیڈ کا تعارف نہیں ہوتا ہے۔

جامد ویب مواد پر کارروائی کرنے اور براؤزر میں JavaScript کو چلانے کے علاوہ، Lua، Fullmoon ویب فریم ورک اور SQLite DBMS میں اسکرپٹس کا استعمال کرتے ہوئے ویب ایپلیکیشن منطق کو بڑھایا جا سکتا ہے۔ اضافی خصوصیات میں argon2 پاس ورڈ ہیشنگ اسکیم کے لیے سپورٹ، MaxMind ڈیٹا بیس کا استعمال کرتے ہوئے IP ریجن کا تعین کرنے کی صلاحیت، اور Cosmopolitan لائبریری کے Unix API تک رسائی شامل ہے۔ بنیادی اسٹیک کا سائز، جس میں ایک ویب سرور، MbedTLS، Cosmopolitan، Lua اور SQLite شامل ہے، صرف 1.9 MB ہے۔

ایک فائل میں مختلف آپریٹنگ سسٹمز (PE، ELF، MACHO، OPENBSD، ZIP) کے لیے مخصوص حصوں اور ہیڈرز کو ملا کر ایک عالمگیر قابل عمل فائل بنائی جاتی ہے۔ اس بات کو یقینی بنانے کے لیے کہ ایک ہی قابل عمل فائل ونڈوز اور یونکس سسٹم پر چلتی ہے، ایک چال یہ ہے کہ ونڈوز پی ای فائلوں کو شیل اسکرپٹ کے طور پر انکوڈ کیا جائے، اس حقیقت کا فائدہ اٹھاتے ہوئے کہ تھامسن شیل "#!" اسکرپٹ مارکر استعمال نہیں کرتا ہے۔ نتیجہ ایک قابل عمل فائل ہے جو لینکس، بی ایس ڈی، ونڈوز اور میک او ایس میں استعمال ہونے والے کئی مختلف فارمیٹس کو یکجا کرتی ہے۔ $ curl https://redbean.dev/redbean-demo-2.0.7.com >redbean.com $chmod +x redbean.com $zip redbean.com hello.html $zip redbean.com hello.lua $ ./redbean .com -vv I2022-06-23T08:27:14+000767:redbean] (srvr) سنیں http://127.0.0.1:8080 >: کمانڈ کا انتظار… $ curl https://127.0.0.1:8080/hello .html ہیلو $ printf 'GET /hello.lua\n\n' | nc 127.0.0.1 8080 ہیلو



ماخذ: opennet.ru

نیا تبصرہ شامل کریں