基于 V8 的 TypeScript 运行时 deno

MIT
TypeScript
跨平台
2018-05-31
h4cd

deno

deno 是 V8 上的安全 TypeScript 运行时。

  • 支持 TypeScript 2.8 开箱即用,使用 V8 6.8.275.3 引擎

  • 无 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 中定义的序列化消息完成;

  • 最终创建单一可执行文件

     > ls -lh deno
     -rwxrwxr-x 1 ryan ryan 55M May 28 23:46 deno
     > ldd deno
     	linux-vdso.so.1 =>  (0x00007ffc6797a000)
     	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f104fa47000)
     	libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f104f6c5000)
     	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f104f3bc000)
     	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f104f1a6000)
     	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f104eddc000)
     	/lib64/ld-linux-x86-64.so.2 (0x00007f104fc64000)

  • 发生未捕捉错误时自动终止运行

  • 支持 top-level 的 await

  • 旨在兼容浏览器

  • 可以作为库来引入,以轻松构建自己的 JavaScript runtime
    https://github.com/ry/deno/blob/master/cmd/main.go

加载中

评论(23)

OSC首席键客
OSC首席键客
真牛逼,一开始用go写的,现在又变成用rust写的了。
程序员Tom
程序员Tom
https://github.com/olivewind/awesome-deno/blob/master/resources/design-mistakes-in-node/design-mistakes-in-node-zh.pdf ry 演讲中文翻译
桥头堡2015
桥头堡2015
deno……就是把node倒过来吗
张金富
张金富
鲁迅说:生命在于折腾
夏诺风
夏诺风
实在是无力吐槽,刚把nodejs的东西搞明白,你小子又搞事情~
冰力
冰力
乱搞,哈哈哈
AutoPlus
AutoPlus
作者练习 Go 语言的玩具,不用当真。from "https://unpkg.com/deno_testing@0.0.5/testing.ts" 这种导入模块的方法,快乐一时,整个代码仓库会随着时间渐渐完蛋
CrazyPeter
CrazyPeter
别再弄了,不需要那么多轮子,学不完了。
c
cswcsw
谁能简单的解释下deno有什么用么?
一茹记惘
一茹记惘
别更新了 我学不动了

deno 0.1.10 发布,基于 V8 的 TypeScript 运行时

Node 之父 Ryan Dahl 的新作 deno 已发布 0.1.10 版本,更新内容如下: Add URLSearchParams (#1049) Implement clone for FetchResponse (#1054) Use content-type headers when importing ...

11/04 07:41

deno v0.1.7 发布,基于 V8 的 TypeScript 运行时

Node 之父 Ryan Dahl 的新作 deno 已发布 0.1.7 版本,更新内容如下: Improve fetch headers (#853) Add deno.truncate (#805) Add copyFile/copyFileSync (#863) Limit depth of output i...

10/09 07:54

deno v0.1.4 发布,基于 V8 的 TypeScript 运行时

Node 之父 Ryan Dahl 的新作 deno 已发布 0.1.4 版本,更新内容如下: Support headers in fetch() 新增大量异步 fs 函数:deno.rename() deno.remove()、deno.removeAll()、deno.removeSync...

09/14 07:43

Ryan Dahl:Node 设计失误值得反思,Deno 将汲取经验

Node 之父 Ryan Dahl 近日在柏林 JS 大会上发表了主题演讲,这也是 Ryan Dahl 做的第二次关于 JS 的公开演讲,第一次是在 2009 年,当时是宣布 Node 项目诞生,而这一次,演讲主题却是 “Des...

06/05 08:28

没有更多内容

加载失败,请刷新页面

没有更多内容

暂无问答

Deno 并不是下一代 Node.js

这几天前端圈最火的事件莫过于 ry(Ryan Dahl) 的新项目 deno 了,很多 IT 新闻和媒体都用了标题:“下一代 Node.js”。这周末读了一遍 deno 的源码,特意写了这篇文章。长文预警(5000字,1...

07/09 14:50
15
0
Deno 并不是下一代 Node.js

这几天前端圈最火的事件莫过于 ry(Ryan Dahl) 的新项目 deno 了,很多 IT 新闻和媒体都用了标题:“下一代 Node.js”。这周末读了一遍 deno 的源码,特意写了这篇文章。长文预警(5000字,1...

06/05 11:48
778
1
五月新增开源项目:“复刻” Win 95 到 iOS;Grails 框架作者携最新力作登场

五月份开源中国社区收录了相当多的重量级开源项目,如 Node 之父 Ryan Dahl 的 deno,deno 也被认为是下一代 Node;Grails 框架作者的最新力作,微服务应用框架 Micronaut;还有少见的用 Vu...

06/03 21:22
4.2K
2
2018上半年GitHub上最热门的开源项目

关注GitHub的人都知道,这个平台上面有太多优秀的值得学习的开源项目了,这里总结了2018上半年GitHub上最热门的开源项目。 1: tensorflow https://github.com/tensorflow/tensorflow Tensor...

06/27 09:59
55
0
基于开源Dubbo分布式RPC服务框架的部署整合

Dubbo 作为SOA服务化治理方案的核心框架,用于提高业务逻辑的复用、整合、集中管理,具有极高的可靠性(HA)和伸缩性,被应用于阿里巴巴各成员站点,同时在包括JD、当当在内的众多互联网项目...

2015/11/03 15:18
1K
0
TypeScrip最污的技术课-技术胖TypeScript图文视频教程

近日Node.js之父瑞安达尔(Ryan Dahl)发布新的开源项目 deno,从官方介绍来看,可以认为它是下一代 Node,使用 rust 语言代替 C++ 重新编写跨平台底层内核驱动,上层仍然使用 V8 引擎,最终...

09/21 17:24
33
0
安卓图片高斯模糊(通过jni方式实现)

在实际项目中很多地方用到了图片模糊,但是往往使用非navie层的代码速度总是不尽人意,基本上图片稍微大一点或者不大绘制时间都基本上大于16ms,然后就会给人一种“卡顿”的感觉。所以特地去...

2016/06/15 21:31
49
0
spring中Redis的集群简单实现

通过自己在网上找资料在LINUX系统中安装reids,然后通过一个简单的deno来测试改redis集群是否可用。。 1.通过在网上下载redis的tar安装包( https://github.com/antirez/redis/archive/3.0.0...

2016/10/18 10:40
130
0
分析996个词根在各大考纲词汇中的作用(三)

CET4、CET6、GRE、IELTS、TOEFL、考研英语总的词汇量为14055,分析词根总数为996,有11544个单词分布在这些词根中,剩下的2511个词汇没有任何词根信息。

2015/03/26 07:48
140
1

没有更多内容

加载失败,请刷新页面

返回顶部
顶部