HTTP/1.1، HTTP/2 و HTTP/3 از یک کلاینت curl همراه استفاده میکنند. macOS arm64 و Linux x64 از curl 8.22.0، OpenSSL 3.5.9، nghttp2 1.70.0، ngtcp2 1.25.0 و nghttp3 1.18.0 استفاده میکنند. Windows x64 از نسخهٔ ساخت ایستای رسمی curl-for-win 8.22.0_3 از curl.se همراه با LibreSSL 4.3.3 و همان کتابخانههای HTTP استفاده میکند. به بازگشت به curl سیستم، دانلود هنگام اجرا یا مجوز مدیر نیازی نیست. دستور ساخت بازتولیدپذیر بالادستی برای Windows این است: https://github.com/curl/curl-for-win/tree/9d77e31e .
پیش از بستهبندی، با python3 scripts/native/build.py (در Windows: python scripts/native/build.py) بسازید. macOS/Linux به ابزارهای C/C++، CMake، Ninja، Perl، make و pkg-config نیاز دارند. منابع بر اساس نسخه و SHA-256 بالادستی در scripts/native/dependencies.lock.json تثبیت شدهاند. اسکریپت هر دانلود را راستیآزمایی میکند، کتابخانههای انتقال اشخاص ثالث را بهصورت ایستا پیوند میدهد و در نبود قابلیتهای HTTP2/HTTP3/SSL شکست میخورد. فقط کتابخانههای سیستمعامل پویا میمانند. Windows از بایگانی دودویی رسمی و تثبیتشده استفاده میکند، نه پشتهٔ انتقالی که بهصورت محلی برای Windows کامپایل شده باشد. فایل CA همراه هش تثبیتشدهٔ خود را دارد؛ مجوزهای اجزا و منشأ ساخت بالادستی همراه محیط اجرا ارائه میشوند.
کلاینت و مخزن اعتماد بیرون از app.asar در resources/native-runtime/<platform>-<arch>/ نصب میشوند. هر عیبیابی پیش از استفاده، هش اجزا، معماری و قابلیتهای فایل اجرایی را راستیآزمایی میکند. فایلهای پیکربندی، پراکسیها، بازنویسیهای محیطی اعتماد TLS و متغیرهای تزریق کتابخانه کنار گذاشته میشوند. curl با مسیر مطلق، پوستهٔ غیرفعال، اعتماد CA راستیآزماییشده، خانوادهٔ IP مشخصشده بهصراحت، بدون کوکی، بدون هدایت خودکار و با خروجی و زمان محدود اجرا میشود. هدایتها توسط برنامه اعتبارسنجی و دوباره حل میشوند. HTTPS روی درگاههایی غیر از 443 پشتیبانی میشود.
HTTP/3 از --http3-only استفاده میکند و فقط پس از انتقالی کامل که HTTP نسخهٔ 3 و راستیآزمایی موفق گواهی را گزارش دهد تأیید میشود. پاسخهای خطای HTTP مانند 404 میتوانند پروتکل را تأیید کنند. Alt-Svc یک اعلان است، نه مدرک. پایان مهلت QUIC، خطای گواهی، خطای DNS، رد اتصال، پروتکل ناسازگار و خطای اجزا از هم متمایز میمانند. پایان مهلت UDP پشتیبانی سرور را راستیآزمایینشده باقی میگذارد. زمانبندی دستدهی QUIC بهعنوان زمانبندی TCP گزارش نمیشود.
هر اندازهگیری فرایند/اتصال جداگانهای آغاز میکند. گزینهٔ warm برای کلاینت همراه ادعای استفادهٔ مجدد از اتصال ندارد. این کار مقایسهٔ پروتکلها را سازگار نگه میدارد. گزارشها شامل نسخههای محیط اجرا، قابلیتها، راستیآزمایی TLS و زمانبندی QUIC هستند، در حالی که تاریخچه/برونبری محتوا، پرسوجوهای URL و سرآیندهای احراز هویت را حذف میکند.
هنگام بهروزرسانی پشتهٔ انتقال یا مخزن اعتماد CA، این مقادیر تثبیتشده را بهروز کنید و برای هر پلتفرم پشتیبانیشده دوباره بسازید. فایلهای منتشرشده و تصاویر منبع تغییرناپذیرند.