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.se کی سرکاری curl-for-win 8.22.0_3 اسٹیٹک بلڈ، 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 فیملی، کوکیز کے بغیر، خودکار ری ڈائریکٹس کے بغیر اور محدود آؤٹ پٹ اور وقت کے ساتھ چلتا ہے۔ ری ڈائریکٹس کی توثیق اور دوبارہ ریزولوشن ایپلیکیشن کرتی ہے۔ 443 کے علاوہ پورٹس پر HTTPS معاون ہے۔
HTTP/3 --http3-only استعمال کرتا ہے اور اس کی تصدیق صرف ایسی مکمل منتقلی کے بعد ہوتی ہے جو HTTP ورژن 3 اور کامیاب سرٹیفکیٹ تصدیق کی اطلاع دے۔ 404 جیسے HTTP خرابی کے جوابات پروٹوکول کی تصدیق کر سکتے ہیں۔ Alt-Svc ایک اعلان ہے، ثبوت نہیں۔ QUIC کا وقت ختم ہونا، سرٹیفکیٹ کی ناکامی، DNS کی ناکامی، کنکشن مسترد ہونا، غیر مطابق پروٹوکول اور اجزاء کی ناکامی الگ الگ رہتے ہیں۔ UDP کا وقت ختم ہونے سے سرور کی معاونت غیر مصدقہ رہتی ہے۔ QUIC ہینڈ شیک کا وقت TCP وقت کے طور پر رپورٹ نہیں کیا جاتا۔
ہر پیمائش الگ پروسیس/کنکشن شروع کرتی ہے۔ warm آپشن شامل کلائنٹ کے لیے کنکشن کے دوبارہ استعمال کا دعویٰ نہیں کرتا۔ اس سے پروٹوکول کا موازنہ یکساں رہتا ہے۔ رپورٹس میں رن ٹائم ورژنز، صلاحیتیں، TLS تصدیق اور QUIC وقت شامل ہوتے ہیں، جبکہ تاریخ/ایکسپورٹ مواد، URL کیوریز اور تصدیقی ہیڈرز ہٹا دیتے ہیں۔
ٹرانسپورٹ اسٹیک یا CA ٹرسٹ اسٹور اپ ڈیٹ کرتے وقت یہ طے شدہ قدریں اپ ڈیٹ کریں اور ہر معاون پلیٹ فارم کے لیے دوبارہ بلڈ کریں۔ شائع شدہ فائلیں اور سورس اسنیپ شاٹس ناقابلِ تغیر ہیں۔