概要
OpenWorkers は、V8を利用したJavaScript実行環境を自前で構築できるオープンソースランタイム。 Cloudflare Workers 互換の構文とAPIをサポートし、エッジコンピューティングを自社インフラで実現。 Docker Compose と PostgreSQL のみでシンプルなセルフホスティングが可能。 ベンダーロックイン回避 と コスト予測性 に重点。 今後は 実行記録・リプレイによるデバッグ機能 も計画。
OpenWorkersとは
- OpenWorkers :V8 Isolateを活用したJavaScript実行ランタイム
- エッジコンピューティング :自社インフラでCloudflare Workers同等の体験
- オープンソース :Rust製、自由に改変・拡張可能
- Cloudflare Workers互換 :既存のWorkersコードをそのまま利用可能
主な機能
-
バインディング
- KVストレージ :get, put, delete, list
- PostgreSQL連携 :データベース操作
- S3/R2互換ストレージ :オブジェクト保存
- サービスバインディング :外部サービス連携
- 環境変数・シークレット :安全な情報管理
-
Web APIサポート
- fetch, Request, Response :HTTP通信
- ReadableStream :ストリーム処理
- crypto.subtle :暗号化API
- TextEncoder/Decoder, Blob :バイナリ・テキスト処理
- setTimeout, AbortController :非同期制御
アーキテクチャ概要
- nginx :リバースプロキシ役割
- ダッシュボード :管理用UI
- APIサーバー :リクエストの受付・処理
- ログサーバー :アクセス・実行ログ管理
- Runner(複数台) :V8 IsolateでJSコード実行
- PostgreSQL :永続データ保存
- NATS :メッセージキュー
- Postgate :PostgreSQL連携ゲートウェイ
- Scheduler :cronスケジューリング処理
サンドボックス・制限
- V8 Isolate :各WorkerごとにCPU(100ms)・メモリ(128MB)制限
- セキュリティ :サンドボックスによる安全な実行環境
- cron :5または6フィールドのcron構文対応
セルフホスティングの特徴
- シンプルな導入 :Docker Composeファイル+1つのPostgreSQLのみで構築可能
- データ主権 :全データが自社インフラ内で完結
- 予測可能なコスト :リクエストごとの従量課金なし
- ロックイン回避 :ベンダー依存なし
開発の経緯と思想
- 7年超の進化 :初期はvm2、次にdeno-core、現在はrusty_v8ベース
- 目的 :Cloudflare Workers相当の開発体験を自社サーバーで実現
- Claudeの協力 :rusty_v8への全面書き換えを実現
- 今後の展望 :
- 実行記録・リプレイ による決定論的デバッグ
- さらなる互換性向上 と機能追加
利用メリット
- 自社データの保護 :外部にデータが流出しない
- コスト管理 :予測しやすい運用費用
- Cloudflare Workers互換 :移行・併用が容易
- 柔軟な拡張性 :OSSならではの自由度
OpenWorkers は、エッジコンピューティングのパワーを自社インフラに持ち込みたい開発者・企業にとって、 Cloudflare Workers と同等の体験をセルフホストで実現する理想的な選択肢。