Skip to content

vauchi/core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3,321 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mirror: This repo is a read-only mirror of gitlab.com/vauchi/core. Please open issues and merge requests there.

Pipeline Coverage REUSE

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.

Vauchi

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.

The Problem

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.

The Solution

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.

Key Principles

  • 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

Development

Prerequisites

  • Rust 1.78+ (see rust-toolchain.toml)
  • For mobile: UniFFI, Swift/Xcode (iOS), Kotlin/Gradle (Android)
  • For desktop: Node.js, pnpm, Tauri prerequisites

Commands

cargo test                        # All tests
cargo test -p vauchi-core         # Core only
cargo clippy -- -D warnings       # Lint
cargo fmt                         # Format

⚠️ Mandatory Development Rules

TDD: Red→Green→Refactor. Test FIRST or delete code and restart.

  1. Write failing test (Red)
  2. Write minimal code to pass (Green)
  3. Refactor
  4. Tests trace to features/*.feature Gherkin scenarios

Structure: src/ = production code only. tests/ = tests only. Siblings, not nested.

Documentation

  • Architecture: vauchi/docs repository
  • API Reference: Generated from code comments
  • BDD Scenarios: ../features/ (separate repo)

Mobile Development

The vauchi-platform crate produces UniFFI bindings consumed by:

See each platform repo for detailed setup instructions.

Contributing

  1. Read vauchi/vauchi:README.md for project structure and commit rules
  2. Check vauchi/docs for architecture decisions
  3. Follow TDD workflow strictly
  4. Ensure cargo test --workspace passes before submitting

Support the Project

Vauchi is open source and community-funded — no VC money, no data harvesting.

License

GPL-3.0-or-later

About

Vauchi — Rust core library — crypto, protocols, data models (mirror of gitlab.com/vauchi)

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages