从 Node.js 到 Deno:一个安全高效的 JavaScript-TypeScript 运行时.pptx

上传人(卖家):无敌的果实 文档编号:2527313 上传时间:2022-04-29 格式:PPTX 页数:44 大小:5.80MB
下载 相关 举报
从 Node.js 到 Deno:一个安全高效的 JavaScript-TypeScript 运行时.pptx_第1页
第1页 / 共44页
从 Node.js 到 Deno:一个安全高效的 JavaScript-TypeScript 运行时.pptx_第2页
第2页 / 共44页
从 Node.js 到 Deno:一个安全高效的 JavaScript-TypeScript 运行时.pptx_第3页
第3页 / 共44页
从 Node.js 到 Deno:一个安全高效的 JavaScript-TypeScript 运行时.pptx_第4页
第4页 / 共44页
从 Node.js 到 Deno:一个安全高效的 JavaScript-TypeScript 运行时.pptx_第5页
第5页 / 共44页
亲,该文档总共44页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、从 Node.js 到 Deno:个安全效的 JavaScript/TypeScript 运时录当前 Node.js 态存在的问题与 Node.js 的异同Deno深理解 Deno 底层架构前的态DenoDeno的未来Node.js 态有什么问题?History of JavaScriptV8 Release ProcessNode.js 发布之后,JS 发了很变化PromiseAsync/AwaitES ModulesTypedArraysNPM 丰富的包但是。When you run npm installdeno 也使 Node.js,并且。Deno is a new server-si

2、de JavaScript runtimeDeno 的底层技术:V8RustTokio(event loop)TypeScriptNode vs DenoNode DenoServer-side JS Server-side TSV8 V8Libuv TokioC+ RustDeno vs OSLinux DenoProcesses Web WorkersSyscalls OpsFile descriptors (fd) Resource ids (rid)Scheduler TokioUserland: libc+ / glib / boost deno_std/proc/$/stat de

3、no.metrics()man pages deno -typesDeno 只有个可执件Deno 是个可执件这个可执件就是你运 Deno 程序所需要的全部东Deno 总是并且永远采这种式发Deno 是独于系统和平台的前 Deno 可以在 Mac、Linux、Windows 系统上运安装 Denocurl -fsSL https:/deno.land/x/install/install.sh | sh运 Deno deno https:/deno.land/std/examples/welcome.tsDownload https:/deno.land/std/examples/welcome.

4、tsCompile https:/deno.land/std/examples/welcome.tsWelcome to Deno deno https:/deno.land/std/examples/welcome.tsWelcome to Deno 使 URL 导模块import serve from https:/deno.land/stdv0.6/http/server.ts; 简单、标准、兼容于浏览器的模块系统。没有 node_modules 和 index.js 不依赖于集中式服务器。 Deno runtime 可以透明的加载、缓存、编译代码。 络的情况下也可以运。并且具有版本控制

5、的功能。 未来:持更便地导模块import maps默认的安全模式我们希望让户能够运不受信任的第三代码 deno run https:/deno.land/welcome.tsWelcome to Deno 要访问磁盘、络、进程或精度时间,户必须使可选的命令标志:-allow-read=/tmp-allow-net=开箱即的 TypeScript 持编译器被编译进了 Deno。使 V8 Snapshots 加速 TS 编译器的快速启 TypeScript动。持并励户使 JavaScript!当使 JS 时,不会使 TS compiler,因此开发者不担 runtime 膨胀。Deno runt

6、ime和标准模块使 TypeScript 编写。VS Code插件: https:/ Deno 的标并不是持全部的浏览器 API。它们有不同的的。API尽可能地使浏览器 。Deno 想要了解 Deno 持哪些 API,可以查看全局变量 (v0.22.0)window, atob, btoa, fetch, clearTimeout, clearInterval, setTimeout,setInterval, location, crypto, Blob, File, CustomEventInit,CustomEvent, EventInit, Event, EventTarget, URL

7、, URLSearchParams,Headers, FormData, TextEncoder, TextDecoder, Request, performance,postMessage, Worker兼容性图表来源 deno/wptW3C vs WAHTWGHTML5在 HTML5 之前是 HTML4 吗?NO HTML + XML = XHTMLWHATWGhttps:/html.spec.whatwg.orghttps:/console.spec.whatwg.orghttps:/encoding.spec.whatwg.orghttps:/fetch.spec.whatwg.org

8、https:/url.spec.whatwg.orghttps:/streams.spec.whatwg.orgNode.js 的变化Inside The CoreAPI 层使 TypeScript 编写没有任何“特权”在受限环境中运如果需要运特权代码(络、件系统、环境变量等)需要以消息的机制向 Rust端申请通讯使 TypedArray 传递libdeno 层使 C+ 编写介于 TypeScript 和 Rust 之间,负责两者之间的消息传递主要来封装 V8Deno的 snapshot 保存了个完整的 TypeScript 编译器,极的缩短了编译器的启动时间Rust 层件系统、络、环境变量等

9、的“特权代码”读取由 Rust 实现DenoTokioTokio最初版本由 Go 实现,由于存在“双GC”的问题,后来改 Rust 实现维护了个效的线程池依赖于 Rust 的 Future 特性,这个特性类似于 JavaScript 的 Promises通过消息传递机制进 Native 绑定Example跟 V8 交互1. 加载 snapshot2. 创建 isolatepshot3. 在 rust 中注册消息监听函数和消息回调函数4. 为 JS 执环境创建 context5. 使 C/C+ 将 libdeno 的 API 绑定到 V86. 在 V8 中执 js 函数:denoMain从 Ty

10、peScript 到 Rust 的调流程1. await deno.readFile(“./citys.json”)2. const nread = await sendAsyncMinimal(dispatch.OP_READ, rid, p)3. const buf = core.dispatch(opId, scratchBytes, zeroCopy)4. libdeno.send5. void Send(const v8:FunctionCallbackInfo& args)Zero-Copy 机制Zero-Copy 机制Zero-Copy 机制Deno 的未来?Ryan Dahl(Node.js 作者)V8(Google)TypeScript(Microsoft)Rust(Mozilla)总结DenoDenoDeno拥抱浏览器态具有开箱即的 TypeScript 持默认是安全的

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 常用办公文档
版权提示 | 免责声明

1,本文(从 Node.js 到 Deno:一个安全高效的 JavaScript-TypeScript 运行时.pptx)为本站会员(无敌的果实)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|