V8、Rust、Tokioを基盤とする、セキュアなデフォルト設定を備えたJavaScript、TypeScript、WebAssemblyランタイム。
cloudflare/workerd
Cloudflare Workersを支えるものと同じコードから作られた、セルフホストやローカル開発向けのJavaScript/Wasmサーバーランタイム。
- スター
- 9,036
- フォーク
- 796
- 未解決の Issue
- 813
- 最終コミット
- 4 時間前
これは何?
workerdは、Cloudflare Workers向けに書かれたJavaScriptとWebAssemblyのコードを実行するサーバーランタイムです。Workersアプリケーションをセルフホストするアプリケーションサーバーとして、ローカルでの開発・テストツールとして、またはリクエストを傍受、変更、ルーティングするプログラマブルなフォワード/リバースHTTPプロキシとして利用できます。
アプリケーションは、同じスレッドとプロセス内で互いを呼び出すナノサービスに分割されます。リソースはグローバル名前空間ではなく、Cap'n Protoの設定ファイルに記述したケイパビリティバインディングを通じて接続します。組み込みAPIはfetch()などのWebプラットフォーム標準に準拠しており、各バージョンには互換性日付が設定されるため、過去のAPIの動作を再現できます。
このプロジェクトはC++で実装され、Bazelでビルドされます。ビルド済みバイナリはnpm経由で配布されています。Linux、macOS、Windowsでテストされており、環境変数MINIFLARE_WORKERD_PATHを通じてWranglerと連携します。プロジェクトによると、workerdは強固なサンドボックスではないため、信頼できないコードはVMなどの隔離環境内で実行する必要があります。
主な機能
- 01Cloudflare Workers向けに書かれたJavaScriptおよびWasmコードを実行します。
- 02アプリケーションを、プロセス内で互いを呼び出すナノサービスに分割します。
- 03ケイパビリティバインディングを使ってCap'n Protoファイルで設定できます。
- 04互換性日付を指定して、過去のAPIの動作を再現できます。
- 05プログラマブルなフォワード/リバースHTTPプロキシとして実行できます。
- 06--socket-fdを使ったsystemdソケット継承に対応しています。
ユースケース
- Cloudflare Workers向けに設計されたアプリケーションをセルフホストする。
- Wranglerを使ってWorkersコードをローカルで開発・テストする。
- リクエストを変更またはルーティングするプログラマブルなHTTPプロキシを構築する。
クイックスタート
- 1
Bazelでworkerdバイナリをビルドする
bazel build //src/workerd/server:workerd - 2
サービスとソケットを定義する設定ファイル(例: my-config.capnp)を作成する
- 3
workerdで設定ファイルを使ってサービスを起動する
workerd serve my-config.capnp
使う前に知っておきたいこと
- workerdは強化されたサンドボックスではないため、信頼できないコードは仮想マシンなどの安全なサンドボックス内で実行してください。
- ソースからビルドするには、大規模なツールチェーンが必要です。Linuxではclang 22以降、libc++ 22以降、LLD 22以降、macOSではXcode 16.3などが必要です。
- 公式にテストされているのは、x86-64およびarm64のLinux、macOS、Windowsのみです。
トピック
よくある質問
- workerd とは?
- Cloudflare Workersを支えるものと同じコードから作られた、セルフホストやローカル開発向けのJavaScript/Wasmサーバーランタイム。 workerdは、Cloudflare Workers向けに書かれたJavaScriptとWebAssemblyのコードを実行するサーバーランタイムです。Workersアプリケーションをセルフホストするアプリケーションサーバーとして、ローカルでの開発・テストツールとして、またはリクエストを傍受、変更、ルーティングするプログラマブルなフォワード/リバースHTTPプロキシとして利用できます。
- workerd は無料で使えますか?ライセンスは?
- workerd は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- workerd は今もメンテナンスされていますか?
- 活発にメンテナンス中。workerd の最終コミットは 2026年10月21日 です。
- workerd は何に使えますか?
- Cloudflare Workers向けに設計されたアプリケーションをセルフホストする。 Wranglerを使ってWorkersコードをローカルで開発・テストする。 リクエストを変更またはルーティングするプログラマブルなHTTPプロキシを構築する。
- workerd のインストール方法は?
- Bazelでworkerdバイナリをビルドする: bazel build //src/workerd/server:workerd サービスとソケットを定義する設定ファイル(例: my-config.capnp)を作成する workerdで設定ファイルを使ってサービスを起動する: workerd serve my-config.capnp
- workerd はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/cloudflare/workerd
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Workers、KV、D1、R2などを1台で実行できる、単一のRustバイナリで提供されるセルフホスト型プラットフォーム。
Node.jsは、ブラウザー外でJavaScriptを実行するための、オープンソースかつクロスプラットフォームのJavaScriptランタイムです。
ランタイム、バンドラー、テストランナー、パッケージマネージャーを単一の実行ファイルにまとめた、高速なJavaScript/TypeScriptツールキット。
Cloudflare Workers上で動作するセルフホスト型メールサービス。1つのドメインに複数のメールボックスを作成でき、メール送信や添付ファイル、レスポンシブなWeb UIを利用できます。
Cloudflare Durable Objects上で、リアルタイムの状態同期、スケジューリング、MCPに対応した永続的なステートフルAIエージェントを構築するTypeScript SDK。