JavaScriptランタイム「Bun v0.5」登場。MySQLやPostgreSQLのデータベース接続対応、新機能「Workspaces」、Bun.dnsなど搭載
サーバサイドで実行可能なJavaScriptランタイム「Bun」の最新バージョン「Bun v0.5」がリリースされました。
Introducing Bun v0.5
— Jarred Sumner (@jarredsumner) January 18, 2023
- bun install workspaces && bun install bugfixes
- postgres, mysql, redis & more DB-related npm pkgs work in bun now
- Bun.dns && some of node:dns, node:net, & node:tls
- new WebSocket supports headers
- HTTP client proxy supporthttps://t.co/TMoXr781QP
BunはNode.jsやDenoといったJavaScriptランタイムの競合と位置づけられているオープンソースのソフトウェアです。
JavaScriptエンジンにはSafariに搭載されているJavaScriptCoreを採用。Node.jsとの互換性を実現するためにNode.jsの主要なAPIやNode.jsのモジュール依存関係解決アルゴリズムも実装し、内蔵するnpmクライアントにより高速にnpmパッケージを読み込んで利用できるようになっています。
さらにバンドラ、トランスパイラ、タスクランナーなどの機能が最初から統合されており、TypeScript/JSXトランスパイラによってTypeScriptファイルをそのまま読み込んで実行できるなど、JavaScriptランタイムとして先行するNode.jsのエコシステムやDenoの利点を取り込みつつ、さらに機能を発展させています。
その上で、開発言語としてZigを採用し、メモリ管理などを含む低レイヤでの実装を実現することで、他のJavaScriptランタイムと比較して高速な動作を実現していると説明されています。
PostgreSQLやMySQLとの接続もサポート
Bun v0.5では「node:dns」や「node:tls」などによるソケット通信をサポート。これによりNode.jsとの互換性が向上し、npmとして実装されたデータベースドライバなどが動作するようになりました。
具体的にはPostgres.jsによるPostgreSQLとの接続やmysql2によるMySQLとの接続、Node.js clientによるRedisとの接続などが可能になっています。
複雑なソフトウェアを簡単にする新機能Workspaces
新機能として、package.jsonのなかでWorkspacesと呼ばれる機能が使えるようになりました。
「Workspaces make it easy to develop complex software as a monorepo consisting of several independent packages. 」(ワークスペースを利用することで、複雑なソフトウェアを複数の独立したパッケージからなるモノレポとして簡単に開発することができます)と説明されており、コードを複数の部品に分解できること、そして依存性の重複を避けることなどが可能になるとのことです。
Workspacesには今後、名前を付けられるようになる予定。
またドメイン名を解決するBun.dnsおよびNode.jsとの互換性のためのnode:dnsなどの機能も追加されています。
その他詳しい情報については「Bun v0.5」をご覧ください。また、Bun v0.5のリリースの2日後にはBun v0.5.1が早くも登場しています。
Bun v0.5.1
— Jarred Sumner (@jarredsumner) January 20, 2023
- bun install now supports aliasing package.json dependencies
- fixed buffer encoding regression
- fetch() wasn't wired up to $HTTP_PROXY, now it is
- const f = require; f("a") didn't work
+ couple more bugfixeshttps://t.co/1NIBbdnXvV
あわせて読みたい
マイクロソフト、「AWS Nitro」対抗のクラウド基盤用プロセッサを自社開発か、DPUベンダのFungible買収を発表
≪前の記事
日本語の問いをChatGPTでSQLに変換、実行する「Chat2Query」を搭載。MySQL互換のTiDB Cloud