Repolode
SAMA-Communications

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 の数値は毎日更新されます。

関連プロジェクト