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

cargo-binstall Rust বাইনারি ইনস্টল করার জন্য একটি কম-জটিলতার ব্যবস্থা প্রদান করে, যা `cargo install`-এর মাধ্যমে সোর্স থেকে বিল্ড করা বা ম্যানুয়ালি প্যাকেজ ডাউনলোড করার বিকল্প। এটি বিদ্যমান CI আর্টিফ্যাক্ট এবং ইনফ্রাস্ট্রাকচারের সাথে কাজ করার জন্য ডিজাইন করা হয়েছে, প্যাকেজ মেইনটেইনারদের জন্য ন্যূনতম ওভারহেড সহ। এটি কীভাবে কাজ করে: Binstall crates.io থেকে ক্রেট তথ্য আনে, লিঙ্ক করা রিপোজিটরিতে মিলে যাওয়া রিলিজ ও আর্টিফ্যাক্ট খোঁজে, quickinstall থার্ড-পার্টি আর্টিফ্যাক্ট হোস্টে ফিরে যায়, সমর্থিত হলে বিকল্প টার্গেট চেষ্টা করে, এবং শেষ উপায় হিসেবে `cargo install`-এ ফিরে যায়। ব্যবহার cargo install-এর মতোই। উদাহরণস্বরূপ, `cargo binstall radio-sx128x@0.14.1-alpha.5` প্যাকেজ রিজলভ করে, GitHub থেকে বাইনারি ডাউনলোড করে, ইনস্টল করার বাইনারিগুলো তালিকাভুক্ত করে এবং নিশ্চিতকরণ চায়। CI-এর মতো আনঅ্যাটেনডেড ব্যবহারের জন্য `--no-confirm` ফ্ল্যাগ রয়েছে। অতিরিক্ত অপশন `cargo binstall --help`-এ দেখা যায়। ইনস্টলেশন অপশনের মধ্যে রয়েছে Linux ও macOS-এর জন্য এক-লাইন স্ক্রিপ্ট, Homebrew, Windows-এর জন্য PowerShell এক-লাইনার, প্ল্যাটফর্ম-নির্দিষ্ট আর্কাইভ ম্যানুয়ালি ডাউনলোড (Linux x86_64/armv7/arm64, macOS Intel/Apple Silicon/Universal, Windows x86_64/aarch64), `cargo install cargo-binstall --locked` দিয়ে সোর্স থেকে বিল্ড, এবং একটি ফার্স্ট-পার্টি GitHub Action। প্রকল্পটি থার্ড-পার্টি taiki-e/install-action-ও সুপারিশ করে। উল্লিখিত সহায়ক টুলের মধ্যে রয়েছে cargo-update, যা সব টুল আপডেট করে এবং Binstall থাকলে তা ব্যবহার করে, এবং cargo-run-bin, যা টুলগুলোকে একটি প্রকল্পে সীমাবদ্ধ করে এবং Cargo.toml-এ ভার্সন নিয়ন্ত্রণ করে। অসমর্থিত ক্রেটের জন্য ব্যবহারকারীরা কমান্ড লাইনে ম্যানুয়ালি `pkg-url`, `bin-dir`, এবং `pkg-fmt` নির্দিষ্ট করতে পারেন। মেইনটেইনাররা একটি নির্দিষ্ট ভার্সন ও টার্গেটের জন্য উপযুক্ত বাইনারি প্যাকেজ খুঁজে পেতে Cargo.toml-এ স্পষ্ট Binstall মেটাডেটা যোগ করতে পারেন। সিগনেচার: মেইনটেইনারদের একটি সাইনিং পাবলিক কী এবং প্যাকেজ সিগনেচার কোথায় পাওয়া যাবে তা নির্দিষ্ট করার জন্য প্রাথমিক, সীমিত সমর্থন রয়েছে। এটি সক্রিয় থাকলে Binstall সিগনেচার ডাউনলোড ও যাচাই করে। `--only-signed` অস্বাক্ষরিত প্যাকেজ প্রত্যাখ্যান করে, আর `--skip-signatures` সিগনেচার চেকিং বা ডাউনলোড নিষ্ক্রিয় করে। নিরাপত্তা নোট: মেটাডেটা HTTPS-এর মাধ্যমে crates.io থেকে আনা হয় এবং ক্রেট tar চেকসাম যাচাই করা হয়; প্যাকেজ ফাইল ডাউনলোডের জন্য TLS >= 1.2 সহ HTTPS বাধ্যতামূলক। `curl | sh` স্ক্রিপ্টের বিপরীতে, Binstall নির্বিচারে কোড চালায় না, যদিও ইনস্টল করা ক্রেট নিজেই ক্ষতিকারক হতে পারে। টেলিমেট্রি: কিছু ইনস্টলেশন স্ট্র্যাটেজি ডিফল্টভাবে বেনামী ব্যবহার পরিসংখ্যান সংগ্রহ করতে পারে। quickinstall আর্টিফ্যাক্ট হোস্ট ব্যবহার করা হলে ক্রেটের নাম, ভার্সন, টার্গেট প্ল্যাটফর্ম ট্রিপল এবং ইউজার এজেন্ট cargo-quickinstall-stats-server URL-এর অধীন এন্ডপয়েন্টে পাঠানো হয়। সমষ্টিগত ডেটা সর্বজনীনভাবে অ্যাক্সেসযোগ্য। অপ্ট-আউট পদ্ধতির মধ্যে রয়েছে `--disable-telemetry` ফ্ল্যাগ, `BINSTALL_DISABLE_TELEMETRY` এনভায়রনমেন্ট ভেরিয়েবল, quickinstall স্ট্র্যাটেজি নিষ্ক্রিয় করা, বা ক্রেট মেটাডেটার `disabled-strategies` কনফিগারেশন কী-তে `quick-install` যোগ করা। ডিবাগ সিম্বল: `.full` সাফিক্সযুক্ত অতিরিক্ত প্রি-বিল্ট প্যাকেজে বিভক্ত ডিবাগইনফো, ডকুমেন্টেশন ফাইল এবং `detect-wasi` ইউটিলিটির মতো অতিরিক্ত বাইনারি থাকে।