مكتبة LiteSpeed QUIC (LSQUIC) عبارة عن تطبيق مفتوح المصدر لوظائف QUIC وHTTP/3 للخوادم والعملاء. يتم استخدام معظم التعليمات البرمجية الموجودة في هذا التوزيع في منتجاتنا الخاصة: LiteSpeed Web Server، وLiteSpeed ADC، وOpenLiteSpeed.
إصدارات QUIC المدعومة حاليًا هي v1 وv2 وإصدارات Internet-Draft 29 و27؛ والإصدارات الأقدم من Google QUIC Q043 وQ046 وQ050.
يتوافق LiteSpeed QUIC في الغالب مع طلبات RFC التالية:
يتم تنفيذ ملحقات بروتوكول QUIC التالية:
الوثائق متاحة على https://lsquic.readthedocs.io/en/latest/.
بالإضافة إلى ذلك، راجع نماذج البرامج لاستخدام واجهة برمجة التطبيقات (API) وEXAMPLES.txt للتعرف على بعض خيارات التجميع ووقت التشغيل.
لإنشاء LSQUIC، تحتاج إلى CMake وzlib وBoringSSL. يستخدم البرنامج المثال libevent لتوفير حلقة الحدث.
لم يتم حزم BoringSSL؛ عليك أن تبنيها بنفسك. العملية واضحة ومباشرة. سوف تحتاج go
التثبيت.
git clone https://boringssl.googlesource.com/boringssl
cd boringssl
قد تحتاج إلى تثبيت المتطلبات المسبقة مثل zlib وlievent.
git checkout 9fc1c33e9c21439ce5f87855a6591a9324e569fd
أو، فقط جرب أحدث فرع رئيسي.
cmake . && make
تذكر أين توجد مصادر BoringSSL:
BORINGSSL=$PWD
إذا كنت تريد تشغيل التحسينات، فقم بذلك
cmake -DCMAKE_BUILD_TYPE=Release . && make
إذا كنت تريد الإنشاء كمكتبة، (من الضروري إنشاء lsquic نفسها كمكتبة مشتركة) فقم بما يلي:
cmake -DBUILD_SHARED_LIBS=1 . && make
تربط http_client
و http_server
والاختبارات الخاصة بـ LSQUIC مكتبات BoringSSL بشكل ثابت. باتباع القسم السابق، يمكنك بناء LSQUIC على النحو التالي:
git clone https://github.com/litespeedtech/lsquic.git
cd lsquic
git submodule update --init
بشكل ثابت:
# $BORINGSSL is the top-level BoringSSL directory from the previous step
cmake -DBORINGSSL_DIR=$BORINGSSL .
make
كمكتبة ديناميكية:
cmake -DLSQUIC_SHARED_LIB=1 -DBORINGSSL_DIR=$BORINGSSL .
make
make test
يمكن إنشاء المكتبة ومثال العميل والخادم باستخدام Docker.
تهيئة وحدات Git الفرعية:
cd lsquic
git submodule update --init
بناء صورة عامل الميناء:
docker build -t lsquic .
ثم يمكنك استخدام الأمثلة من سطر الأوامر. على سبيل المثال:
sudo docker run -it --rm lsquic http_client -s www.google.com -p / -o version=h3
sudo docker run -p 12345:12345/udp -v /path/to/certs:/mnt/certs -it --rm lsquic http_server -c www.example.com,/mnt/certs/chain,/mnt/certs/key
تم اختبار المكتبة على المنصات التالية:
لا تتردد في الإبلاغ عن الأخطاء إلينا. والأفضل من ذلك، أرسل لنا الإصلاحات والتحسينات!
استمتع،
فريق LiteSpeed QUIC.
حقوق الطبع والنشر (ج) 2017 - 2021 لشركة LiteSpeed Technologies Inc