SDK、REST API、webhookを備え、開発者が自社アプリに組み込めるGo製のオープンソース・インスタントメッセージングサーバー。
LockGit/gochat
純粋なGoで書かれた軽量なインスタントメッセージングバックエンド。WebSocketとTCPでの個人間メッセージやルーム内ブロードキャストに対応します。
- スター
- 2,937
- フォーク
- 475
- 未解決の Issue
- 30
- 最終コミット
- 2 か月前
これは何?
gochatは、純粋なGoで実装されたインスタントメッセージングシステムです。1対1のプライベートメッセージと、チャットルーム内でのブロードキャストに対応しており、各レイヤーはRPCで通信するため、水平スケールできます。
クライアントはWebSocketまたはTCPで接続でき、異なる接続方式間でもメッセージをやり取りできます。サービスの相互検出にはetcdを使い、Redisをメッセージキューおよびストレージ層として利用します。デモ構成ではユーザーデータにsqlite3とGORMを使用しており、別のリレーショナルデータベースやKafka、RabbitMQなどのより高機能なキューに置き換えることもできます。
プロジェクトはapi、connect、logic、task、siteの各モジュールに分かれており、それぞれを単一のバイナリで個別に起動します。Dockerの構成と起動スクリプトを使えば、依存サービスとデモ用チャットルームを立ち上げられます。また、TypeScriptとReactで作られたフロントエンドも別途用意されています。
主な機能
- 01プライベートメッセージとルーム内ブロードキャスト
- 02WebSocketとTCPでのクライアント接続、およびプロトコルをまたいだメッセージ配信
- 03etcdによるサービス検出とレイヤー間のRPC通信
- 04KafkaやRabbitMQに置き換え可能なRedisベースのメッセージキュー
- 05依存サービスとデモをワンコマンドで起動できるDocker構成
ユースケース
- 水平スケール可能なGo製チャットサーバーの構成を学ぶ
- 社内チャットやメッセージング機能のプロトタイプを作る
- 既存のビジネスロジックを基盤に、独自のIMバックエンドを構築する
クイックスタート
- 1
リポジトリをクローンする
git clone git@github.com:LockGit/gochat.git - 2
付属のスクリプトを使って Docker でデモを起動する(ローカルアドレス)
cd gochat && sh run.sh dev 127.0.0.1 - 3
ブラウザーで http://127.0.0.1:8080 を開いてチャットルームに入る
使う前に知っておきたいこと
- Docker を使わない場合は、etcd と Redis が必要で、複数モジュールを手動で起動する必要があります。
- メッセージはデータベースに保存されず、キューを介して中継されるだけです。
- README によると、サンプルデモでは TCP チャネルは有効になっていません。
収録されている特集
トピック
よくある質問
- gochat とは?
- 純粋なGoで書かれた軽量なインスタントメッセージングバックエンド。WebSocketとTCPでの個人間メッセージやルーム内ブロードキャストに対応します。 gochatは、純粋なGoで実装されたインスタントメッセージングシステムです。1対1のプライベートメッセージと、チャットルーム内でのブロードキャストに対応しており、各レイヤーはRPCで通信するため、水平スケールできます。
- gochat は無料で使えますか?ライセンスは?
- gochat は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- gochat は今もメンテナンスされていますか?
- 半年以内に更新あり。gochat の最終コミットは 2026年9月1日 です。
- gochat は何に使えますか?
- 水平スケール可能なGo製チャットサーバーの構成を学ぶ 社内チャットやメッセージング機能のプロトタイプを作る 既存のビジネスロジックを基盤に、独自のIMバックエンドを構築する
- gochat のインストール方法は?
- リポジトリをクローンする: git clone git@github.com:LockGit/gochat.git 付属のスクリプトを使って Docker でデモを起動する(ローカルアドレス): cd gochat && sh run.sh dev 127.0.0.1 ブラウザーで http://127.0.0.1:8080 を開いてチャットルームに入る
- gochat はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/LockGit/gochat
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Go製のセルフホスト可能なインスタントメッセージングサーバー。Android、iOS、WebクライアントとJSON/WebSocket・gRPC APIを提供。
人間とAIエージェントが協働するオープンな職場環境「OCTO」のGo製バックエンド。REST/WebSocket APIとWuKongIMベースのリアルタイムメッセージングを提供します。
Cloudflare Workersで動くセルフホスト型チームチャット。リアルタイム通信、双方向Telegram連携、サーバー側のメッセージ・ファイル暗号化に対応。
Stoatチャットプラットフォームを支えるRust製のバックエンドサービスとライブラリ。REST API、WebSocketイベントサーバー、ファイルサーバーなどを含みます。
uWebSockets.jsを基盤とするチャットサーバー。XMPPに代わる選択肢として、Node.jsバックエンド、MongoDB、Redisを採用しています。