前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >比 Node.js 快三倍的新 JavaScript 运行时?

比 Node.js 快三倍的新 JavaScript 运行时?

作者头像
程序员老鱼
发布2022-12-02 10:57:02
5600
发布2022-12-02 10:57:02
举报
文章被收录于专栏:前端实验室

哈喽,大家好!我是前端实验室的小师妹!

最近前端工具链又火了一个项目 Bun,可以说内卷非常严重了!

这款去年 4 月由 Jarred-Sumner 创建的项目,在开源不到一个月的时间就荣获 28.3K Star!要知道,目前发布多年 Node 目前是 89K Star。

所以, Bun 是个什么鬼,又为什么再短短时间可以受到这么多人的青睐!?

Bun.js

Bun 是采用 Zig 语言编写的高性能 ”全家桶” JavaScript 运行时,官方称其为 "all-in-one JavaScript runtime"。

所谓 "all in one",是因为 Bun 提供了打包、转译、安装和运行 JavaScript & TypeScript 项目的功能,内置原生打包器 (native bundler)、转译器、task runner、npm 客户端,以及 fetch、WebSocket等 Web API。

根据官网测试截图,SSR、SQLite 和 FFI 都远远吊打 Node 和 Deno,是 Node 或 Deno 的三倍以上,这要得益于 Bun 自身提供的 JavaScript 内核,它比 V8 引擎更快、内存效率更高。

不过,Bun 目前只实现了 90% 左右的 Node-API。

Bun 不仅实现了大部分的 Node API,诸如 Fetch、WebSocket等, 还集成了前端开发的最佳实践:

  • 直接转译 JavaScript/TypeScript/JSX
  • 打包 JavaScript/CSS
  • 用于 package.json 脚本的任务运行器
  • 兼容 npm 的包管理器

SSR:服务器渲染。 SQLite:一个 C 语言库,它实现了一个小型、快速、自包含、高可靠、全功能的 SQL 数据库引擎,主要用于移动端设备和大部分 PC 应用程序。 FFI:全称 Foreign function interface,外部函数接口,它是一种机制,可以调用另外编程语言提供的服务。

Bun体验

1.安装
代码语言:javascript
复制
curl https://bun.sh/install | bash
2.添加环境变量
代码语言:javascript
复制
# 打开 ~/.zshrc 文件,添加一行
export PATH="$HOME/.bun/bin:$PATH"

然后执行以下命令,就可以使用Bun.js了
source ~/.zshrc

bun --help

3.启动一个 HTTP Server

Bun的HTTP服务器建立在Web标准之上,比如RequestResponse

代码语言:javascript
复制
// http.js
export default {
  // ⚠️ 3000 端口如果被占用的话,程序执行会出错,并且没有一个明确的错误提示。
  port: 3000,
  fetch(request) {
    return new Response("Welcome to Bun!");
  },
};
4. 启动程序
代码语言:javascript
复制
bun run ./http.js

在浏览器打开http://localhost:3000就可以看到运行结果了~

官网地址:https://bun.sh/ Github地址:https://github.com/oven-sh/bun Demo地址:https://github.com/oven-sh/bun/tree/main/examples

Bun.js 现在还属于成长阶段,值得我们关注,但还不适用于生产,后期如何我们拭目以待!有兴趣的小伙伴可以体验一番~

写在最后

欢迎加入前端实验室读者交流群,群里有不少技术大神,不定时会分享一些技术要点,更有一些资源收藏爱好者会分享一些优质的学习资料。吃瓜、摸鱼、白嫖技术就等你了~

进群方式:在下方公众号后台,回复111,按提示操作即可进群。

如果该文章对你有帮助,那么就点击右下角的 [点赞]「在看」,给一个小小的鼓励吧~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-07-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前端实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Bun.js
    • Bun体验
      • 1.安装
      • 2.添加环境变量
      • 4. 启动程序
    • 写在最后
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档