性能吊打 Node.js 和 Deno 的新一代 javaScript 运行时-Bun.js

Bun:超快速的JavaScript工具集,让开发更高效! Bun是一款新兴的全能JavaScript工具包,集运行时、打包器、测试运行器和包管理器于一体。它以Zig语言编写,基于JavaScriptCore,提供比Node.js更快的启动速度和更低的内存占用。Bun支持直接运行TypeScript/JSX代码,内置简单高效的测试运行器,简化了包管理流程。安装方式多样(脚本/Docker/npm等),兼容主流操作系统。适用于Web开发、API构建、自动化脚本等场景,能与现有Node项目无缝集成。相比Node.js、Deno等工具,Bun在性能、易用性和工具整合方面具 阅读详情

今天跟大家介绍一个最新开源的 javaScript 运行时:Bun.js。

刚开源不到一个月就获得了 26.1k star!看起来马上就会成为 Node.js 和 Deno 的一大竞争对手了!

和传统的 Node.js 这种传统的 javaScript 运行时不同,Bun.js 直接内置了打包器、转译器、任务运行器和 npm 客户端,这意味着你不再需要 Webpack/Rollup/esbuild/Snowpack/Parcel/Rome/swc/babel 就可以直接运行 TypeScript、JSX!

另外,Bun.js 原生支持了数百个 Node.js 和 Web API,包括约 90% 的 Node-API 函数(fs、path、Buffer 等)。

Bun.js 的目标是可以在浏览器之外的其他地方运行世界上大多数 JavaScript,为你未来的基础架构带来性能和复杂性的增强,并通过更好、更简单的工具提高开发者的生产力!

性能表现如何?

服务端渲染:每秒处理 HTTP 请求数

加载一个巨大的 sqlite 表:每秒平均查询次数

FFI:每秒操作数

为啥这么快?

和 Node.js、Deno 不同,Bun.js 并没有基于 V8 引擎,它直接选择了 JavaScriptCore 引擎,它的执行速度往往要比 V8 等更传统引擎要快。

另外,Bun.js 是用一种具有手动内存管理的低级编程语言 ZIG 编写的,对内存的低级控制、没有隐藏的控制流可能就是它性能非常好的秘诀。

Bun.js 的大部分内容都是完全从零开始编写的,包括 JSX/TypeScript 转译器、npm 客户端、打包器、SQLite 客户端、HTTP 客户端、WebSocket 客户端等等。

有哪些能力?

  • Web API:对 fetch、WebSocket、 ReadableStream 等 API 都提供了内置支持
  • Node.js 模块:Bun 实现了 Node.js 的模块解析算法,同时支持 ESM 和 CommonJS,但 Bun 内部使用 ESM。
  • 支持转译大量文件类型,你可以直接运行 TypeScript、JSX,甚至支持各种 tsconfig.json 中的配置。
InputLoaderOutput
.jsJSX + JavaScript.js
.jsxJSX + JavaScript.js
.tsTypeScript + JavaScript.js
.tsxTypeScript + JSX + JavaScript.js
.mjsJavaScript.js
.cjsJavaScript.js
.mtsTypeScript.js
.ctsTypeScript.js
.tomlTOML.js
.cssCSS.css
.envEnvN/A
.*filestring
  • Bun.write 使用最快的系统调用,实现写入、复制、管道、发送和克隆文件。
  • 自动加载环境变量 .env 文件,不需要再 require("dotenv").load()
  • 附带一个内置的快速 SQLite3 客户端 bun:sqlite
  • Bun.js 实现了大部分 Node-API (N-API),大部分 Node.js 原生模块都可以正常工作。
  • bun:ffi 可以使用低成本的外部函数接口从 JavaScript 调用本机代码(据测试比 napi 快 5 倍 、比 Deno 快 100 倍)

  • 原生支持不断增长的 Node.js 核心模块列表以及全局变量,例如 Buffer 和 process

试用一下

安装 Bun CLI:

curl https://bun.sh/install | bash

Bun 的 HTTP 服务器基于 Request 和 Response 等 Web 标准构建:

// http.js
export default {
  port: 3000,
  fetch(request) {
    return new Response("Hi, ConardLi!Welcome to Bun!");
  },
};

用 bun 运行它:

bun run http.js

然后在浏览器中打开 http://localhost:3000。

CLI 命令:bun run:可以直接运行 JavaScript 和 TypeScript 文件以及 package.json 中的 scripts 脚本。

根据测试,bun 运行 package.json 脚本比 npm 运行 package.json 脚本快 30 倍。

CLI 命令:bun install:兼容 npm 的包管理器,使用最快的系统调用来复制文件。

根据测试,bun 比 npm 的包安装速度快 20 倍。

CLI 命令:bun wiptest:一个类似于 Jest 的测试运行器,用于内置到 bun 的 JavaScript 和 TypeScript 项目。

这样的bunjs有望成为替代node的一员.

如何使用Bun创建一个应用API(以菜谱分享应用为例) ​ Bun 不仅仅是一个运行环境。它还是软件包管理器、测试运行程序和打包程序。在本教程中,您将学习如何使用Elysia、PostgreSQL和Prisma通过 Bun 创建一个简单的配方分享API。 阅读详情

相关推荐

【Bun1.0】使用 Bun.js 构建快速、可靠和安全的 JavaScript 应用程序

Bun 是一个现代的JavaScript运行环境,如Node, Deno。主要特性如下: 启动速度快。更高的性能。完整的工具(打包器、转码器、包管理)。

weixin_43779957的博客 1583

Bun.js入门简介

我怀疑我们正走向一个同构的服务器端 JavaScript 时代,在这个时代,模块开发人员试图编写与所有运行时兼容的代码:Node.js、Deno、Bun、无服务器、边缘、嵌入式等等。如果您从项目的开始使用 Bun,它是可靠的。速度比 Node.js 更快,尽管除非您的应用程序执行特定的密集任务,如大量的 SQLite 处理或 WebSocket 消息传递,否则不太可能看到显著的性能提升。选择 Node.js 的人很少会因此而被解雇,但 Bun 避免了一些 Deno 的错误,并迅速成为一个吸引人的选择。

菜菜程序员 4250

深度科普 - 大名鼎鼎的bun.js到底是什么? 它能否替代node.js? 是否能成为前端生态的未来?

聪明的小伙伴们,你们在接触bun时是否有过这样的疑问呢?bun.js是什么?它是如何诞生的?跟node.js的区别是什么?有什么优势?目前的发展情况如何了?他是否是前端的未来?随便在网上一搜索网页可能会告诉你:Bun.js 定位为 Node.js 的现代化替代品。它集成了运行时、包管理器、构建工具、测试框架等核心功能,并原生支持 TypeScript、JSX 和 Web API…

weixin_45555699的博客 3161

超越 Node.js:Bun 的创新与突破

运行时”(Runtime)在计算机编程中指的是一个软件程序执行时提供的环境,其中包含了执行程序所必需的库、调试和其他支持功能。在 JavaScript 的世界中,运行时负责解释执行 JavaScript 代码,并提供可以由 JavaScript 代码调用的 API,例如处理文件系统、网络通信、定时器等。就 JavaScript 语言而言,最著名的运行时环境是浏览器和 Node.js。浏览器提供了一个针对客户端脚本的运行环境,允许 JavaScript 与网页交互,控制 DOM 元素,响应事件等。

王乐平 技术博客 4397

状态错误CS0234命名空间“Windows”中不存在类型或命名空间名“Management”(是否缺少程序集引用?)

解决源码编译UE打包失败问题

五百零一 2338

头歌平台-人工智能导论实验(人脸识别)

答案仅供参考,自己动手丰衣足食!!!

qq_52119136的博客 3026

那个吊打Node和Deno的Bun公司融资了700万美元

Bun是一个基于Zig编写的JavaScript运行时,类似Node 和Deno,其目标是在浏览器之外运行世界上大部分JavaScript,为基础设施带来性能和复杂性提升,并通过更好、更简单的工具提升开发者生产力。Bun主要关注三大方面:启动速度、性能水平(正在扩展 JavaScriptCore、引擎)、成为一个伟大而完整的工具(捆绑器、转码器、包管理器)。整理 | 梦依丹出品 | 优快云(ID:优快云news)...

优快云资讯 9488

SpeedyBee F405 V3 50A飞塔装机全攻略:从开箱到首飞避坑指南

本文提供SpeedyBee F405 V3 50A飞塔的详细装机指南,涵盖从开箱检查、硬件焊接、软件配置到安全首飞的全流程。重点剖析了电源连接、固件刷写等高频故障点,帮助FPV新手避开常见陷阱,确保一次成功组装并安全起飞。

weixin_29179311的博客 416

他来了!性能吊打 Node.js 和 Deno 的新一代 javaScript 运行时!

大家好,我是 ConardLi。今天跟大家介绍一个最新开源的 javaScript 运行时:Bun.js。刚开源不到一个月就获得了 19.5k star!看起来马上就会成为 Node.js 和 Deno 的一大竞争对手了!和传统的 Node.js 这种传统的 javaScript 运行时不同,Bun.js 直接内置了打包器、转译器、任务运行器和 npm 客户端,这意味着你...

奇舞周刊 608

QT编程之PCM音频播放与采集

Qt5/Qt6通用方案。

深之JohnChen的专栏 1170

rk3566-11.0新增device分区

1.增加块设备 2.修改根目录节点权限 3.开机启动自动挂载 增加块设备 1.修改parameter.txt文件,新增块设备大小及命名 device/rockchip/rk356x/rk3566_r/parameter.txt FIRMWARE_VER: 11.0 MACHINE_MODEL: rk3566_r MACHINE_ID: 007 MANUFACTURER: rockchip MAGIC: 0x5041524B ATAG: 0x00200800 MACHINE

weixin_51115260的博客 3384

还在用 Node.js 吗?试试 Bun.js

今天的主角,(下称Bun),新一代的All-In-One的JavaScript运行时,Node.js(下称Node)和Deno的挑战者。Bun目前才版本,作为后起之秀,却已经拥有超过28K的Star,要知道,目前发布多年Node目前是89K。这里提到的三方面,SSR、SQLite和FFI都远远吊打Node和Deno,这要得益于Bun自身提供的JavaScript内核,它比V8引擎更快、内存效率更高。SSR,服务器渲染。.........

YopenLang的博客 6600

8.时间序列预测

目标:使用历史数据预测未来的销售额。通过以上步骤,可以在Excel中有效进行预测分析,帮助做出更准确的决策通过考虑不同时期数据的影响,可以显著提高预测的准确性。结合多种方法和模型,可以灵活应对复杂的市场环境和变化。

学习,输出==》再学习再输出 891

每秒处理 129 万个请求!Bun.js 性能迎来大幅增长!

点击上方前端Q,关注公众号回复加群,加入前端Q技术交流群近期,Bun 发布了 v1.1.25 版本,并高调宣布在最新的性能测试中,每秒可以处理 129 万个 HTTP 请求,我们一起来看看这个版本究竟做了哪些改进吧。node:cluster 支持Bun 现在支持 node:cluster API。通过使用这个 API,你可以在同一个端口上运行一组 Bun workers,从而实现更高的吞吐量和利...

LuckyWinty的博客 1155

LVGL 磁罗盘效果

环境:LVGL 9.x + SDL2,窗口 1280×800。界面文案用英文(默认 Montserrat,无 CJK)。本文按实现顺序讲:先建立两个耦合转动体,再把磁倾角误差从卡面倾斜里推出来,最后用同一套投影把刻度、数字和目标画到卡上。画面上的迟滞、涡流、摆动和读数偏差都来自方程,没有补间动画。

摸鱼专家 88

Yolov8轻量级网络:Ghostnet、G_ghost、Ghostnetv2家族大作战(一):华为Ghostnet,超越谷歌MobileNet | CVPR2020

Yolov8引入轻量级网络Ghostnet、G_ghost、Ghostnetv2等,减少最新的深度神经网络的计算成本,引入高效的神经网络结构。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 2567

[特殊字符] Bun.js 2025终极入门指南:这个JavaScript运行时,让开发效率提升300%

极致性能- 从系统层面优化的原生实现开发体验- 开箱即用,减少依赖复杂度标准兼容- 同时支持Node.js和Web标准安全可靠- 内存安全的设计和实现立即行动建议从现有项目的小模块开始尝试Bun原生API重点关注性能敏感的场景(文件IO、网络请求)逐步替换第三方依赖为原生实现参与Bun.js社区,贡献代码和反馈不要再被第三方库绑架了!用Bun.js原生API,重新掌控你的代码性能!

2401_86373285的博客 1302

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Bun 1.0 正式发布,爆火的前端运行时,速度遥遥领先!

好消息,2023年5月26号Bun 官方对外发布 Bun 0.6.4 版本,距离上一次Bun 0.6.0版本(2023年5月16号),短短只有10天时间。据 Bun官方的说法是,Bun 0.6.0 版本是迄今为止 Bun 最大的一次更新版本。接下来小编带着大家细聊Bun 最近更新了哪些内容。

一个努力不被优化的程序员 867

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

构建高性能Web应用:探索Bun.js的崛起与应用实践

Bun.js 是一个现代化的JavaScript运行时,基于快速、高效的WebKit JavaScriptCore引擎,而非Node.js使用的V8引擎。速度更快:据官方统计,Bun.js在处理大多数任务时都比Node.js快数倍。内置支持工具链:例如TypeScript编译器、打包器以及测试工具,无需额外安装第三方工具。优秀的模块兼容性:支持Node.js和浏览器的模块。轻量级:安装包极小,依赖更少。在当下对性能要求极高的Web开发领域,Bun.js带来的性能提升和开发便利性为开发者提供了新的选择。

桂月二二博客 1422

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

【Bun运行时】全面解析:高性能、易用的新一代JavaScript/TypeScript运行时

Bun运行时是一款新兴的JavaScript和TypeScript运行时,它由Jarred Sumner创建,旨在提供比Node.js和Deno更高的性能和更快的启动速度。Bun的初衷是通过原生编译、轻量化架构和改进的开发体验,简化前端开发者的工作流程。Bun不仅支持Node.js的大部分API,还内置了诸如包管理、文件系统访问、跨平台支持等多项功能,成为开发者的高效工具。对于追求高性能的API服务、快速启动的开发工具,Bun是值得尝试的选择。

佚名程序员 3184

深入探讨 Bun.js:现代 JavaScript 和 TypeScript 应用的终极运行时选择

Bun.js 是一个由 Jarred Sumner 开发的高性能 JavaScript 运行时,基于 Zig 编程语言构建,旨在加速 JavaScript 的执行和优化开发体验。其设计目标不仅涵盖了高效的 JavaScript 执行环境,还支持 TypeScript 编译、打包工具以及测试框架。

桂月二二博客 1829

深度科普 - 大名鼎鼎的bun.js到底是什么? 它能否替代node.js? 是否能成为前端生态的未来?...

什么是bun? 聪明的小伙伴们,你们在接触bun时是否有过这样的疑问呢? bun.js是什么? 它是如何诞生的? 跟node.js的区别是什么? 有什么优势? 目前的发展情况如何了? 他是否是前端的未来? 随便在网上一搜索网页可能会告诉你: Bun.js 定位为 Node.js 的现代化替代品。它集成了运行时、包管理器、构建工具、测试框架等核心功能,并原生支持 TypeScript、JSX...

weixin_32050033的博客 635
上一篇: 程序员不会SQL?骨灰级工程师:全等着被淘汰吧!这是必会技能!
下一篇: FlieBeat & Kafka & Clickhouse 替代ELK 系列一
Java技术那些事儿
博客等级 码龄5年 2306粉丝 2584原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值