Mirror: This repo is a read-only mirror of gitlab.com/vauchi/core. Please open issues and merge requests there.
Note
You're early — and that's the point. Vauchi is pre-alpha and under heavy development: not yet ready for production, and APIs may change without notice. If you're here now, you can help shape it — try it, break it, and tell us what's missing.
Living contact cards you exchange in person — they keep themselves up to date, for good. No accounts, no platform in the middle, no one else in the room.
When you exchange contact details with someone, that information becomes outdated the moment either of you changes your phone number, email, social media, or address. You end up with stale contacts, and people lose touch.
Worse, social media platforms keep users captive by implicitly threatening them with losing their contacts if they leave. Your relationships become locked inside platforms you may no longer want to use.
You exchange a contact card in person — a single, deliberate moment, like a handshake. From then on the card stays alive: change your number, your job, your city, and everyone you've shared it with simply sees the update. No "my number changed" messages, no company sitting in the middle of your relationships. The relationship is yours and theirs — and no one else is in the room.
- In-Person Exchange - Contact cards can only be exchanged when physically together (QR code scan)
- Selective Sharing - Control which contacts see which fields (work email vs personal)
- No Messages - This is not a messenger; it only syncs contact information
- End-to-End Encrypted - No server can read your data
- Decentralized - Relay servers only pass encrypted blobs; the relay is oblivious to content and identities
- Rust 1.78+ (see
rust-toolchain.toml) - For mobile: UniFFI, Swift/Xcode (iOS), Kotlin/Gradle (Android)
- For desktop: Node.js, pnpm, Tauri prerequisites
cargo test # All tests
cargo test -p vauchi-core # Core only
cargo clippy -- -D warnings # Lint
cargo fmt # FormatTDD: Red→Green→Refactor. Test FIRST or delete code and restart.
- Write failing test (Red)
- Write minimal code to pass (Green)
- Refactor
- Tests trace to
features/*.featureGherkin scenarios
Structure: src/ = production code only. tests/ = tests only. Siblings, not nested.
- Architecture: vauchi/docs repository
- API Reference: Generated from code comments
- BDD Scenarios:
../features/(separate repo)
The vauchi-platform crate produces UniFFI bindings consumed by:
- Android: Clone vauchi/android, run
./gradlew build - iOS: Clone vauchi/ios, open in Xcode
See each platform repo for detailed setup instructions.
- Read
vauchi/vauchi:README.mdfor project structure and commit rules - Check vauchi/docs for architecture decisions
- Follow TDD workflow strictly
- Ensure
cargo test --workspacepasses before submitting
Vauchi is open source and community-funded — no VC money, no data harvesting.
- GitHub Sponsors
- Liberapay
- Supporters for sponsorship tiers
GPL-3.0-or-later