你知道Ryan Dahl在2007年用C++开发了Nodejs, 火了,现在仍然热。但你可能不知道还是这个Ryan Dahl,这个大神,2017年用Rust重新写了一个Nodejs++, 当然新产品不叫Nodejs++, 叫Deno, Deno=Destroy Nodejs, 就在上个月,2020-05-13, Deno 正式进入1.0时代。
跟 Node.js 一样,Deno 也是一个服务器运行时,但是Deno不仅支持js, 可以直接运行TypeScript 和 WebAssembly 程序。
它内置了 V8 引擎,用来解释 JavaScript。同时,也内置了 tsc 引擎,解释 TypeScript。它使用 Rust 语言开发,由于 Rust 原生支持 WebAssembly,所以它也能直接运行 WebAssembly。它的异步操作不使用 libuv 这个库,而是使用 Rust 语言的 Tokio 库,来实现事件循环(event loop)。
在Windows10下让Deno跑起来:
第一步,下载Deno.exe
第二步, 写一段Typescript源代码server.ts:
import { serve } from "https://deno.land/std/http/server.ts";
for await (const req of serve({ port: 8000 })) {
req.respond({ body: "<h1>Hello Deno World !</h1>" });
}
第三步,进入cmd命令行,输入下列命令:
d:\programs\deno\deno --allow-net server.ts
d:\programs\deno是deno.exe的文件位置,按你的情况修改,运行当前目录为server.ts所在目录
Deno的官网地址 deno.land
评论区
写评论所以不知道这东东对 Rust 的带动如何。
--
👇
Ge777: 性能和nodejs一样 都是基于v8
你要这样说的话 ts-node 不是一样的吗?
性能和nodejs一样 都是基于v8
Deno的性能如何?
Deno介绍中有这样一段:
HTTP服务器性能 我们不断跟踪Deno的HTTP服务器的性能。问候世界的Deno HTTP服务器每秒处理约25,000个请求,最大延迟为1.3毫秒。一个可比的Node程序每秒处理34,000个请求,最大延迟介于2到300毫秒之间。
Deno的HTTP服务器是在本机TCP套接字顶部的TypeScript中实现的。Node的HTTP服务器使用C语言编写,并作为对JavaScript的高级绑定公开。我们一直拒绝将本地HTTP服务器绑定添加到Deno的冲动,因为我们要优化TCP套接字层,更常见的是优化op接口。
Deno是一个合适的异步服务器,每秒25k请求足以满足大多数目的。(如果不是,那么JavaScript可能不是最佳选择。)此外,由于普遍使用Promise(如上所述),我们期望Deno通常表现出更好的尾部延迟。综上所述,我们确实相信该系统还有更多的性能优势,我们希望在将来的版本中实现这一目标。
Rust工具链支持用Rust语言来写WebAssembly, 将hello.rs编译为hello.wasm 对以下内容的回复:
rust 原生支持WebAssembly?