Repolode
centrifugal

centrifugal/centrifugo

WebSocket、SSE、HTTPストリーミング、GRPC、WebTransportでユーザーにメッセージを配信する、セルフホスト型・言語非依存のリアルタイムPUB/SUBメッセージングサーバー。

代替できる製品:PusherAblyPubNub

スター
10,951
フォーク
754
未解決の Issue
25
最終コミット
一昨日

これは何?

Centrifugoは、WebSocket、HTTPストリーミング、Server-Sent Events、GRPC、WebTransportで接続したユーザーにメッセージを即座に届ける、オープンソースのリアルタイムメッセージングサーバーです。ユーザー向けのPUB/SUBサーバーとして動作し、クライアントがチャンネルを購読し、アプリケーションのバックエンドがシンプルなHTTPまたはGRPC APIを通じてチャンネルにメッセージを配信します。

Centrifugoはバックエンドの言語に依存しないため、リアルタイム配信をビジネスロジックから切り離せます。公式クライアントSDKはJavaScript、Dart/Flutter、Swift、Java、Python、Go、.NETに対応しています。また、単純な用途ではSDKを使わず、選択したトランスポートに対応する標準クライアントを利用できます。

Redis(Redis Clusterおよび互換ストレージを含む)、PostgreSQL、NATSを使ってスケールできます。ほかにも、メッセージ履歴と再接続時のメッセージ復元、join/leaveイベントを伴うプレゼンス機能、JWTまたはプロキシベースの認証、差分圧縮、Prometheusメトリクス、組み込みの管理用Web UIを備えています。

主な機能

  • 01WebSocket、SSE、HTTPストリーミング、GRPC、WebTransport(実験的)でメッセージを配信します。
  • 02ブローカーとしてRedis、Redis Cluster、PostgreSQL、NATSを利用してスケールできます。
  • 03シンプルなHTTPまたはGRPCサーバーAPIを通じてチャンネルにメッセージを配信できます。
  • 04チャンネルのメッセージ履歴に対応し、再接続後にメッセージを自動復元できます。
  • 05チャンネルごとのオンライン状況とjoin/leave通知を提供します。
  • 06JWTまたはプロキシベースの接続認証に対応しています。
  • 07Prometheusメトリクスを公開し、組み込みの管理用Web UIを備えています。

ユースケース

  • Webアプリやモバイルアプリにチャットやメッセンジャー機能を実装する。
  • ブラウザーにライブコメント、通知、データ更新をプッシュ配信する。
  • AIモデルの応答をユーザーにリアルタイムでストリーミング配信する。
  • 低遅延の同期が必要なマルチプレイヤーゲームやコラボレーションツールを支える。

クイックスタート

  1. 1

    Docker を使って、組み込みの管理 UI とともに Centrifugo を起動する

    docker run -it --rm -p 8000:8000 centrifugo/centrifugo:latest centrifugo --client.insecure --admin.enabled --admin.insecure
  2. 2

    http://localhost:8000 を開いて管理 UI にアクセスする

  3. 3

    ネイティブバイナリ、Homebrew、パッケージ、本番環境の設定に関するインストール手順に従う

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

  • クイックスタートでは認証を無効にする安全でないフラグを使用します。本番環境では使用しないでください。
  • WebTransport のサポートは実験的です。

収録されている特集

トピック

よくある質問

centrifugo とは?
WebSocket、SSE、HTTPストリーミング、GRPC、WebTransportでユーザーにメッセージを配信する、セルフホスト型・言語非依存のリアルタイムPUB/SUBメッセージングサーバー。 Centrifugoは、WebSocket、HTTPストリーミング、Server-Sent Events、GRPC、WebTransportで接続したユーザーにメッセージを即座に届ける、オープンソースのリアルタイムメッセージングサーバーです。ユーザー向けのPUB/SUBサーバーとして動作し、クライアントがチャンネルを購読し、アプリケーションのバックエンドがシンプルなHTTPまたはGRPC APIを通じてチャンネルにメッセージを配信します。
centrifugo は無料で使えますか?ライセンスは?
centrifugo は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
centrifugo は今もメンテナンスされていますか?
活発にメンテナンス中。centrifugo の最終コミットは 2026年11月6日 です。
centrifugo は何に使えますか?
Webアプリやモバイルアプリにチャットやメッセンジャー機能を実装する。 ブラウザーにライブコメント、通知、データ更新をプッシュ配信する。 AIモデルの応答をユーザーにリアルタイムでストリーミング配信する。 低遅延の同期が必要なマルチプレイヤーゲームやコラボレーションツールを支える。
centrifugo のインストール方法は?
Docker を使って、組み込みの管理 UI とともに Centrifugo を起動する: docker run -it --rm -p 8000:8000 centrifugo/centrifugo:latest centrifugo --client.insecure --admin.enabled --admin.insecure http://localhost:8000 を開いて管理 UI にアクセスする ネイティブバイナリ、Homebrew、パッケージ、本番環境の設定に関するインストール手順に従う
centrifugo はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/centrifugal/centrifugo

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

関連プロジェクト