Bun “全家桶” JavaScript 运行时开源项目

我要开发同款
白开水不加糖2022年08月30日
284阅读

技术信息

开源地址
https://gitee.com/mirrors/bun
授权协议
MIT

作品详情

Bu 是采用 Zig语言编写的高性能“全家桶”JavaScript运行时,官方称其为"all-i-oe JavaScriptrutime"。Bu提供了打包、转译、安装和运行JavaScript&TypeScript项目的功能,内置原生打包器(ativebudler)、转译器、taskruer、pm客户端,以及 fetch、WebSocket等WebAPI。

Bu是一个新的:

带有WebAPI的JavaScript运行时,内置fetch、WebSocket等API。bu嵌入了JavaScriptCore,它往往比V8等更流行的引擎更快且内存效率更高(尽管更难嵌入)JavaScript/TypeScript/JSX转译器JavaScript和CSS打包器package.jso脚本的任务运行器pm兼容的包管理器Bu的HTTP服务器基于 Request 和 Respose 等Web标准:

//http.jsexportdefault{port:3000,fetch(request){returewRespose("WelcometoBu!");},};Bu完全从零开始构建,对标的项目是Node.js和Deo这类现代化的JavaScript运行时。

Bu旨在替代当前的JavaScript和TypeScript应用程序或脚本,原生实现了数百个Node.js和WebAPI,包括约90%的 Node-API 函数(ativemodules)、fs、path、Buffer等。

Bu的目标是在浏览器之外运行世界上大多数JavaScript,为未来的基础架构带来性能和复杂性的增强,并通过更好、更简单的工具提高开发人员的生产力。

内置了诸如fetch、WebSocket和ReadableStream等WebAPIode_modulesbu实现了Node.js的模块解析算法,因此你可以在Bu中使用pm包。支持ESM和CommoJS,但Bu内部使用ESM在Bu中,每个文件都是转译的。TypeScript和JSX就可以使用Bu支持来自tscofig.jso文件的"paths"、"jsxImportSource"等。Bu.TraspilerBu的JsX和TypeScript转译器在Bu中作为API可用。使用Bu.write提供的最快系统调用来写入、复制、管道、发送和克隆文件。Bu自动从.ev文件加载环境变量。不再需要require("dotev").cofig()Bu提供了一个快速的SQLite3客户端,内置bu:sqlite。Node-APIBu实现了大部分的Node-API(N-API)。许多Node.js原生模块都可以使用bu:ffi使用Bu的低开销外部函数接口从JavaScript调用ativecode。ode:fsode:pathBu原生支持越来越多的Node.js核心模块,以及像Buffer和process这样的globals。性能测试结果对比:

▲服务器端渲染(每秒的HTTP请求数)

▲加载大型数据表(每秒的平均请求数)

功能介绍

Bun 是采用 Zig 语言编写的高性能 “全家桶” JavaScript 运行时,官方称其为 "all-in-one JavaScript runtime"。Bun 提供了打包、转译、安装和运...

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论