প্রকল্প সম্পর্কে

Vauchi CLI হলো Vauchi-এর কমান্ড-লাইন ইন্টারফেস, যাকে ব্যক্তিগতভাবে আদান-প্রদানযোগ্য লিভিং কন্টাক্ট কার্ডের একটি সিস্টেম হিসেবে বর্ণনা করা হয়েছে। এই রিপোজিটরিটি gitlab.com/vauchi/cli-এর একটি রিড-অনলি মিরর, যেখানে ইস্যু এবং মার্জ রিকোয়েস্ট ওপেন করতে হবে। প্রজেক্টটি বর্তমানে প্রি-আলফা পর্যায়ে এবং ব্যাপক উন্নয়নের অধীনে রয়েছে, যা প্রোডাকশনের জন্য প্রস্তুত নয় এবং এর API কোনো নোটিশ ছাড়াই পরিবর্তিত হতে পারে। ইনস্টলেশন করা হয় cargo build -p vauchi-cli --release কমান্ডের মাধ্যমে, যা target/release/vauchi-তে বাইনারি ফাইল তৈরি করে। ব্যবহারকারীরা vauchi init "Your Name" কমান্ডের মাধ্যমে একটি ক্রিপ্টোগ্রাফিক আইডেন্টিটি তৈরি করতে পারেন। কন্টাক্ট কার্ড ম্যানেজমেন্টের মধ্যে রয়েছে কার্ড প্রদর্শন করা, ইমেল, ফোন, সোশ্যাল এবং ওয়েবসাইটের মতো ফিল্ড যোগ করা, ফিল্ড এডিট করা এবং ফিল্ড মুছে ফেলা। কন্টাক্ট আদান-প্রদান ব্যক্তিগতভাবে QR কোড ব্যবহারের জন্য ডিজাইন করা হয়েছে। vauchi exchange start একটি এক্সচেঞ্জ QR কোড তৈরি করে এবং vauchi exchange complete "wb://..." অন্য কারো QR ডেটা ব্যবহার করে আদান-প্রদান সম্পন্ন করে। README-তে একটি দ্বিমুখী প্রবাহ বর্ণনা করা হয়েছে: এক পক্ষ আদান-প্রদান শুরু করে, অন্য পক্ষ তা সম্পন্ন করে এবং প্রথম পক্ষকে কন্টাক্ট হিসেবে যোগ করে, এরপর উভয় পক্ষ ডিসপ্লে নাম আদান-প্রদানের জন্য রিলের (relay) সাথে সিঙ্ক করে। কন্টাক্ট ম্যানেজমেন্ট কমান্ডগুলোর মধ্যে রয়েছে কন্টাক্ট তালিকাভুক্ত করা, কন্টাক্ট ডিটেইলস দেখানো, নাম দিয়ে অনুসন্ধান করা, কন্টাক্টের ফিঙ্গারপ্রিন্ট যাচাই করা এবং কন্টাক্ট মুছে ফেলা। vauchi sync কমান্ডটি পেন্ডিং মেসেজ পাওয়ার জন্য রিল সার্ভারের সাথে সিঙ্ক্রোনাইজ করে। ব্যাকআপ এবং রিস্টোর করার জন্য এনক্রিপ্টেড এক্সপোর্ট এবং ইমপোর্ট কমান্ড ব্যবহৃত হয়: vauchi export backup.vauchi এবং vauchi import backup.vauchi। গ্লোবাল অপশনগুলোর মাধ্যমে একটি কাস্টম ডেটা ডিরেক্টরি নির্দিষ্ট করা যায়, যার ডিফল্ট পাথ ~/.local/share/vauchi, এবং একটি রিল সার্ভার নির্দিষ্ট করা যায়, যার ডিফল্ট হলো ws://localhost:8080। এই CLI ক্রিপ্টোগ্রাফিক অপারেশন এবং ডেটা ম্যানেজমেন্টের জন্য vauchi-core ব্যবহার করে। রিল সার্ভারের সাথে যোগাযোগ WebSocket এবং একটি সাধারণ JSON প্রোটোকলের মাধ্যমে হয়। সোর্স লেআউটে এন্ট্রি পয়েন্ট এবং কমান্ড রাউটিংয়ের জন্য main.rs, এবং আইডেন্টিটি তৈরি, কার্ড ম্যানেজমেন্ট, কন্টাক্টস, এক্সচেঞ্জ, সিঙ্ক এবং ব্যাকআপের জন্য একটি commands ডিরেক্টরি রয়েছে, সাথে config, display এবং protocol মডিউল রয়েছে। README-তে বাধ্যতামূলক ডেভেলপমেন্ট রুলস উল্লেখ করা হয়েছে: Red-Green-Refactor সহ TDD, প্রথমে টেস্টিং করা, এবং src/-কে শুধুমাত্র প্রোডাকশন কোডের জন্য এবং tests/-কে শুধুমাত্র টেস্টের জন্য আলাদা রাখা। প্রজেক্টটি GitHub Sponsors এবং Liberapay-এর মাধ্যমে কমিউনিটি-ফান্ডেড এবং এটি GPL-3.0-or-later লাইসেন্সের অধীনে।