Go製のセルフホスト可能なインスタントメッセージングサーバー。Android、iOS、WebクライアントとJSON/WebSocket・gRPC APIを提供。
SAMA-Communications/sama-server
uWebSockets.jsを基盤とするチャットサーバー。XMPPに代わる選択肢として、Node.jsバックエンド、MongoDB、Redisを採用しています。
- スター
- 161
- フォーク
- 16
- 未解決の Issue
- 3
- 最終コミット
- 先月
これは何?
SAMAは、インスタントメッセージングの長年の標準であるXMPPに代わるものとして設計された、チャットサーバー兼メッセージングプロトコルです。サーバーはNode.js上でJavaScriptにより実装され、WebSocketの処理にuWebSockets.jsを使用します。データの保存にはMongoDB、クラスターの状態管理にはRedisを使用します。
ユーザー、会話、メッセージ、アクティビティ、アドレス帳、プッシュ通知向けのAPIを提供します。公式のWebクライアントとFlutterクライアントは別々のリポジトリで公開されており、スタック全体をテストできるホスト型デモも用意されています。
クラスター内のノードはRedisのレコードを通じて互いを検出し、ノード間でWebSocket接続を確立します。また、離脱したノードが残したデータをクリーンアップします。
主な機能
- 01uWebSockets.jsとNode.jsを基盤とするチャットサーバー
- 02データの保存にMongoDB、クラスターの連携にRedisを使用
- 03ユーザー、会話、メッセージ、プッシュ通知向けのAPIを提供
- 04ノードの自動検出と再接続に対応したマルチノードクラスター構成
- 05アドレス帳APIとアクティビティAPIを搭載
ユースケース
- XMPPに代わるセルフホスト型チャットバックエンドの構築
- 複数のNode.jsノードにまたがってスケールするメッセージングサービスの運用
- 既存のWebクライアントやFlutterクライアントを使ったチャット製品のプロトタイピング
使う前に知っておきたいこと
- バックエンドの依存関係として MongoDB と Redis が必要です。
- GPL-3.0 ライセンスが適用されています。コピーレフトライセンスのため、派生物には義務が生じます。
- README ではセットアップ手順を説明せず、ローカル開発とデプロイに関する外部ドキュメントを案内しています。
トピック
よくある質問
- sama-server とは?
- uWebSockets.jsを基盤とするチャットサーバー。XMPPに代わる選択肢として、Node.jsバックエンド、MongoDB、Redisを採用しています。 SAMAは、インスタントメッセージングの長年の標準であるXMPPに代わるものとして設計された、チャットサーバー兼メッセージングプロトコルです。サーバーはNode.js上でJavaScriptにより実装され、WebSocketの処理にuWebSockets.jsを使用します。データの保存にはMongoDB、クラスターの状態管理にはRedisを使用します。
- sama-server は無料で使えますか?ライセンスは?
- sama-server は GPL-3.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- sama-server は今もメンテナンスされていますか?
- 半年以内に更新あり。sama-server の最終コミットは 2026年10月5日 です。
- sama-server は何に使えますか?
- XMPPに代わるセルフホスト型チャットバックエンドの構築 複数のNode.jsノードにまたがってスケールするメッセージングサービスの運用 既存のWebクライアントやFlutterクライアントを使ったチャット製品のプロトタイピング
- sama-server はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/SAMA-Communications/sama-server
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Stoatチャットプラットフォームを支えるRust製のバックエンドサービスとライブラリ。REST API、WebSocketイベントサーバー、ファイルサーバーなどを含みます。
XMPPチャット、MQTTメッセージング、SIP音声・ビデオシグナリングに対応する、Erlang製のオープンソースリアルタイムサーバー。
大規模な企業環境向けに設計された、Erlang製のスケーラブルで耐障害性に優れたXMPPインスタントメッセージングサーバー。
TCP、BOSH、WebSockets経由のクライアント接続に対応する、モジュール式で設定可能なJava製XMPP/Jabberチャットサーバー。
Ethora向けのSDKモノレポ。React、React Native、Android、iOS、WordPress用SDKに加え、AIボットとMCPのツールを収録したチャット・メッセージングプラットフォームです。