Зависимости

Есть несколько зависимостей, которые используются Node.js, чтобы работать так, как он работает.

Библиотеки

V8

Библиотека V8 предоставляет для Node.js движок JavaScript, которым Node.js управляет через API C++ V8. V8 поддерживается Google для использования в Chrome.

libuv

Другой важной зависимостью является libuv, библиотека на C, которая используется для абстрагирования неблокирующих операций ввода-вывода в согласованный интерфейс на всех поддерживаемых платформах. Он предоставляет механизмы для обработки файловой системы, DNS, сети, дочерних процессов, каналов, обработки сигналов, опроса и потоковой передачи. Он также включает в себя пул потоков для разгрузки некоторых вещей, которые не могут быть выполнены асинхронно на уровне операционной системы.

llhttp

Синтаксический анализ HTTP выполняется легкой библиотекой C, которая называется llhttp. Он спроектирован таким образом, чтобы не делать никаких системных вызовов или распределений, поэтому занимает требует мало памяти на каждый запрос.

c-ares

Для некоторых асинхронных DNS-запросов Node.js использует библиотеку C под названием c-ares. Он представлен через модуль DNS в JavaScript как семейство функций 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. С npm поставляется самый большой выбор пакетов, созданных сообществом, для любой экосистемы программирования, что делает создание приложений Node.js быстрым и простым.

gyp

Системой сборки управляет gyp, генератор проектов на основе Python, скопированный с V8. Он может генерировать файлы проекта для использования на многих платформах. Node.js требует системы сборки, потому что большая его часть и зависимостей написаны на языках, требующих компиляции.

gtest

Нативный код можно протестировать с помощью gtest, который взят из Chromium. Это позволяет тестировать C/C++ без необходимости в существующем исполняемом файле node для начальной загрузки.

Вверх