uWebSockets.jsを基盤とするチャットサーバー。XMPPに代わる選択肢として、Node.jsバックエンド、MongoDB、Redisを採用しています。
- スター
- 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
Docker を使って、組み込みの管理 UI とともに Centrifugo を起動する
docker run -it --rm -p 8000:8000 centrifugo/centrifugo:latest centrifugo --client.insecure --admin.enabled --admin.insecure - 2
http://localhost:8000 を開いて管理 UI にアクセスする
- 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 の数値は毎日更新されます。
関連プロジェクト
Laravelアプリにダイレクトメッセージ、グループ、添付ファイル、同梱のメッセンジャーUIを追加するリアルタイムチャットパッケージ。
Pusher Channels HTTP APIを通じて、イベントの送信、ユーザー認証、チャンネル情報の取得を行うPHPライブラリ。
ストリーミングASR、話者ダイアライゼーション、ライブ翻訳、OpenAI/Deepgram互換APIに対応したセルフホスト型リアルタイム音声認識サーバー。
金融、交通、気象、ニュース、サイバーセキュリティなど、リアルタイムで配信・更新される有料・公開データソースの厳選リスト。
既存のバックエンドに信頼性の高い双方向WebSocket・SSE通信を追加するオープンソースのリアルタイムサーバー。