Deno 1.28 ááẠserver-side handlers áá»á¬ážáááºáá®ážááẠá¡áá¯á¶ážááŒá¯ááá¯ááºááá·áº sandboxing JavaScript ááŸáá·áº TypeScript á¡ááá®áá±ážááŸááºážáá»á¬ážá¡ááœáẠáá°áá±á¬ááºáá áºáá¯ááŒá áºáááºá ááááºáá±á¬ááºážááᯠNode.js áááºáá®ážáá° Ryan Dahl á áá®ááœááºáááºá Node.js áá²á·ááá¯á·áááºá Deno ááẠChromium á¡ááŒá±áᶠááá±á¬ááºáá¬áá»á¬ážááœááºáááºáž á¡áá¯á¶ážááŒá¯ááá·áº V8 JavaScript á¡ááºáá»ááºááᯠá¡áá¯á¶ážááŒá¯áááºá áá áºáá»áááºáááºážááŸá¬áááºá Deno ááẠNode.js ááááºážáá¯á¶áá áºáá¯ááá¯ááºáá±á¬áºáááºáž á¡á ááŸáááºáá®ážáá¬ážáá±á¬ ááá±á¬áá»ááºá¡áá áºááŒá áºáááºá ááá±á¬áá»ááºáá¯ááºááᯠMIT ááá¯ááºá ááºá¡á±á¬ááºááœáẠááŒáá·áºáá±áá¬ážáááºá áááºáá±á¬ááºááŸá¯áá»á¬ážááᯠLinuxá Windows ááŸáá·áº macOS á¡ááœáẠááŒááºáááºáá¬ážáá«áááºá
Deno ááá±á¬áá»ááºááẠáá¯á¶ážá áœá²áá°áá»á¬ážá¡á¬áž ááá¯ááá¯áá¯á¶ááŒá¯á¶áá±á¬áááºáááºážáá»ááºáá áºáá¯áá±ážáááºááŸáá·áº Node.js áááá¯áá¬ááœáẠá¡áá°á¡áá¡ááŸá¬ážáá»á¬ážááᯠáááºááŸá¬ážááẠáááºáá®ážáá¬ážáááºá áá¯á¶ááŒá¯á¶áá±áž ááá¯ááá¯áá±á¬ááºážááœááºá á±ááẠV8 á¡ááºáá»ááºááᯠá¡ááá·áºáááá·áºááŸááºáá¬áẠááŒááºááŸááºááŸá¯á០ááŒá áºáá±á«áºáá¬ááá·áº á¡á¬ážáááºážáá»ááºáá»á¬ážá áœá¬ááᯠááŸá±á¬ááºááŸá¬ážááá·áº Rust ááŒáá·áº áá±ážáá¬ážáá¬ážáááºá ááááºááá¯á·ááŒááºážáááŒá¯ááá·áºáá¯ááºááœáẠáá±á¬ááºážááá¯ááŸá¯áá»á¬ážááᯠáá¯ááºáá±á¬ááºááẠRust ááŒáá·áº áá±ážáá¬ážáá¬ážáá±á¬ Tokio ááááºáá±á¬ááºážááᯠá¡áá¯á¶ážááŒá¯áááºá Tokio ááẠááá·áºá¡á¬áž á¡ááºááá®áá±ážááŸááºážááŒáá·áº áá±á«ááºážá ááºáá¬ážáá±á¬ áááá¯áá¬ááá¬ááᯠá¡ááŒá±áá¶á á áœááºážáá±á¬ááºáááºááŒáá·áº á¡ááá®áá±ážááŸááºážáá»á¬ážááᯠáááºáá®ážááá¯ááºá á±áá¬á áá±á«ááºážá ááºážááŸá¯áá±á«ááºážáá»á¬ážá áœá¬ááŸáá·áº áá¯ááºáá±á¬ááºáá±ááá·áº ááœááºáááºáá±á¬ááºážááá¯ááŸá¯áá»á¬ážááᯠá¡áááºáááŒááºáá¯ááºáá±á¬ááºáá±ááá·áºáá¯ááºááœáẠáá¶á·ááá¯ážáá±ážáááºá
á¡áá áºááœááºááŸáááŸá¯ááœáẠá¡áááááŒá±á¬ááºážáá²ááŸá¯ááŸá¬ NPM repository ááœáẠááá·áºááœááºážáá¬ážáá±á¬ áááºáá±á·áá»áºáá»á¬ážááŸáá·áº ááá¯ááºáááºáá®ááŸá¯ááᯠáááºááŒáááºá á±ááŒááºážááŒá áºááŒá®áž Deno ááẠNode.js ááááºáá±á¬ááºážá¡ááœáẠáááºáá®ážáá¬ážáá±á¬ module 1.3 áááºážáá»á±á¬áºááᯠá¡áá¯á¶ážááŒá¯ááœáá·áºáá±ážáááºá á¥ááá¬á¡á¬ážááŒáá·áºá Deno-based á¡ááá®áá±ážááŸááºážáá»á¬ážááẠPrismaá Mongoose ááŸáá·áº MySQL áá²á·ááá¯á·áá±á¬ ááŒá²ááŒá¶áá±á¬áá±áá¬áááºáá±á¬ááºááœáá·áº module áá»á¬ážááᯠááá¯á¡áá¯á¶ážááŒá¯ááá¯ááºááá·áºá¡ááŒáẠReact ááŸáá·áº Vue áá²á·ááá¯á·áá±á¬ ááŸá±á·áá¯á¶ážáá±á¬ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºáá«áááºá á¥ááá¬á¡á¬ážááŒáá·áºá package.json ááá¯ááºáá²á·ááá¯á·áá±á¬ Node.js áá®ážááá·áºáááºáááºážáá»ááºááŒááºá ááºáá»á¬ážááŸáá·áº áá»áááºáááºááŸá¯áá»á¬ážááŒá±á¬áá·áº á¡áá»áá¯á· NPM áá±á¬áºáá»á°ážáá»á¬ážááẠDeno ááŸáá·áº áááá¯ááºáá®áá±ážáá«á NPM module áá»á¬ážááŒáá·áº "deno compile" command ááᯠá¡áá¯á¶ážááŒá¯ááẠáááŒá áºááá¯ááºáá±ážáá«á á€áááá¯ááºáá®ááŸá¯áá»á¬ážááŸáá·áº ááá·áºáááºáá»ááºáá»á¬ážááᯠááŒá±ááŸááºážááẠá¡áá¬áááºáá¯ááºáá±ááŸá¯á¡á á®á¡á ááºá
Deno áááááºá¡áá¯á¶ážááŒá¯áá¬ážáá±á¬ ECMAScript áá±á¬áºáá»á°ážá áá áºá¡ááœáẠáá¶á·ááá¯ážááŸá¯ááŸáá·áº Web API áá±á¬áºáááºááᯠáá°áá®áá±á¬á¡ááá·áºááœáẠáááºáááºáá¬ážááŸááááºááŒá áºááŒá®áž Deno á áááºážááŸá®ážáá±á¬ URL-based loading scheme ááᯠNPM module áá»á¬ážáááºááœááºážáááºá¡ááœáẠá¡áá¯á¶ážááŒá¯áá«áááºá NPM áá±á¬áºáá»á°ážáá»á¬ážááᯠáááºáá±á¬ááºááŒáá·áºááŸá¯áááºá áá¯á¶ááŸáẠDeno module áá»á¬ážáá²á·ááá¯á·ááẠá¡áá¯á¶ážááŒá¯ááá¯ááºááá·áº á¡áá°áž URL ááŸá±á·ááẠânpm:â ááŸááá«áááºá á¥ááá¬á¡á¬ážááŒáá·áºá NPM module áá áºáá¯ááá¯áááºááœááºážáááºá áááºááẠ"npm:chalk@5" á០'import { chalk }' ááᯠáááºááŸááºááá¯ááºááŒá®áž command line á០NPM script ááᯠrun ááẠ- "deno run --allow-env --allow npm:create- vite-extra ááá¯áááºáá«á"
Deno ááœáẠNPM áááºáá±á·áá»áºáá»á¬ážááá¯á¡áá¯á¶ážááŒá¯ááŒááºážááẠNode.js áááºááá¯ááá¯ááœááºáá°áááºá á¡áááºááŒá±á¬áá·áºááá¯áá±á¬áº modules áá»á¬ážááá¯ááŒáá¯áááºááá·áºááœááºážáááºáááá¯á¡ááºáá±á¬ááŒá±á¬áá·áº (á¡ááá®áá±ážááŸááºážááá¯á áááºáá±á¬á¡áá«ááœáẠmodule áá»á¬ážááá¯ááá·áºááœááºážáá¬ážáááº) package.json ááá¯ááºáááŸááá«á ááŸáá·áº default node_modules áááŸááá«á áááºážááœáŸáẠ(modules áá»á¬ážááᯠáá»áŸáá±áá¬ážáá±á¬ directory ááœáẠááááºážáááºážáá¬ážáá±á¬áºáááºážá "--node-modules-dir" option ááᯠá¡áá¯á¶ážááŒá¯á á¡áá°á¡áá»áá·áºáá±á¬ááºážááᯠááŒááºáá±ážááá¯ááºáááº)á
NPM-based á¡ááá®áá±ážááŸááºážáá»á¬ážááẠDeno ááááºáá±á¬ááºááœáá·áºááááºážáá»á¯ááºááŸá¯á á¡áá®ážáá»ááºááŸá¯ááŸáá·áº áá¯á¶ááŒá¯á¶áá±áž-ááááá¯ááºááœááºáá±á¬á¡ááá·áºááŒáá·áºá áœááºážáá±á¬ááºáááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºá áœááºážááᯠáááºáááºááááºážááááºážáá¬ážáááºá áá¶ááááŒá áºááœááºááŸá®ááá¯ááŸá¯áá»á¬ážááŸáá áºááá·áº ááá¯ááºááá¯ááºááŸá¯áá»á¬ážááᯠáááºááŒááºáááºá Deno ááẠááŸá®ááá¯ááŸá¯áá»á¬ážá០á áá áºááá¯á·áááºáá±á¬ááºááœáá·áºáááẠááŒáá¯ážáááºážááŸá¯á¡á¬ážáá¯á¶ážááᯠáá¯á¶áá±á¡á¬ážááŒáá·áº ááááºááá¯á·áá¬ážááŒá®áž ááœá±á·ááŸááááá·áºááŒá¿áá¬áá»á¬ážá¡ááŒá±á¬ááºáž ááááá±ážáá»ááºááŒááááºá á¥ááá¬á¡á¬ážááŒáá·áºá áá±á¬áºáá»á°ážáá áºáá¯ááẠ/usr/bin/ ááá¯á· á á¬áá±ážáááºáá±á¬ááºááœáá·áºáááẠááŒáá¯ážáááºážáá±á¬á¡áá«á á€áá¯ááºáá±á¬ááºáá»ááºá¡ááœáẠá¡áááºááŒá¯áá»ááºáá±á¬ááºážááá¯áá»ááºáá áºáá¯ááᯠááŒááá«áááº- deno run npm:install-malware â ïž â Deno áá±á¬ááºážááá¯áá»ááºáá»á¬áž /usr/bin/ ááá¯á· á á¬áá±ážáááºáá±á¬ááºááœáá·áºááᯠááŒááá«áááºá â `install-malware` á០áá±á¬ááºážááá¯áá¬ážááẠâ á€á¡áá»ááºááᯠáá»á±á¬áºááœáŸá¬ážááẠ--allow-write ááŒáá·áº áááºáá¶áá¯ááºáá±á¬ááºáá«á â ááœáá·áºááŒá¯ááá¬ážá [y/n] (y = yes, allow; n = no, deny) >
áá¬ážááŸááºážá¡áá áºááœáẠNPM ááá¯ááºáá±á¬ ááá¯ážáááºááŸá¯áá»á¬ážááœáẠ8 áá¯ááºáá±ážáááºá¡ááœáẠV10.9 á¡ááºáá»ááºááᯠá¡ááºááááºáá¯ááºááŒááºážá áá±á¬á·áááºáá¬ážáá±á¬ááá¯ááºáá»á¬ážááᯠá¡ááá¯á¡áá»á±á¬ááºááŸá¬ááœá±ááŒááºážá Deno.bench(), Deno.gid(), Deno.networkInterfaces(), Deno.systemMemoryInfo() ááŸáá·áº Deno API áá»á¬ážá .uid()á ááœáŸááºááŒá¬ážáá»ááºáá»á¬áž áá¯ááºáá±á¬ááºáááºá¡ááœáẠááááºáááŒááẠAPI á¡áá ẠDeno.Command() ááᯠááá·áºááœááºážááŒááºáž (Deno.spawná Deno.spawnSync ááŸáá·áº Deno.spawnChild á¡ááœáẠuniversal á¡á á¬ážááá¯ážááŸá¯)á
Deno áá¡áááá¡ááºá¹áá«áááºáá»á¬áž
- áá¯á¶ááŒá¯á¶áá±ážááᯠáŠážáááºáá±á¬ áá¯á¶áá±ááœá²á·á ááºážááŸá¯á ááá¯ááºáááºáá±á¬ááºááœáá·áºá ááœááºáááºáá»áááºáááºááŒááºážááŸáá·áº áááºáááºážáá»áẠááááºážááŸááºáá»á¬ážááá¯á· áááºáá±á¬ááºááœáá·áºááᯠáá°áááºážá¡á¬ážááŒáá·áº ááááºáá¬ážááŒá®áž ááŒááºáá¬ážá áœá¬ ááœáá·áºáá¬ážááá«áááºá áá¯á¶ááŸááºá¡á¬ážááŒáá·áº á¡ááá®áá±ážááŸááºážáá»á¬ážááẠáá®ážááŒá¬ážáá²áá¯á¶ážáááºáááºážáá»ááºáá»á¬ážááœáẠáááºáááºáá±ááŒá®áž áááá»ááŒááºáá¬ážáá±á¬ ááœáá·áºááŒá¯áá»ááºáá»á¬ážááᯠááá±ážáá² á áá áºáá¯ááºáá±á¬ááºááá¯ááºá áœááºážáá»á¬ážááᯠáááºáá±á¬ááºááŒáá·áºááŸá¯ááá¯ááºáááºááá¯ááºáá±á
- JavaScript á¡ááŒáẠTypeScript á¡ááœáẠbuilt-in áá¶á·ááá¯ážááŸá¯á á¡áá»áá¯ážá¡á á¬ážá á áºáá±ážááŒááºážááŸáá·áº JavaScript áá»áá¯ážáááºá¡ááœááºá V8 ááœáẠJavaScript ááœá²ááŒááºážá áááºááŒá¬ááŒááºážááẠá áœááºážáá±á¬ááºáááºáá»áááºážááœá¬ážá á±ááẠá ᶠTypeScript á á¯á ááºážááŸá¯ááᯠá¡áá¯á¶ážááŒá¯áá¬ážáááºá
- Runtime ááẠááá¯ááºááá¯ááºáá«ááŸááá±á¬ ááá¯ááºáá áºáá¯áááºáž (âdenoâ) áá¯á¶á á¶ááŒáá·áº áá¬áá«áááºá Deno ááᯠá¡áá¯á¶ážááŒá¯á á¡ááá®áá±ážááŸááºážáá»á¬ážááᯠrun áááºá áááºááẠááŒááºáááŸá®ááá¯ááŸá¯áááŸááá² á áá áºááœáẠá¡áá°ážááá·áºááœááºážááŸá¯áááá¯á¡ááºáá±á¬ á¡ááœááºá¡á á¬áž 30 MB ááá·áºááŸááá±á¬ ááá·áºááááºáá±á¬ááºážá¡ááœáẠexecutable ááá¯ááºáá áºáá¯ááᯠáá±á«ááºážáá¯ááºáá¯ááºááẠááá¯á¡ááºáá«áááºá ááá¯á·á¡ááŒááºá deno ááẠmonolithic á¡ááá®áá±ážááŸááºážáá áºáá¯ááá¯ááºáá±á¬áºáááºáž áá®ážááŒá¬ážá¡áá¯á¶ážááŒá¯ááá¯ááºááá·áº Rust crate packages (deno_coreá rusty_v8) á¡á á¯á¡áá±ážáá áºáá¯ááŒá áºáááºá
- áááá¯ááááºááᯠá áááºááá·áºá¡áá« á¡ááŒáẠmodules áá»á¬ážááᯠáááºáááºá áááºááẠURL ááááºá á¬ááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá á¥ááá¬á¡á¬ážááŒáá·áºá welcome.js áááá¯ááááºááá¯áááºáááºáááºá áááºááẠâdeno https://deno.land/std/examples/welcome.jsâ á¡áááá·áºááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá ááŒááºáá¡áááºážá¡ááŒá áºáá»á¬ážá០áá¯ááºááᯠá ááºááœááºážá áá áºááœáẠáá±á«ááºážáá¯ááºáá¯ááºááŒá®áž ááááºážáááºážáá¬ážáá±á¬áºáááºáž áááºááá·áºá¡áá«áá»áŸ á¡ááá¯á¡áá»á±á¬áẠá¡ááºááááºáá¯ááºáááºááá¯ááºáá« (á¡ááºááááºáá¯ááºááŒááºážááẠá¡ááá®áá±ážááŸááºážá¡á¬áž â-- ááŒááºáááºá áááºááŒááºážâ á¡áá¶ááŒáá·áº ááŒááºáá¬ážá áœá¬ áá¯ááºáá±á¬ááºááẠááá¯á¡ááºáá«áááºá
- á¡ááºááá®áá±ážááŸááºážáá»á¬ážááœáẠHTTP ááŸáá áºááá·áº ááœááºáááºáá±á¬ááºážááá¯ááŸá¯áá»á¬ážááᯠáááá±á¬ááºá áœá¬áá¯ááºáá±á¬ááºááŒááºážá ááááºáá±á¬ááºážááẠá áœááºážáá±á¬ááºáááºááŒáá·áºááœááºáááºá¡ááºááºáá®áá±ážááŸááºážáá»á¬ážáááºáá®ážáááºá¡ááœáẠáá®ááá¯ááºážáá¯ááºáá¬ážáááºá
- Deno ááœááºáá¬áá áá¯á¶ááŸááºáááºááá±á¬ááºáá¬ááœáẠááŸá áºáá¯áá¯á¶ážáá¯ááºáá±á¬ááºááá¯ááºááá·áº universal web applications áá»á¬ážááᯠáááºáá®ážááá¯ááºá áœááºážá
- ááŒááºáááŸá®ááá¯ááŸá¯áá»á¬ážááŸáá·áº áá»áááºáááºááẠáááá¯á¡ááºáá±á¬ á¡áá¯á¶ážááŒá¯ááŸá¯ á á¶áááºááŸááºáá¬ážáá±á¬ module áá»á¬áž ááŸááá±ááŒááºážá á á¶áá±á¬ááºáá¶ááŸá¯á០áá±á¬áºáá»á°ážáá»á¬ážááẠáááºáá±á¬ááºážá á¬áááºážá á áºááŸáá·áº ááá¯ááºáááºáá®ááŸá¯á ááºážáááºááŒááºážááá¯á·ááᯠáá¶áá°ááŒá®ážááŒá áºáááºá
- á¡ááŒá±ážá¡áá»áááºá¡ááŒááºá Deno ááááºáá±á¬ááºážááẠáááºáá±á·áá»áºáááºáá±áá»á¬á¡ááŒá Ạáá¯ááºáá±á¬ááºááŒá®áž áá¯ááºá¡ááœááºážááŸá URL ááŒáá·áº áá±á¬áºáá»á°ážáá»á¬ážááᯠáááºáá±á¬ááºááŒáá·áºááŸá¯ááœáá·áºáá±ážáááºá á¥ááá¬á¡á¬ážááŒáá·áºá áá±á¬áºáá»á°ážáá áºáá¯ááᯠáááºáááºá âhttps://deno.land/std/log/mod.tsâ á០âáááºááœááºážááŒááºáž*á¡ááŒá ẠááŸááºáááºážá¡ááŒá áºâ áá¯ááºááœáẠáááºááŸááºááá¯ááºáááºá URL ááŸáááá·áº ááŒááºááá¬áá¬áá»á¬ážá០áá±á«ááºážáá¯ááºáá¯ááºáá¬ážáá±á¬ ááá¯ááºáá»á¬ážááᯠááááºážáááºážáá¬ážáááºá áá±á¬áºáá»á°ážáá¬ážááŸááºážáá»á¬ážááŸáá·áº áá»áááºáááºááŒááºážááᯠURL á¡ááœááºážááŸá áá¬ážááŸááºážáá¶áá«ááºáá»á¬ážááᯠáááºááŸááºááŒááºážááŒáá·áº áá¯á¶ážááŒááºáááºá á¥ááá¬á âhttps://unpkg.com/[á¡á®ážáá±ážááºááá¯áá¬ááœááºáá¬ážáááº]/dist/liltest.js";
- ááœá²á·á ááºážáá¯á¶ááœáẠáá±á«ááºážá ááºááŸá®ááá¯ááŸá¯á á áºáá±ážááŒááºážá áá Ạ(âdeno á¡áá»ááºá¡áááºâ ááœáŸááºááŒá¬ážáá»ááº) ááŸáá·áº áá¯ááºáá±á¬áºáááºáá»ááŒááºážá¡ááœáẠá¡áá¯á¶ážáááºááŸá¯ (deno fmt);
- á¡ááá®áá±ážááŸááºáž Script á¡á¬ážáá¯á¶ážááᯠJavaScript ááá¯ááºáá áºáá¯á¡ááŒá Ạáá±á«ááºážá ááºááá¯ááºáááºá
source: opennet.ru