ブラウザー、Node.js、React Native、Electronで動作し、自前のバックエンドとレプリケーションできる、JavaScriptアプリ向けのローカルファーストなリアクティブNoSQLデータベース。
amark/gun
分散型でオフラインファースト、エンドツーエンド暗号化に対応したアプリを構築するための、JavaScript製グラフ同期エンジン兼ツールキット。ピア間で同期します。
代替できる製品:Firebase
- スター
- 19,149
- フォーク
- 1,241
- 未解決の Issue
- 317
- 最終コミット
- 7 日前
これは何?
GUNは、コミュニティが運営する暗号化アプリを構築するためのツール群で、Firebaseのようなバックエンドに代わるオープンソースの選択肢として位置づけられています。データをドキュメントやテーブルなどを表現できるキーと値のノードからなるグラフとして保存し、中央のマスターサーバーを介さず、ピア間で変更をリアルタイムに同期します。
アプリケーションはブラウザーまたはNode.jsで動作し、ライブラリはオフラインでも利用できます。デバイスが再接続すると更新内容がマージされます。エコシステムには、ユーザー認証と暗号化を担うSEA、Docker、Heroku、またはLinux用インストールスクリプトでデプロイできるリレーピアのほか、React、Vue、Svelte、Electronなどのフレームワーク向けバインディングやサンプルが含まれます。
このプロジェクトはCRDTベースの競合解決を採用しており、READMEではコアライブラリをgzip圧縮時に約9KBの軽量な組み込みエンジンと説明しています。
主な機能
- 01クライアント間で状態をリアルタイムにP2P同期します。
- 02キーと値、テーブル、ドキュメントに対応するグラフデータモデル。
- 03オフラインファーストで動作し、再接続時に更新内容を自動マージします。
- 04SEAモジュールによるエンドツーエンド暗号化とユーザー認証。
- 05Docker、Heroku、またはLinux用インストールスクリプトでリレーピアをデプロイできます。
ユースケース
- オフラインでも動作し続ける、共同作業アプリやマルチプレイヤーWebアプリの構築。
- JavaScriptでサーバーレスまたは分散型バックエンドを試作する。
- 個人用またはコミュニティ向けアプリのために、暗号化されたユーザー所有のデータストアを作成する。
- 開発チーム向けにセルフホスト型のリレーピアを運用する。
クイックスタート
- 1
npmでパッケージをインストールします
npm install gun - 2
パッケージのフォルダーから同梱のサンプルを実行します
cd node_modules/gun && npm start
使う前に知っておきたいこと
- ライセンスはNOASSERTIONと記載されています。使用する前に、リポジトリのライセンス条件を確認してください。
- READMEには安定版の記載がないため、バージョン間で変更が生じる可能性があります。
トピック
よくある質問
- gun とは?
- 分散型でオフラインファースト、エンドツーエンド暗号化に対応したアプリを構築するための、JavaScript製グラフ同期エンジン兼ツールキット。ピア間で同期します。 GUNは、コミュニティが運営する暗号化アプリを構築するためのツール群で、Firebaseのようなバックエンドに代わるオープンソースの選択肢として位置づけられています。データをドキュメントやテーブルなどを表現できるキーと値のノードからなるグラフとして保存し、中央のマスターサーバーを介さず、ピア間で変更をリアルタイムに同期します。
- gun は無料で使えますか?ライセンスは?
- gun は Other ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- gun は今もメンテナンスされていますか?
- 活発にメンテナンス中。gun の最終コミットは 2026年10月15日 です。
- gun は何に使えますか?
- オフラインでも動作し続ける、共同作業アプリやマルチプレイヤーWebアプリの構築。 JavaScriptでサーバーレスまたは分散型バックエンドを試作する。 個人用またはコミュニティ向けアプリのために、暗号化されたユーザー所有のデータストアを作成する。 開発チーム向けにセルフホスト型のリレーピアを運用する。
- gun のインストール方法は?
- npmでパッケージをインストールします: npm install gun パッケージのフォルダーから同梱のサンプルを実行します: cd node_modules/gun && npm start
- gun はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/amark/gun
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
独自サーバーなしで、WebRTCによるブラウザー間のP2P接続を実現するマルチプレイヤーWebアプリ向けJavaScriptライブラリ。
Postgresを中心とした開発プラットフォーム。Firebaseの代替として、ホステッドPostgresデータベースに認証、自動生成API、ストレージ、リアルタイム機能を備えています。
Node.jsなどのJSプラットフォームで使えるTypeScript/JavaScript向けORM。多くのSQL・NoSQLデータベースに対応し、Active RecordとData Mapperの両パターンをサポートします。
ドキュメント、グラフ、リレーショナル、時系列、キー・バリューのデータと、リアルタイムクエリ、組み込みのアクセス制御を統合したRust製マルチモデルデータベース。
非同期アプリケーション向けに、スキーマ、モデル、バリデーション、クエリヘルパーを提供するNode.js用MongoDBオブジェクトモデリングライブラリ。