Repolode
denoland

denoland/celld

Cloudflare WorkersアプリケーションとDurable Objectsを自前のマシンで実行し、状態をS3、GCS、Azureのバケットに保存できるセルフホスト型デーモンです。

代替できる製品:Cloudflare Workers

スター
6,057
フォーク
408
未解決の Issue
71
最終コミット
21 時間前

これは何?

celldはCloudflare Workersアプリケーションを自前のマシンで実行します。既存のwrangler.jsonから直接デプロイでき、Workers、Durable Objects、KV、Queues、D1、R2、Workflows、Cron Triggers、静的アセットに対応しています。各Durable Objectは専用のSQLiteデータベースを持つ名前付きのセルとなり、長期的な状態はS3互換ストレージ、Google Cloud Storage、またはAzure Blob Storageのバケットに保存されます。

各ノードはV8を組み込み、Wranglerのバンドルを実行する単一のcelldプロセスです。同じバケットを共有するノードでフリートを構成します。各セルの所有権はバケットへの条件付き書き込みで取得するため、同時にセルを所有するノードは1つだけです。別途コンセンサスサービスやコントロールプレーンは必要ありません。ノードが2つ以上ある場合、確定したSQLiteの書き込みはバケットにアップロードする前にピアへ複製されます。これにより、バケットへの書き込み完了を待つ単一ノード構成と比べて、書き込みレイテンシを抑えられます。

また、デプロイ済みフリートを運用するためのCLIコマンドも用意されています。診断、セルの一覧表示、D1マイグレーション、KVの一括インポート、R2オブジェクトへのアクセス、Queueの制御などを実行できます。クラウドバケットを使わずに、celld devでローカル開発を行うこともできます。

主な機能

  • 01Workers、Durable Objects、KV、Queues、D1、R2、Workflows、Cron Triggersを自前のノードで実行します。
  • 02既存のwrangler.jsonからデプロイでき、Workerのコードにはesbuildを使用します。
  • 03各Durable Objectに専用のSQLiteデータベースを用意し、バケットへの書き込みによって所有権を取得します。
  • 04長期的な状態をS3互換ストレージ、Google Cloud Storage、またはAzure Blob Storageのバケットに保存します。
  • 05マルチノードのフリートで書き込みをピアノードに複製し、書き込みレイテンシを抑えます。
  • 06クラウドバケットなしで動作するローカル開発モードを提供します。

ユースケース

  • Cloudflare Workersスタイルのバックエンドを自前のインフラで実行する。
  • データを自前のオブジェクトストレージに保持しながら、状態を持つDurable Objectsアプリケーションをホストする。
  • 既存のWranglerプロジェクトを、ホスト型のCloudflareプラットフォームから移行する。
  • デプロイ前にWorkersとDurable Objectsをローカルでテストする。

クイックスタート

  1. 1

    README の公式インストールスクリプトを実行して、celld バイナリをインストールします

  2. 2

    Worker プロジェクトでは esbuild が必要なため、インストールして PATH に追加します

  3. 3

    クラウドバケットを使わずにアプリケーションをローカルで実行します

    celld dev

使う前に知っておきたいこと

  • Worker プロジェクトでは、esbuild も PATH に追加する必要があります。
  • 単一ノードでは書き込みのたびにバケットの応答を待つため、書き込みが大幅に遅くなります。レイテンシを抑えるには、2つ以上のノードを推奨します。
  • Cloudflare ネットワーク、GPU、またはブラウザファームを必要とするサービスは対象外です。
  • コンテナのサポートは実験的とされています。

収録されている特集

トピック

よくある質問

celld とは?
Cloudflare WorkersアプリケーションとDurable Objectsを自前のマシンで実行し、状態をS3、GCS、Azureのバケットに保存できるセルフホスト型デーモンです。 celldはCloudflare Workersアプリケーションを自前のマシンで実行します。既存のwrangler.jsonから直接デプロイでき、Workers、Durable Objects、KV、Queues、D1、R2、Workflows、Cron Triggers、静的アセットに対応しています。各Durable Objectは専用のSQLiteデータベースを持つ名前付きのセルとなり、長期的な状態はS3互換ストレージ、Google Cloud Storage、またはAzure Blob Storageのバケットに保存されます。
celld は無料で使えますか?ライセンスは?
celld は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
celld は今もメンテナンスされていますか?
活発にメンテナンス中。celld の最終コミットは 2026年10月21日 です。
celld は何に使えますか?
Cloudflare Workersスタイルのバックエンドを自前のインフラで実行する。 データを自前のオブジェクトストレージに保持しながら、状態を持つDurable Objectsアプリケーションをホストする。 既存のWranglerプロジェクトを、ホスト型のCloudflareプラットフォームから移行する。 デプロイ前にWorkersとDurable Objectsをローカルでテストする。
celld のインストール方法は?
README の公式インストールスクリプトを実行して、celld バイナリをインストールします Worker プロジェクトでは esbuild が必要なため、インストールして PATH に追加します クラウドバケットを使わずにアプリケーションをローカルで実行します: celld dev
celld はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/denoland/celld

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト