Nostrプロトコルベースの完全分散型トピック中心ソーシャルアプリケーション
kukuriは、Nostrプロトコルを基盤とした完全分散型ソーシャルアプリケーションです。BitTorrent Mainline DHTを活用した分散型ピア発見により、中央サーバー依存を完全に排除し、真の検閲耐性とユーザー主権を実現します。
- 🌐 完全分散型: BitTorrent DHTによるサーバーレスピア発見
- 🔐 暗号化通信: エンドツーエンドの暗号化によるプライバシー保護
- 📝 トピックベース: 興味のあるトピックに基づいた情報共有
- ⚡ 高速同期: iroh-gossipによる効率的なイベント配信
- 🔍 DHT基盤: irohビルトインDHTによる自動ブートストラップ
- 🖥️ デスクトップアプリ: Tauri v2による軽量で高速なネイティブアプリ
- 👥 複数アカウント管理: セキュアストレージによる安全なアカウント切り替え
- 🔑 自動ログイン: プラットフォーム固有のキーチェーンによる安全な認証
- フロントエンド: React 18 + TypeScript + Vite
- デスクトップフレームワーク: Tauri v2
- UI: shadcn/ui (Radix UI + Tailwind CSS)
- 状態管理: Zustand
- P2P通信: iroh + iroh-gossip
- ピア発見: irohビルトインDHT (BitTorrent Mainline DHT)
- プロトコル: Nostr (NIP準拠)
- データベース: SQLite
- セキュアストレージ: keyring (Keychain/Credential Manager/Secret Service)
- Node.js v20以上
- pnpm
- Rust 1.70以上
- Git
# リポジトリのクローン
git clone https://github.com/yourusername/kukuri.git
cd kukuri
# 開発ツールのインストール(初回のみ)
./scripts/install-dev-tools.sh
# 依存関係のインストール
pnpm install
# 開発サーバーの起動
pnpm tauri dev
# 開発サーバー起動
pnpm tauri dev
# ビルド
pnpm tauri build
# ビルド(Windows)
pnpm tauri build --runner cargo-xwin --target x86_64-pc-windows-msvc
# ビルド(Android)
pnpm tauri android build
# リント
pnpm lint
# フォーマット
pnpm format
# テスト実行
pnpm test
cargo test
kukuri/
├── src/ # Reactフロントエンド
│ ├── components/ # UIコンポーネント
│ ├── hooks/ # カスタムフック
│ ├── stores/ # Zustandストア
│ └── pages/ # ページコンポーネント
├── src-tauri/ # Rustバックエンド
│ ├── src/
│ │ ├── commands/ # Tauriコマンド
│ │ ├── nostr/ # Nostr実装
│ │ ├── p2p/ # P2P通信
│ │ └── db/ # データベース
│ └── Cargo.toml
├── docs/ # ドキュメント
├── scripts/ # ユーティリティスクリプト
├── workers/ # Cloudflare Workers
└── pkarr/ # Pkarr submodule (DHTリレーサーバー)
kukuriは、irohのビルトインDHTディスカバリー機能を通じてPkarrリレーサーバーと連携します。ローカル開発環境では、Docker Composeを使用してPkarrリレーサーバーを起動できます。
# 初回のみ: submoduleの初期化
git submodule update --init --recursive
# Pkarrリレーサーバーの起動
docker-compose up -d
# ログの確認
docker-compose logs -f pkarr
# サーバーの停止
docker-compose down
Pkarrリレーサーバーの設定はconfig.toml
で管理されています:
- HTTPポート: 8080 (API)
- Mainline DHTポート: 6881 (DHT通信)
- キャッシュ:
.pkarr_cache/
ディレクトリに保存
# Pkarrリレーサーバーのヘルスチェック
curl http://localhost:8080/health
# ステータス確認
curl http://localhost:8080/stats
詳細なドキュメントはdocs/
ディレクトリを参照してください:
プルリクエストを歓迎します!コントリビューションの際は以下をご確認ください:
- Issueを作成して変更内容を説明
- フィーチャーブランチを作成(
git checkout -b feature/amazing-feature
) - 変更をコミット(
git commit -m 'Add amazing feature'
) - ブランチをプッシュ(
git push origin feature/amazing-feature
) - プルリクエストを作成
このプロジェクトはMITライセンスの下で公開されています。詳細はLICENSEファイルを参照してください。
- Issue: GitHub Issues
- Discussion: GitHub Discussions