Edit on GitHub

Зависимости

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

Библиотеки

V8

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

libuv

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

http-parser

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

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 для начальной загрузки.

Вверх