프로젝트 소개
Vauchi CLI는 대면으로 교환하는 리빙 컨택트 카드 시스템인 Vauchi의 명령줄 인터페이스입니다. 이 저장소는 gitlab.com/vauchi/cli의 읽기 전용 미러이며, 이슈 및 머지 리퀘스트는 해당 사이트에서 처리해야 합니다. 본 프로젝트는 pre-alpha 단계로 활발히 개발 중이며, 프로덕션 환경에 적합하지 않고 API가 예고 없이 변경될 수 있습니다.
설치는 cargo build -p vauchi-cli --release 명령어로 수행하며, 바이너리는 target/release/vauchi에 생성됩니다. 사용자는 vauchi init "이름" 명령어로 암호화 ID를 생성할 수 있습니다. 컨택트 카드 관리 기능으로는 카드 표시, 이메일, 전화번호, 소셜, 웹사이트 등의 필드 추가, 편집 및 삭제가 포함됩니다.
연락처 교환은 대면 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, ID 생성, 카드 관리, 연락처, 교환, 동기화, 백업을 위한 commands 디렉토리, 그리고 config, display, protocol 모듈로 구성됩니다.
README에는 Red-Green-Refactor 방식의 TDD, 테스트 우선 원칙, 그리고 src/에는 프로덕션 코드만, tests/에는 테스트 코드만 배치하는 엄격한 개발 규칙이 명시되어 있습니다. 이 프로젝트는 GitHub Sponsors와 Liberapay를 통해 커뮤니티 펀딩으로 운영되며, GPL-3.0-or-later 라이선스 하에 배포됩니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.