عن المشروع

croc أداة نقل الملفات من سطر الأوامر مصممة لتمكين أي جهازين من تبادل الملفات والمجلدات ببساطة وآمان. وفقًا لملف README، تدمج التوصيل المباشر بين الأجهزة مع اعتماد على الخادم الاحتياطي، والتشفير من طرف إلى طرف المستند إلى اتفاق مفتاح مُعتمد على كلمة مرور (PAKE)، والدعم عبر منصات (Windows وLinux وmacOS وعميل متصفح)، ونقلات متعددة الملفات، ونقلات قابلة لإعادة الاستمرار، وعدم الحاجة إلى خادم محلي أو توجيه منفذ. يُوصف بأنه يعطي أولوية لـ IPv6 مع اعتماد على IPv4 في حال الفشل ويستطيع العمل عبر بروكسي مثل Tor. تتمحور الاستخدامات حول عبارة كود قصيرة. يقوم المرسل بتشغيل `croc send [ملف(أو ملفات)-أو مجلد]`، مما يطبع عبارة كود؛ يقوم المستلم بتشغيل `croc كود-العبارة` على جهاز آخر. تُحرك عبارة الكود عملية التحقق من الهوية (PAKE) التي تنتج مفتاحًا مشتركًا للتشفير. على Linux وmacOS، يوصي ملف README بتمرير المفتاح كمتغير بيئة (`CROC_SECRET=*** croc`) لتجنب تسريبه عبر اسم العملية، مع خيار `--classic` لإعادة السلوكيات الافتراضية على الأنظمة ذات المستخدم الواحد. بالإضافة إلى الإرسال والاستقبال الأساسيين، توثق الأداة خيارات متعددة: عبارات كود مخصصة، و`--overwrite` و`--rename` لمعالجة الملفات الموجودة، و`--exclude` و`--exclude-file` لفلترة محتويات المجلدات، ونقل عبر stdin/stdout، وإرسال نص قصير باستخدام `--text`، وإرسال ملفات متعددة أو مجلدات، وعرض رمز QR للاستخدام على الهاتف المحمول، ودعم لبروكسي SOCKS5، وخيارات لاختيار منحنيات التشفير، وخوارزمية تجزئة بديلة `imohash`، وأساليب سلوك المقصوصة، ووضع صامت للنصوص البرمجية. يصف ملف README أيضًا `croc ssh`، الذي يشارك جلسة سطر أوامر مستمرة على Linux وmacOS وFreeBSD وOpenBSD. يصدر المضيف دعوات منفصلة بستة كلمات لكل مشارك يقرأ/يكتب وآخر يقرأ فقط؛ تستخدم الجلسة مسارًا مؤقتًا بـ WireGuard مع مفتاح مضيف SSH مؤقت، ويتم تعطيل الأوامر عن بُعد وForwarding وSFTP. يحتوي وضع `croc store` على تحميل نص مشفر من جانب العميل للاسترجاع لاحقًا، مع حدود قابلة للتكوين للتنزيل والانتهاء، ورابط متصفح يحتوي على مفتاح فك التشفير في الجزء المحدد من الرابط، وأمر إلغاء. تُختار النقلة بشكل افتراضي بـ `--transport auto`: بعد عملية التحقق من الهوية (PAKE)، تحاول العملاء المتوافقة نقلًا مباشرًا بين الأجهزة باستخدام مسار بـ WireGuard مع تراجع DERP وTraversal NAT، وإلا فإنها تعود إلى منافذ التوصيل الخاصة بـ croc. يمكن للمستخدمين إنشاء خادم احتياطي بأنفسهم باستخدام `croc relay` (المنافذ الافتراضية TCP 9009-9013) أو عبر Docker، مع كلمة مرور اختيارية. عميل ويب بـ React/Vite، مدمج في خادم منفصل `croc-web`، يمكنه إرسال واستقبال الملفات وانضمام إلى جلسات `croc ssh`، وهو متوافق مع سطر الأوامر. يتم وثائق التثبيت عبر برنامج بحثي، Homebrew، MacPorts، Scoop، Chocolatey، Nix، Alpine، Debian، Arch، Termux، FreeBSD، Conda، Docker، بناء من المصدر باستخدام Go، وأدوات واجهة رسومية للهواتف الذكية والسطح المكتب من المجتمع. تغطي ملاحظات النشر Disco المتغيرات البيئية، منافذ الخادم، ووحدة تخزين مستمرة.