English | 日本語
A fully decentralized, topic-first social app built on Nostr, iroh-gossip, and BitTorrent Mainline DHT.
kukuri is a Tauri desktop application and supporting services that enable topic-based social sharing without relying on central servers. It uses iroh-gossip for fast event distribution and DHT-based discovery for peer connectivity, with Nostr-compatible events as the data model.
- Node.js 20+
- pnpm (via Corepack)
- Rust toolchain
- Docker (for the Docker test runner and community node)
chmod +x scripts/install-dev-tools.sh
./scripts/install-dev-tools.sh
corepack enable pnpm
cd kukuri-tauri
corepack pnpm install --frozen-lockfilecd kukuri-tauri
corepack pnpm tauri dev# Full test suite in Docker
./scripts/test-docker.sh all
# Frontend tests (Linux/macOS/WSL2)
cd kukuri-tauri
pnpm test
# Rust tests (Linux/macOS/WSL2)
cd kukuri-tauri/src-tauri
cargo testWindows: Use
./scripts/test-docker.ps1 <suite>instead of runningpnpm test/cargo testdirectly on the host.
.
├── kukuri-tauri/ # Desktop app (React + Tauri)
├── kukuri-community-node/ # Community node services
├── docs/ # Design, implementation, and runbooks
├── scripts/ # Dev/test automation
└── docker/ # Docker assets
| Name | Path | What it does | How to run / test |
|---|---|---|---|
| Desktop app | kukuri-tauri/ |
Tauri + React client | cd kukuri-tauri && pnpm tauri dev / pnpm test |
| Rust core (Tauri) | kukuri-tauri/src-tauri/ |
Rust backend, migrations, SQLite | cd kukuri-tauri/src-tauri && cargo test |
| Community node | kukuri-community-node/ |
Community node services + cn CLI (p2p bootstrap/relay) |
cd kukuri-community-node && docker compose up -d / cargo test --workspace --all-features |
# Desktop app
cd kukuri-tauri
pnpm tauri dev
pnpm tauri build
pnpm lint
pnpm format
pnpm type-check
pnpm test
# Rust (Tauri)
cd kukuri-tauri/src-tauri
cargo test
cargo clippy -D warnings
# Community node / cn-cli
cd kukuri-community-node
cargo test --workspace --all-features
cargo build --release -p cn-cli# Run everything in Docker
./scripts/test-docker.sh all
# Windows (PowerShell)
./scripts/test-docker.ps1 all./.env.example(bootstrap/relay secrets and defaults)./kukuri-community-node/.env.example(community node services)
cd kukuri-community-node
cp .env.example .envdocker compose -f docker-compose.test.yml up -d p2p-bootstrap
# ...run your checks...
docker compose -f docker-compose.test.yml down --remove-orphansgraph TD
A[Client: Tauri App] --> B[Discovery: BitTorrent DHT]
A --> C[P2P Network: iroh-gossip]
C --> D[Marketplace: Search/Suggestion Nodes]
CI is defined in ./.github/workflows/test.yml and includes Docker test suites, native Linux tests (Rust + TS), community node tests, format checks, Windows build checks, and desktop E2E scenarios.
- Open an issue to discuss changes before large work.
- Keep changes scoped and aligned with the existing docs under
./docs/. - Run the relevant tests for the area you touched (see Quickstart and Development workflow).
MIT. See LICENSE.