IT商业网-解读信息时代的商业变革
当前位置: 首页 > 软件 > 正文

TypeScript 运行时 Deno 1.0 正式发布 其采用Rust编写而成

2020-05-14 14:21:54  来源:开源中国    

  Deno 1.0 发布了。Deno 是作者 Ryan Dahl 在 Node 之后的又一大作,它是一个新的运行时,用于在 Web 浏览器之外执行 JavaScript 和 TypeScript,其采用 Rust 编写而成(最初用的是 Golang)。

  Deno 试图提供一个独立的工具来快速编写复杂功能的脚本,它将始终是单个可执行文件。就像 Web 浏览器一样,它知道如何获取外部代码。在 Deno 中,单个文件可以定义任意复杂的行为,而无需任何其它工具。

  Ryan Dahl 认为过去他在设计 Node 时犯了一些错误,包括安全性、构建系统、package.json、node_modules、index.js 等等,并表示 Node 存在的种种不足导致有许多严重 bug 问题且不可回避,当前 JavaScript 和周围的软件基础架构已经发生了巨大的变化,值得进行简化,于是他重新设计了 Deno 这门脚本语言。

  Rust API

  今天正式发布的 1.0 版本带来了命令行界面 CLI 1.0。Deno 本身并不是一个单体的程序,而是设计为 Rust crate 的集合,以允许在不同的层进行集成。Deno 中的 Rust crate deno_core 不依赖于 TypeScript 或 Tokio,它只是提供了操作和资源基础架构。也就是说,它提供了一种将 Rust 特性绑定到 JavaScript promise 的有组织方式。CLI 则完全建立在 deno_core 之上。

  rusty_v8 crate 提供高质量的 V8 C++ API 的 Rust 绑定。该 API 尝试尽可能与原始 C++ API 匹配,它是零成本的绑定,因为 Rust 中暴露的对象与在 C++ 中操作的对象完全相同。

  HTTP 服务器性能

  Deno 的 HTTP 服务器是采用 TypeScript 在原生 TCP socket 的顶层实现的,Node 的 HTTP 服务器使用 C 语言编写,并作为对 JavaScript 的高级绑定暴露。一直以来 Deno 拒绝将原生 HTTP 服务器绑定添加进来,因为这还需要优化 TCP socket 层,更常见的是优化 op 接口。

  Deno 是一个合适的异步服务器,每秒 25k 请求足以满足大多数目的,此外,由于普遍使用 Promise,Deno 需要有更好的尾部延迟。目前 Deno HTTP 服务器每秒处理约 25 000 个请求,最大延迟为 1.3 毫秒,与之相比,Node 程序每秒处理 34 000 个请求,最大延迟介于 2 到 300 毫秒之间。

  这样看来,作者认为 Deno 的 HTTP 服务器还有更多的性能优势,并表示希望在将来的版本中实现这一目标。

  插件/扩展

  Deno 1.0 还带来了一个新生的插件系统,用于通过自定义操作扩展 Deno 运行时。但是,此接口仍在开发中,并已标记为不稳定。

  此外,发布公告中还提及 Deno 稳定性与兼容性等内容,还介绍了接下来将会把 TSC 移植到 Rust,最终加速类型检查,提高从 TS 解析到 JS 性能的计划。

免责声明: IT商业新闻网遵守行业规则,本站所转载的稿件都标注作者和来源。 IT商业新闻网原创文章,请转载时务必注明文章作者和来源“IT商业新闻网”, 不尊重本站原创的行为将受到IT商业新闻网的追责,转载稿件或作者投稿可能会经编辑修改或者补充, 如有异议可投诉至:post@itxinwen.com
微信公众号:您想你获取IT商业新闻网最新原创内容, 请在微信公众号中搜索“IT商业网”或者搜索微信号:itxinwen,或用扫描左侧微信二维码。 即可添加关注。
标签:

品牌、内容合作请点这里: 寻求合作 ››

相关阅读RELEVANT