はじめに
新しいJavaScriptランタイムが注目を集めているので、少し試してみました。
(肉まんかわいい)
Bunとは
Bunは、2021年9月にリリースしたJavaScriptランタイムです。
2022/8/9時点で、Githubのスター数は、約30,000あり、フロント界隈では注目されているのではないでしょうか?
Bunについて
公式サイトによると、Bun is a fast all-in-one JavaScript runtime
だそうです。
Bunだけで、transpiler,bundler,package managerができて、めちゃくちゃ早いらしい。
-
fetch
、WebSocket
などの Web API が組み込まれた JavaScript ランタイム。 Bun には JavaScriptCore が組み込まれています。JavaScriptCore は、V8 などの一般的なエンジンよりも高速でメモリ効率が高い傾向があります - JavaScript/TypeScript/JSX transpiler
- JavaScript & CSS bundler
-
package.json
scriptsのTask runner -
npm
互換のpackage manager
Web API との互換性
- TypeScript と JSX のサポートが組み込まれており、BunのJavaScript トランスパイラーによって強化されています。
- ESM および CommonJS モジュールがサポートされています (内部的に、bun.js は ESM を使用します)。
- 多くの npm パッケージは bun.js で動作します。
- tsconfig.json の
"paths"
は、package.json の"exports
"とともにネイティブにサポートされています - Nodeからの
fs
、path
、およびprocess
は部分的に実装されています -
fetch
、Response
、URL
などの Web API が組み込まれています -
HTMLRewriterbun.js
で HTML を簡単に変換できます - .env ファイルは自動的に process.env および Bun.env に読み込まれます
公式Twitterでもnodeよりも4倍早く起動すると紹介してあります。
使い方
Bunをインストールします。
これで、Bunを使用することができます。
curl https://bun.sh/install | bash
exec /bin/zsh
検証
Bunでcreate react appをしてみました。
どれだけ早いか試してみます!
$bun create react test
ポッチ!!
ものの数秒で、アプリを起動することができました!!
爆速。
npx create-react-app
とは比較にならないくらい早かったです。
Bunのパフォーマンスについて
Bunのパフォーマンスは、nodeとdenoに比べても恐ろしくパフォーマンスがいいです。
ReactでのSSR
SQLiteでの読み込み
FFi実行
Bunは、node,denoに置き換わる可能性がありますね!
危惧すべきこと
Bun は Jarred Sumner さんが一人で開発しているプロダクトなので、今後開発が継続されるのか?は危惧すべきことだと思います。
また独自で開発を進めているので、サードパーティのライブラリで使えないものも多かったという声も聞いています。
今後、どのように開発が進むのか注目です。
公式サイト
参考
採用のお知らせ
株式会社Relicでは、フロントエンドエンジニアを積極的に採用中です。
またRelicでは、地方拠点がありますので、U・Iターンも大歓迎です!🙌
少しでもご興味がある方は、Relic採用サイトからエントリーください!