الإعتمادات

هناك العديد من الإعتمادات التي يعتمد عليها Node.js ليقوم بعمله على ما يرام.

المكتبات

V8

تزود مكتبة V8 Node.js بمحرك جافاسكريبت ،الذي يتحكم به Node.js عبر واجهة برمجة التطبيقات V8 C++. يتم الإشراف على V8 بواسطة غوغل ، للاستخدام في متصفح كروم.

libuv

إعتمادية مهمة الأخرى هي libuv ، وهي مكتبة C تُستخدم لتجريد عمليات الإدخال / الإخراج غير المحظورة إلى واجهة متناسقة عبر جميع الأنظمة الأساسية المدعومة. إنه يوفر آليات لمعالجة ملفات النظام ، DNS ، الشبكة ، العمليات الفرعية ، التصفية ، معالجة الإشارات ، الاقتراع والتدفق. يتضمن أيضًا تجمع مؤشرات ترابط لإلغاء تحميل العمل لبعض الأشياء التي لا يمكن القيام بها بشكل غير متزامن على مستوى نظام التشغيل.

llhttp

تتم معالجة تحليلات بروتوكول الـ HTTP بواسطة مكتبة C خفيفة الوزن تسمى llhttp. تم تصميمه بحيث لا يقوم بإجراء أي نداءات نظام (syscalls) أو عمليات تخصيص ( allocations ) ، لذلك لا يأخذ الطلب سوى مساحة صغيرة جدا من الذاكرة.

c-ares

بالنسبة لبعض طلبات الـ DNS الغير متزامنة ، يستخدم الـ Node.js مكتبة C تسمى c-ares. يتم كشفها من خلال وحدة DNS في جافا سكريبت كأنها عائلة من دوال الحلول ( resolve()) حيث تستخدم الدالة lookup () ، وهي ما تستخدمه بقية النواة ، المكالمات المترابطة getaddrinfo(3) في libuv. والسبب في ذلك هو أن c-ares تدعم / etc / hosts ، و /etc/resolv.conf و /etc/svc.conf ، ولكن لا تفعل مع غيرها مثل mDNS.

OpenSSL

يستخدم OpenSSL على نطاق واسع في كل من الوحدات النمطية tls و crypto.توفر العديد من وظائف التشفير التي تم اختبارها واقعيا من أجل الأمان.

zlib

من أجل الضغط السريع وإلغاء الضغط ، تعتمد Node.js على مكتبة zlib التي تمثل المعيار الذي يقاس عليه في هذه الناحية كما تعرف أيضًا باستخدامها في gzip و libpng. يستخدم الـNode.js مكتبة الـ zlib لإنشاء واجهات متزامنة وغير متزامنة إضافة إلى تمكين تدفق واجهات الضغط و فك الضغط.

الأدوات

npm

يعتبر كل ما يتعلق بالنمطية Node.js، ومع ذلك تأتي الحاجة إلى مدير حزمة ذو جودة ؛ لهذا الغرض ، تم إنشاء npm حيث يأتي مع مجموعة كبيرة من الحزم التي تم إنشاؤها من قبل المجتمع لأي نظام متكامل للبرمجة ، مما يجعل بناء تطبيقات Node.js سريعًا وسهلاً.

gyp

تتم معالجة نظام الإنشاء بواسطة gyp ، وهو منشئ مشروع يستند إلى بيثون تم نسخه من V8. يمكنه إنشاء ملفات مشاريع للاستخدام مع أنظمة الإنشاء عبر العديد من الأنظمة الأساسية. يتطلب Node.js نظام بناء لأن أجزاء كبيرة منه - وإعتماداته- مكتوبة بلغات تتطلب ترجمة.

gtest

يمكن اختبار الكود الأصلي باستخدام gtest ، وهو مأخوذ من Chromium. لأنها تتيح اختبار C / C ++ دون الحاجة إلى نود موجودة قابلة للتنفيذ.

إنتقل إلى الأعلى