Secure, verifiable, deterministic file sync for desktop.
Local-first by design. Policy-driven. Receipt-backed.
Quick Start โข Core Capabilities โข Architecture โข Endpoint Matrix โข Testing
Nodus is a desktop sync system that helps you:
.ndc).It is designed for operators and engineers who want local control, auditability, and clear execution flow instead of opaque black-box sync behavior.
.ndc capsules.manifest.json, header.json, and chunk payloads.audit.db).en, fr, hi, zh, es, ru, de, ja, te, ta).Svelte UI (routes/components)
โ
โ Tauri IPC commands
โผ
Rust Host (src-tauri/src/main.rs)
โ
โโ nodus-engine (scan/diff/plan/transfer/commit)
โโ nodus-protocols (local + transport adapters)
โโ nodus-db (SQLite + schema + query bridge)
โโ nodus-receipts (manifest + receipt verify)
โโ nodus-capsules (.ndc pack/apply)
โโ nodus-secrets (OS keyring integration)
โโ nodus-logging (audit sink + structured log listing)
copy, update, delete)..ndc) from receipt..
โโ src/ # Svelte app (routes, components, stores, i18n)
โโ src-tauri/
โ โโ src/main.rs # Tauri command surface + runtime wiring
โ โโ crates/
โ โ โโ engine/ # scan/diff/plan/transfer/commit stages
โ โ โโ protocols/ # endpoint protocol adapters
โ โ โโ db/ # SQLite init + query facade
โ โ โโ receipts/ # manifest/receipt record + verify
โ โ โโ capsules/ # .ndc pack/apply logic
โ โ โโ logging/ # audit logging stack
โ โ โโ secrets/ # keyring-backed secret storage
โ โ โโ watcher/ # filesystem watch utilities
โ โ โโ cloud/ # cloud adapter crate (integration path)
โโ tests/e2e/ # Playwright UI/E2E suite
โโ docker/ # integration service containers (FTP/SFTP/etc.)
โโ .github/workflows/ # CI, nightly integration, release workflows
>= 20.10.0>= 9pnpm install
pnpm dev
pnpm tauri:dev
pnpm tauri:build
pnpm check
pnpm test:e2e
Manual split mode:
pnpm e2e:start
pnpm e2e
cd src-tauri
cargo test --workspace --all-features
Current runtime status in this repository:
| Endpoint Kind | UI Config | Protocol Crate | engine_run Destination Factory |
|---|---|---|---|
Local (local) |
โ | โ | โ |
| FTP / FTPS | โ | โ | ๐ง |
| SFTP / SCP | โ | โ | ๐ง |
| HTTP(S) / WebDAV | โ | โ | ๐ง |
| S3 / GCS / Azure Blob | โ | โ ๏ธ (cloud crate path) | ๐ง |
| Dropbox / Google Drive | โ | โ ๏ธ (cloud crate path) | ๐ง |
Legend:
engine_runNodus stores runtime data locally under your OS app-data directory (or NODUS_DATA_DIR if set).
Typical layout:
Nodus/
โโ nodus.sqlite # primary relational state
โโ nodus.kv # key-value store (redb)
โโ receipts/
โ โโ <run_id>/manifest.json
โโ logs/
โโ audit.db # structured audit entries
โโ nodus.log # rolling file logs
Secrets are stored via OS keyring APIs through nodus-secrets.
From package.json:
pnpm dev - Vite dev serverpnpm build - production web bundlepnpm tauri:dev - desktop dev modepnpm tauri:build - desktop production buildpnpm check - Svelte/TS checkspnpm test:e2e - end-to-end testspnpm win:portable / pnpm win:msi - Windows packaging script entry pointsBring up local FTP/SFTP test services:
docker compose -f docker/compose.integration.yml up --build
Stop them:
docker compose -f docker/compose.integration.yml down
engine_cancel is currently a placeholder command.Contributions are welcome, especially around:
Mahesh Chandra Teja Garnepudi
GitHub: MaheshChandraTeja
Mahesh Chandra Teja Garnepudi
Sagarika Srivastava
Built at Kairais Tech
Private project for now. Licensing details will be published later.