[OSS紹介#68] Bun:JavaScript・TypeScript開発の新たな選択肢を探る

この記事について

この記事では、注目のオープンソースソフトウェア(OSS)「Bun」を紹介します。この記事は、連載第68回にあたります。

ソフトウェア開発の現場では、JavaScriptやTypeScriptのアプリケーションの開発効率を向上させるツールが常に求められています。その中で、Bunは独自のランタイムを提供し、Node.jsの代替として注目を集めています。Bunは、シングルエグゼキュータブルとして提供され、多くの機能を内包しており、開発の生産性を大幅に向上させる可能性があります。

この記事を通じて、Bunがどのように開発環境を変革し、特にスタートアップタイムやメモリ使用量を抑えつつ、より快適な開発体験を提供するのかについて詳しく掘り下げます。また、Bunが提供する様々な機能や使い方も紹介し、開発者にとっての意義を明らかにしていきます。ぜひご覧ください。

リンク:https://github.com/oven-sh/bun


本コンテンツは、弊社AI開発ツール「IXV」を用いたOSSツール紹介です。情報の正確性には努めておりますが、内容に誤りが含まれる可能性がございますのでご了承ください。

1. Bunでできること

BunはJavaScriptおよびTypeScriptアプリケーション用のオールインワンツールキットです。主に以下の機能を提供します。

1.1 Bunランタイム

Bunは、Node.jsの代替として設計された高速なJavaScriptランタイムです。Zigで書かれ、JavaScriptCoreを使用しており、起動時間とメモリ使用量を大幅に削減します。このランタイムは、TypeScriptやJSXをネイティブにサポートしています。

1.2 コマンドラインツール

Bunのコマンドラインツールは、テストランナー、スクリプトランナー、Node.js互換のパッケージマネージャーを含んでいます。これにより、従来の開発に必要な多くのnode_modulesを必要とせず、Bun一つで開発を行うことが可能です。

1.3 主要コマンド

以下のコマンドを使用して、Bunを活用できます。

bun run index.tsx             # TypeScriptおよびJSXを実行
bun test                      # テストを実行
bun run start                 # package.jsonのstartスクリプトを実行
bun install <pkg>             # パッケージをインストール
bunx cowsay 'Hello, world!'   # パッケージを実行

2. セットアップ手順

Bunは、Linux(x64およびarm64)、macOS(x64およびApple Silicon)、およびWindows(x64)で動作します。

2.1 システム要件

  • Linuxユーザーは、カーネルバージョン5.6以上を推奨しますが、最低でも5.1が必要です。
  • x64ユーザーは「不正な命令」や類似のエラーが発生した場合、CPU要件を確認してください。

2.2 インストール方法

Bunは、以下の方法でインストールできます。

macOS/Linuxの場合は、以下のコマンドを使用します(推奨方法):

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

特定のバージョンをインストールする場合は、次のようにします:

curl -fsSL https://bun.sh/install | bash -s "bun-v1.2.17"

Windowsにおけるインストールは、以下のコマンドを使用します:

powershell -c "irm bun.sh/install.ps1 | iex"

npmでのインストールは、以下のコマンドを使用します:

npm install -g bun

Homebrewでのインストールは、以下のコマンドを使用します:

brew tap oven-sh/bun
brew install bun

Dockerを使用したインストールは、以下のコマンドで行います:

docker pull oven/bun
docker run --rm --init --ulimit memlock=-1:-1 oven/bun

2.3 アップグレード

最新バージョンへのアップグレードは、以下のコマンドで行います。

bun upgrade

カナリアビルドへのアップグレードは、以下のコマンドで実行できます。

bun upgrade --canary

3. 簡単な使い方

Bunの基本的な使い方について、いくつかの例を示します。

3.1 スクリプトの実行

TypeScriptやJSXファイルを実行するには、以下のコマンドを使用します。

bun run index.tsx

3.2 テストの実行

テストを実行するには、次のコマンドを使用します。

bun test

3.3 パッケージのインストール

必要なパッケージをインストールするには、以下のコマンドを使用します。

bun install <pkg>

3.4 スクリプトの実行

package.jsonに定義されたスクリプトを実行する場合は、以下のコマンドを使用します。

bun run start

3.5 簡単なHTTPサーバーの構築

Bunを使って簡単なHTTPサーバーを構築するには、まず新しいディレクトリを作成します。

mkdir quickstart
cd quickstart

次に、以下のコマンドでプロジェクトの雛形を生成します。

bun init

生成されたindex.tsに以下のコードを追加します。

const server = Bun.serve({
  port: 3000,
  fetch(req) {
    return new Response("Bun!");
  },
});
console.log(`Listening on http://localhost:${server.port} ...`);

その後、以下のコマンドでサーバーを起動します。

bun index.ts

ブラウザでhttp://localhost:3000にアクセスすると、「Bun!」というレスポンスを確認できます。

結論

Bunは、JavaScriptおよびTypeScriptアプリケーションのための強力で高速なツールキットです。Node.jsの代替として機能し、開発者にとっての生産性を向上させる数多くの機能を提供します。Bunのセットアップは簡単で、コマンドラインからの操作も直感的です。これにより、開発環境をスムーズに構築し、効率的に作業を進めることができます。Bunを試して、次世代のアプリケーション開発を体験してみてください。