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

2018 年 5 月 31 日 前端之巅
作者|徐川、覃云
近日,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 回复开发者的几个问题:

deno 和 Node 的区别是什么?

ry 开玩笑称,目前两者最大的区别是 Node 大行其道,而 Deno 尚未投入使用。

从更高层面上来说,Deno 尽可能简化 V8 与系统 API 的耦合,并打造更加简单、稳定的模块系统,以及一个安全的沙箱运行环境。

再者,使用 Golang 而不是 C++ 作为底层语言,这样,添加高级功能时会比在 Node 中更加容易,比如在 Go 中添加 http2.0支持,只需添加一些路由 API 和一些配置到 protobuf 中。

Deno 诞生的目的,是为了创建更简单和安全的非浏览器 runtime,它在这个时候出现,是因为现在的开发工具比 2009 年更好。

我们还可以认为 Deno 将是目前 Node 生态一些难解问题的终极答案,比如依赖管理、安全性、稳定性、横向扩展等等。

Deno 的诞生,将启发更多人投入到下一代 Node 的探索当中,这比之前 Node 的一些分叉更具备创新和革命性。

目前 Deno 正在紧张开发当中,我们也将持续关注它的进展。

  Deno Github 地址:

https://github.com/ry/deno

前端之巅

「前端之巅」是 InfoQ 旗下关注大前端技术的垂直社群。紧跟时代潮流,共享一线技术,欢迎关注。

  活动推荐

GMTC 全球大前端技术大会邀请到了来自 Google、Twitter、Instagram、LinkedIn、Hulu 等国外一线前端专家前来分享他们的前端前沿技术和最佳实践,更有 iOS 社区大神 Mattt、Apollo GraphQL 负责人等大牛的助阵,另外月影、寒冬、迷渡、程墨、教主、小春等 50+国内知名前端大佬也会带来精彩分享,可谓干货满满。

目前大会倒计时门票热销中,团购更优惠,购票咨询:18514549229(同微信)戳阅读原文或识别下图二维码,了解更多干货详情!


登录查看更多
1

相关内容

专知会员服务
37+阅读 · 2020年6月7日
【Manning新书】现代Java实战,592页pdf
专知会员服务
98+阅读 · 2020年5月22日
【新书】Java企业微服务,Enterprise Java Microservices,272页pdf
【斯坦福大学】Gradient Surgery for Multi-Task Learning
专知会员服务
45+阅读 · 2020年1月23日
【电子书】Flutter实战305页PDF免费下载
专知会员服务
20+阅读 · 2019年11月7日
tf.GradientTape 详解
TensorFlow
117+阅读 · 2020年2月21日
用Now轻松部署无服务器Node应用程序
前端之巅
16+阅读 · 2019年6月19日
VS Code Remote发布!真·远程开发
开源中国
6+阅读 · 2019年5月3日
从webview到flutter:详解iOS中的Web开发
前端之巅
5+阅读 · 2019年3月24日
百度开源项目OpenRASP快速上手指南
黑客技术与网络安全
5+阅读 · 2019年2月12日
TF Boys必看!一文搞懂TensorFlow 2.0新架构!
引力空间站
18+阅读 · 2019年1月16日
推荐|Google最热门31款开源项目资源
全球人工智能
4+阅读 · 2017年11月24日
开源巨献:阿里巴巴最热门29款开源项目
算法与数据结构
5+阅读 · 2017年7月14日
开源巨献:Google最热门60款开源项目
程序猿
5+阅读 · 2017年7月12日
Feature Denoising for Improving Adversarial Robustness
Arxiv
15+阅读 · 2018年12月9日
Arxiv
7+阅读 · 2018年6月8日
Arxiv
4+阅读 · 2018年4月30日
Arxiv
9+阅读 · 2018年1月4日
VIP会员
相关VIP内容
专知会员服务
37+阅读 · 2020年6月7日
【Manning新书】现代Java实战,592页pdf
专知会员服务
98+阅读 · 2020年5月22日
【新书】Java企业微服务,Enterprise Java Microservices,272页pdf
【斯坦福大学】Gradient Surgery for Multi-Task Learning
专知会员服务
45+阅读 · 2020年1月23日
【电子书】Flutter实战305页PDF免费下载
专知会员服务
20+阅读 · 2019年11月7日
相关资讯
tf.GradientTape 详解
TensorFlow
117+阅读 · 2020年2月21日
用Now轻松部署无服务器Node应用程序
前端之巅
16+阅读 · 2019年6月19日
VS Code Remote发布!真·远程开发
开源中国
6+阅读 · 2019年5月3日
从webview到flutter:详解iOS中的Web开发
前端之巅
5+阅读 · 2019年3月24日
百度开源项目OpenRASP快速上手指南
黑客技术与网络安全
5+阅读 · 2019年2月12日
TF Boys必看!一文搞懂TensorFlow 2.0新架构!
引力空间站
18+阅读 · 2019年1月16日
推荐|Google最热门31款开源项目资源
全球人工智能
4+阅读 · 2017年11月24日
开源巨献:阿里巴巴最热门29款开源项目
算法与数据结构
5+阅读 · 2017年7月14日
开源巨献:Google最热门60款开源项目
程序猿
5+阅读 · 2017年7月12日
Top
微信扫码咨询专知VIP会员