Redbean 2.0 သည် universal executable ZIP archive တွင်ထုပ်ပိုးထားသောဝဘ်အပလီကေးရှင်းများအတွက်ပလပ်ဖောင်းတစ်ခုဖြစ်သည်။

Redbean 2.0 ပရောဂျက်၏ ထုတ်ဝေမှုသည် Linux၊ Windows၊ MacOS၊ FreeBSD၊ NetBSD နှင့် OpenBSD တွင် လုပ်ဆောင်နိုင်သည့် universal executable ဖိုင်ပုံစံဖြင့် ဝဘ်အက်ပလီကေးရှင်းများကို ပေးပို့ခွင့်ပြုသည့် ဝဘ်ဆာဗာကို တင်ဆက်ထားသည်။ ဝဘ်အပလီကေးရှင်းနှင့် ဆာဗာနှင့်ဆက်စပ်သည့် အရင်းအမြစ်အားလုံးကို ZIP archive ဖော်မတ်နှင့် တွဲဖက်အသုံးပြုနိုင်သည့် တစ်ခုတည်းသော လည်ပတ်နိုင်သောဖိုင်အဖြစ် စုစည်းထားပြီး အပိုဖိုင်များထည့်ရန် ဇစ် အသုံးဝင်မှုကို အသုံးပြုနိုင်သည်။ မတူညီသော OS များတွင် ဖိုင်တစ်ဖိုင်ကို run နိုင်ပြီး ZIP မှတ်တမ်းအဖြစ် အသိအမှတ်ပြုခံရခြင်းသည် executable file headers များကို ကြိုးကိုင်ပြီး multi-platform standard C library Cosmopolitan နှင့် ချိတ်ဆက်ခြင်းဖြင့် အောင်မြင်သည်။ ပရောဂျက်ကုဒ်ကို ISC လိုင်စင်အောက်တွင် ဖြန့်ဝေထားသည်။

ပရောဂျက်၏ စိတ်ကူးမှာ တပ်ဆင်ထားသော ဝဘ်ဆာဗာတစ်ခုနှင့် လည်ပတ်နိုင်သော “redbean.com” ဖိုင်တစ်ခုကို ထောက်ပံ့ပေးရန်ဖြစ်သည်။ ဝဘ်အပလီကေးရှင်းဆော့ဖ်ဝဲရေးသားသူသည် ဤဖိုင်တွင် HTML နှင့် Lua ဖိုင်များကိုထည့်ရန် zip utility ကိုသုံးနိုင်ပြီး လူကြိုက်များသောလည်ပတ်မှုစနစ်အားလုံးတွင်အလုပ်လုပ်ပြီးစနစ်ပေါ်တွင်လည်ပတ်ရန်သီးခြားဝဘ်ဆာဗာမလိုအပ်သောကိုယ်ပိုင်ပါရှိသောဝဘ်အပလီကေးရှင်းကိုရနိုင်သည်။

ထွက်ပေါ်လာသော executable ဖိုင်ကို စတင်ပြီးနောက်၊ ဖိုင်တွင်သိမ်းဆည်းထားသော ဝဘ်အက်ပ်ကို ဝင်ရောက်ရန်အတွက် တပ်ဆင်ထားသော ဝဘ်ဆာဗာကို အသုံးပြုသည်။ ပုံမှန်အားဖြင့်၊ ကိုင်တွယ်သူကို localhost နှင့် ချိတ်ဆက်ထားသော်လည်း ဆာဗာကို ပုံမှန် အများသူငှာ ဝဘ်ဆာဗာအဖြစ်လည်း သုံးနိုင်သည် (ဥပမာ၊ ဤဆာဗာသည် ပရောဂျက်ဝဘ်ဆိုဒ်ကို ဆောင်ရွက်ပေးသည်)။ built-in ဝဘ်ဆာဗာသည် HTTPS အသုံးပြုခွင့်ကို ပံ့ပိုးပေးပြီး မည်သည့်စနစ် အင်တာဖေ့စ်များကို သင်ဝင်ရောက်သည်ကို ထိန်းချုပ်နိုင်စေမည့် sandbox isolation ကို အသုံးပြု၍ လုပ်ဆောင်နိုင်သည်။ ၎င်း၏လုပ်ဆောင်မှုအတွင်း ဆာဗာ၏လည်ပတ်မှုကို ထိန်းချုပ်ရန်၊ အပြန်အလှန်အကျိုးသက်ရောက်သော REPL မျက်နှာပြင်ကို (Lua REPL နှင့် အကောင်းဆုံးလိုင်းစာကြည့်တိုက်၊ GNU Readline ၏ analogue) ကိုအခြေခံ၍ လုပ်ငန်းစဉ်၏အခြေအနေကို အပြန်အလှန်အကျိုးသက်ရောက်စွာပြောင်းလဲနိုင်စေသည်။

ဝဘ်ဆာဗာသည် ပုံမှန် PC တစ်ခုတွင် gzip ချုံ့ထားသော အကြောင်းအရာကို ဆောင်ရွက်ပေးသည့် တစ်စက္ကန့်လျှင် တောင်းဆိုချက်ပေါင်း တစ်သန်းကျော်ကို လုပ်ဆောင်နိုင်သည်ဟု အခိုင်အမာဆိုထားသည်။ စွမ်းဆောင်ရည်ကို အထောက်အကူဖြစ်စေသည်မှာ ဇစ်နှင့် gzip သည် ဘုံဖော်မတ်တစ်ခုဖြစ်ပြီး၊ ထို့ကြောင့် ဇစ်ဖိုင်ရှိ ချုံ့ထားသောနေရာများမှ ပြန်လည်ထုပ်ပိုးခြင်းမပြုဘဲ ဒေတာကို ဆောင်ရွက်ပေးပါသည်။ ထို့အပြင်၊ executable သည် static linking ကို အသုံးပြု၍ ဖန်တီးထားပြီး အရွယ်အစားသေးငယ်သောကြောင့်၊ ၎င်းတွင် fork ကိုခေါ်ဆိုခြင်းသည် memory overhead အနည်းငယ်မျှသာဖြစ်သည်။

တည်ငြိမ်သောဝဘ်အကြောင်းအရာကိုလုပ်ဆောင်ခြင်းနှင့် browser တွင် JavaScript ကိုလုပ်ဆောင်ခြင်းအပြင်၊ Lua ၊ Fullmoon ဝဘ်ဘောင်နှင့် SQLite DBMS တွင် scripts များကိုအသုံးပြု၍ ဝဘ်အပလီကေးရှင်းယုတ္တိဗေဒကို တိုးချဲ့နိုင်သည်။ ထပ်လောင်းအင်္ဂါရပ်များတွင် argon2 စကားဝှက် ဟက်ခြင်းအစီအစဉ်အတွက် ပံ့ပိုးမှု၊ MaxMind ဒေတာဘေ့စ်ကို အသုံးပြု၍ IP ဒေသကို ဆုံးဖြတ်နိုင်မှုနှင့် Cosmopolitan စာကြည့်တိုက်၏ Unix API သို့ ဝင်ရောက်ခွင့်တို့ ပါဝင်သည်။ ဝဘ်ဆာဗာ၊ MbedTLS၊ Cosmopolitan၊ Lua နှင့် SQLite တို့ပါ၀င်သည့် အခြေခံ stack ၏အရွယ်အစားသည် 1.9 MB သာရှိသည်။

universal executable ဖိုင်ကို ဖိုင်တစ်ခုတည်းတွင် မတူညီသောလည်ပတ်မှုစနစ်များ (PE, ELF, MACHO, OPENBSD, ZIP) ၏ အပိုင်းများနှင့် ခေါင်းစီးများကို ပေါင်းစပ်ခြင်းဖြင့် ဖွဲ့စည်းထားသည်။ တစ်ခုတည်းသော executable file သည် Windows နှင့် Unix စနစ်များပေါ်တွင် run ကြောင်းသေချာစေရန်၊ Thompson Shell သည် “#!” script marker ကိုအသုံးမပြုသည့်အချက်ကိုအခွင့်ကောင်းယူပြီး Windows PE ဖိုင်များကို shell script အဖြစ် encode လုပ်ရန်ဖြစ်သည်။ ရလဒ်မှာ Linux၊ BSD၊ Windows နှင့် macOS တို့တွင် အသုံးပြုသည့် မတူညီသည့်ဖော်မတ်များစွာကို ပေါင်းစပ်ထားသည့် executable file တစ်ခုဖြစ်သည်။ $cur 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 >: waiting for command… $cur https://127.0.0.1:8080/hello .html မင်္ဂလာပါ $printf 'GET /hello.lua\n\n' | nc 127.0.0.1 8080 မင်္ဂလာပါ။



source: opennet.ru

မှတ်ချက် Add