Repolode
cloudflare

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. 1

    Bazelでworkerdバイナリをビルドする

    bazel build //src/workerd/server:workerd
  2. 2

    サービスとソケットを定義する設定ファイル(例: my-config.capnp)を作成する

  3. 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 の数値は毎日更新されます。

関連プロジェクト