Deno ပရောဂျက်သည် Node.js နှင့်ဆင်တူသော လုံခြုံသော JavaScript ပလပ်ဖောင်းကို ဖော်ဆောင်နေသည်။

ရနိုင်ပါတယ် စီမံကိန်းထုတ်ပြန်ခြင်း။ Deno ၁.၀ဆာဗာပေါ်တွင်လည်ပတ်သောကိုင်တွယ်ဖန်တီးမှုများကဲ့သို့သောဘရောက်ဆာတစ်ခုနှင့်ချိတ်ဆက်ခြင်းမရှိဘဲအပလီကေးရှင်းများကိုဖွင့်ရန်အသုံးပြုနိုင်သည့် JavaScript နှင့် TypeScript တွင်သီးခြားအက်ပလီကေးရှင်းလုပ်ဆောင်မှုအတွက် Node.js ကဲ့သို့သောပလပ်ဖောင်းကိုပေးဆောင်သည်။ Deno သည် JavaScript အင်ဂျင်ကိုအသုံးပြုသည်။ V8Chromium ပရောဂျက်ကို အခြေခံ၍ Node.js နှင့် ဘရောက်ဆာများတွင်လည်း အသုံးပြုပါသည်။ ပရောဂျက်ကုဒ် ဖြန့်ဝေသည် MIT လိုင်စင်အောက်တွင်။ အဆိုပါပရောဂျက်ကို Ryan Dahl မှတီထွင်နေသည် (Ryan DahlNode.js JavaScript ပလပ်ဖောင်းကို ဖန်တီးသူ။

JavaScript အတွက် runtime အသစ်ဖန်တီးခြင်း၏ အဓိကပန်းတိုင်တစ်ခုမှာ ပိုမိုလုံခြုံသောပတ်ဝန်းကျင်တစ်ခုပေးရန်ဖြစ်သည်။ လုံခြုံရေးကို မြှင့်တင်ရန်အတွက် V8 အင်ဂျင်ကို Rust ဖြင့် ရေးသားထားပြီး၊ အခမဲ့ဝင်ရောက်ခွင့်၊ အချည်းနှီးသော pointer dereferences နှင့် buffer overruns များကဲ့သို့သော အဆင့်နိမ့်မှတ်ဉာဏ်ခြယ်လှယ်မှုမှ ဖြစ်ပေါ်လာသည့် အားနည်းချက်များစွာကို ရှောင်ရှားသည်။ ပိတ်ဆို့ခြင်းမပြုသည့်မုဒ်တွင် တောင်းဆိုမှုများကို လုပ်ဆောင်ရန် ပလပ်ဖောင်းကို အသုံးပြုသည်။ TokioRust နဲ့လည်း ရေးထားတယ်။ Tokio သည် သင့်အား အက်ပလီကေးရှင်းဖြင့် ပေါင်းစပ်ထားသော ဗိသုကာပညာကို အခြေခံ၍ စွမ်းဆောင်ရည်မြင့် အပလီကေးရှင်းများကို ဖန်တီးနိုင်စေကာ၊ ပေါင်းစည်းမှုပေါင်းများစွာနှင့် လုပ်ဆောင်နေသည့် ကွန်ရက်တောင်းဆိုမှုများကို အဆက်မပြတ်လုပ်ဆောင်နေသည့်မုဒ်တွင် ပံ့ပိုးပေးသည်။

အဓိက အင်္ဂါရပ်များ ဒဲနို-

  • လုံခြုံရေးကို ဦးတည်သော ပုံသေဖွဲ့စည်းမှု။ ဖိုင်ဝင်ရောက်ခွင့်၊ ကွန်ရက်ချိတ်ဆက်ခြင်းနှင့် ပတ်ဝန်းကျင် ကိန်းရှင်များသို့ ဝင်ရောက်ခွင့်ကို မူရင်းအားဖြင့် ပိတ်ထားပြီး ပြတ်သားစွာ ဖွင့်ထားရပါမည်။
  • JavaScript အပြင် TypeScript ဘာသာစကားအတွက် built-in ပံ့ပိုးမှု။
  • Runtime သည် ကိုယ်တိုင်ပါရှိသော ဖိုင်တစ်ခုတည်း (“deno”) ပုံစံဖြင့် လာပါသည်။ Deno ကို အသုံးပြု၍ အပလီကေးရှင်းများကို run ရန်လုံလောက်ပါသည်။ download, ၎င်း၏ပလပ်ဖောင်းအတွက် 10 MB အရွယ်အစားခန့်ရှိသော executable file တစ်ခုသည် ပြင်ပမှီခိုမှုများမရှိသည့်အပြင် စနစ်တွင် အထူးထည့်သွင်းမှုမလိုအပ်ပါ။
  • ပရိုဂရမ်ကို စတင်သည့်အခါ အပြင် modules များကို တင်ရန်၊ သင်သည် URL လိပ်စာကို အသုံးပြုနိုင်သည်။ ဥပမာအားဖြင့်၊ welcome.js ပရိုဂရမ်ကိုလည်ပတ်ရန်၊ သင်သည် “deno https://deno.land/std/examples/welcome.js” အမိန့်ကို အသုံးပြုနိုင်သည်။ ပြင်ပအရင်းအမြစ်များမှ ကုဒ်ကို စက်တွင်းစနစ်တွင် ဒေါင်းလုဒ်လုပ်ပြီး သိမ်းဆည်းထားသော်လည်း မည်သည့်အခါမျှ အလိုအလျောက် အပ်ဒိတ်လုပ်မည်မဟုတ်ပါ (အပ်ဒိတ်လုပ်ခြင်းသည် အပလီကေးရှင်းအား “-- ပြန်လည်စတင်ခြင်း” အလံဖြင့် ပြတ်သားစွာ လုပ်ဆောင်ရန် လိုအပ်ပါသည်။
  • အက်ပလီကေးရှင်းများတွင် HTTP မှတစ်ဆင့် ကွန်ရက်တောင်းဆိုမှုများကို ထိရောက်စွာလုပ်ဆောင်ခြင်း၊ ပလပ်ဖောင်းသည် စွမ်းဆောင်ရည်မြင့်ကွန်ရက်အက်ပ်လီကေးရှင်းများဖန်တီးရန်အတွက် ဒီဇိုင်းထုတ်ထားသည်။
  • Deno တွင်သာမက ပုံမှန်ဝဘ်ဘရောက်ဆာတွင် နှစ်ခုလုံးလုပ်ဆောင်နိုင်သည့် universal web applications များကို ဖန်တီးနိုင်စွမ်း၊
  • အပြေးအချိန်အပြင်၊ Deno ပလပ်ဖောင်းသည် ပက်ကေ့ဂျ်မန်နေဂျာအဖြစ် လုပ်ဆောင်ပြီး ကုဒ်အတွင်းရှိ URL ဖြင့် မော်ဂျူးများကို ဝင်ရောက်ကြည့်ရှုခွင့်ပေးသည်။ ဥပမာအားဖြင့်၊ မော်ဂျူးတစ်ခုကို တင်ရန်၊ “https://deno.land/std/log/mod.ts” မှ “တင်သွင်းခြင်း*အဖြစ် မှတ်တမ်းအဖြစ်” ကုဒ်တွင် သတ်မှတ်နိုင်သည်။ URL မှတဆင့် ပြင်ပဆာဗာများမှ ဒေါင်းလုဒ်လုပ်ထားသော ဖိုင်များကို သိမ်းဆည်းထားသည်။ မော်ဂျူးဗားရှင်းများနှင့် ချိတ်ဆက်ခြင်းကို URL အတွင်းရှိ ဗားရှင်းနံပါတ်များကို သတ်မှတ်ခြင်းဖြင့် ဆုံးဖြတ်သည်၊ ဥပမာ၊ “https://unpkg.com/[အီးမေးလ်ကိုကာကွယ်ထားသည်]/dist/liltest.js";
  • ဖွဲ့စည်းပုံတွင် ပေါင်းစပ်မှီခိုမှုစစ်ဆေးခြင်းစနစ် (“deno အချက်အလက်” ညွှန်ကြားချက်) နှင့် ကုဒ်ဖော်မတ်ချခြင်းအတွက် အသုံးဝင်မှုတစ်ခု (deno fmt) ပါဝင်သည်။
  • အပလီကေးရှင်း developer များအတွက် အဆိုပြုသည်။ ထပ်လောင်းစာရင်းစစ်နှင့် လိုက်ဖက်ညီသော စမ်းသပ်ခြင်းများကို ခံယူထားသော စံ modules အစုံ၊
  • အပလီကေးရှင်း Script အားလုံးကို JavaScript ဖိုင်တစ်ခုအဖြစ် ပေါင်းစပ်နိုင်သည်။

Node.js နှင့် ကွာခြားချက်များ-

  • Deno သည် npm ပက်ကေ့ဂျ်မန်နေဂျာကို အသုံးမပြုပါ။
    repositories နှင့် ချိတ်ဆက်ထားခြင်း မဟုတ်ဘဲ၊ module များကို URL တစ်ခု သို့မဟုတ် ဖိုင်လမ်းကြောင်းဖြင့် ကိုင်တွယ်ဖြေရှင်းပြီး modules များကို ၎င်းတို့ကိုယ်တိုင် မည်သည့် website တွင်မဆို ထားရှိနိုင်ပါသည်။

  • မော်ဂျူးများကို သတ်မှတ်ရန် Deno သည် "package.json" ကို အသုံးမပြုပါ။
  • API ခြားနားချက်၊ Deno တွင် အပျက်သဘောဆောင်သည့် လုပ်ဆောင်ချက်များအားလုံးကို ကတိတစ်ခု ပြန်ပေးသည်။
  • Deno သည် ဖိုင်များ၊ ကွန်ရက်နှင့် ပတ်ဝန်းကျင် ကိန်းရှင်များအတွက် လိုအပ်သော ခွင့်ပြုချက်များအားလုံးကို ရှင်းလင်းပြတ်သားစွာ အဓိပ္ပါယ်ဖွင့်ဆိုရန် လိုအပ်ပါသည်။
  • ကိုင်တွယ်သူနှင့် ပံ့ပိုးမထားသော အမှားများအားလုံးသည် လျှောက်လွှာကို ရပ်စဲသွားစေသည်။
  • Deno သည် ECMAScript module system ကိုအသုံးပြုပြီး လိုအပ်သည်() ကို မပံ့ပိုးပါ။

source: opennet.ru

မှတ်ချက် Add