このプロジェクトについて

Vauchi CLIは、対面で交換するリビングコンタクトカードのためのシステムであるVauchiのコマンドラインインターフェースです。本リポジトリは gitlab.com/vauchi/cli の読み取り専用ミラーであり、Issueやマージリクエストはそちらで管理されています。プロジェクトはプリアルファ段階で活発に開発中であり、本番環境への導入は推奨されず、APIは予告なく変更される可能性があります。 インストールは `cargo build -p vauchi-cli --release` で行い、バイナリは `target/release/vauchi` に生成されます。ユーザーは `vauchi init "Your Name"` で暗号化アイデンティティを作成できます。コンタクトカードの管理機能には、カードの表示、メール・電話・SNS・ウェブサイトなどのフィールド追加、編集、および削除が含まれます。 連絡先の交換は対面でのQRコード利用を想定して設計されています。`vauchi exchange start` で交換用QRコードを生成し、`vauchi exchange complete "wb://..."` で相手のQRデータを用いて交換を完了させます。READMEでは、一方の当事者が交換を開始し、もう一方がそれを完了して相手を連絡先に追加し、その後双方がリレーと同期して表示名を交換するという双方向の流れが説明されています。 連絡先管理コマンドには、連絡先の一覧表示、詳細表示、名前による検索、フィンガープリントの検証、および連絡先の削除があります。`vauchi sync` はリレーサーバーと同期して保留中のメッセージを受信します。バックアップと復元には、暗号化されたエクスポートおよびインポートコマンド(`vauchi export backup.vauchi` および `vauchi import backup.vauchi`)を使用します。 グローバルオプションでは、カスタムデータディレクトリ(デフォルトは `~/.local/share/vauchi`)とリレーサーバー(デフォルトは `ws://localhost:8080`)を指定できます。このCLIは、暗号化操作とデータ管理に `vauchi-core` を使用しています。リレーサーバーとの通信には、シンプルなJSONプロトコルを用いたWebSocketが使用されます。ソース構成は、エントリポイントとコマンドルーティングを担う `main.rs`、アイデンティティ作成・カード管理・連絡先・交換・同期・バックアップを扱う `commands` ディレクトリ、および `config`、`display`、`protocol` モジュールで構成されています。 READMEには必須の開発ルールが記載されています。Red-Green-RefactorによるTDD(テスト駆動開発)を実践し、テストを優先すること、また `src/` にはプロダクションコードのみを、`tests/` にはテストのみを配置し、ネストさせず兄弟ディレクトリとして保持することが求められています。本プロジェクトはGitHub SponsorsおよびLiberapayを通じてコミュニティから資金提供を受けており、GPL-3.0-or-laterライセンスの下で公開されています。