您现在的位置是:首页 > 文章详情

Node之父ry发布新项目deno:下一代Node

日期:2018-05-31点击:445
近日,Node 之父 Ryan Dahl 发布新的开源项目 deno,从官方介绍来看,可以认为它是下一代 Node,使用 Go 语言代替 C++ 重新编写跨平台底层内核驱动,上层仍然使用 V8 引擎,最终提供一个安全的 TypeScript 运行时。 
  
它的特性包括: 
支持 TypeScript 2.8 开箱即用; 
无 package.json,无 npm,不追求兼容 Node; 
通过 URL 方式引入依赖而非通过本地模块,并在第一次运行的时候进行加载和缓存,并仅在代码使用--reload运行,依赖才会更新,引入方式如: 
  
import { test } from "https://unpkg.com/deno_testing@0.0.5/testing.ts"import { log } from "./util.ts" 
可以控制文件系统和网络访问权限以运行沙盒代码,默认访问只读文件系统可访问,无网络权限。V8 和 Golang 之间的访问只能通过 protobuf 中定义的序列化消息完成; 
发生未捕捉错误时自动终止运行; 
支持 top-level 的 await; 
最终创建单一可执行文件; 
目标是兼容浏览器; 
可以作为库引入,用于建立自己的 JavaScript runtime。 
  
这几个特性,有好几个都是针对目前 Node 的痛点而来的,包括无 package.json、依赖的引入和更新方式,针对的就是被广泛吐槽的过大的node_modules。 
同时,不追求兼容 node,可以视为 ry 想彻底抛弃 node 包袱,打造一个更好的 JS 运行时。 
作者在 GitHub Issue 回复开发者的几个问题: 
ry 开玩笑称,目前两者最大的区别是 Node 大行其道,而 Deno 尚未投入使用。 
从更高层面上来说,Deno 尽可能简化 V8 与系统 API 的耦合,并打造更加简单、稳定的模块系统,以及一个安全的沙箱运行环境。 
再者,使用 Golang 而不是 C++ 作为底层语言,这样,添加高级功能时会比在 Node 中更加容易,比如在 Go 中添加 http2.0支持,只需添加一些路由 API 和一些配置到 protobuf 中。 
Deno 诞生的目的,是为了创建更简单和安全的非浏览器 runtime,它在这个时候出现,是因为现在的开发工具比 2009 年更好。 
我们还可以认为 Deno 将是目前 Node 生态一些难解问题的终极答案,比如依赖管理、安全性、稳定性、横向扩展等等。 
Deno 的诞生,将启发更多人投入到下一代 Node 的探索当中,这比之前 Node 的一些分叉更具备创新和革命性。 
目前 Deno 正在紧张开发当中,我们也将持续关注它的进展。 
deno 和 Node 的区别是什么? 
  
Deno Github 地址: 
https://github.com/ry/deno  
原文链接:https://yq.aliyun.com/articles/599025
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章