node的依赖
node主要是通过C/C++来达到各种能力的,在源码中,可以在deps下查看其依赖列表,以16.15.0为例,依赖的有以下库
-
acorn
体积小但效率高的javascript解析器
-
brotli
C语言版本的Brotli压缩算法实现
-
cares
异步DNS解析库
-
cjs-module-lexer CommonJS模块的词法分析器
-
corepack 用于管理包的实验性工具
-
googletest
Google Testing and Mocking Framework,基于C++
-
histogram
A High Dynamic Range(HDR) Histogram,直译为高动态范围直方图,是延时统计分析的利器
-
icu-small
ICU(International Components for Unicode)是一套成熟并广泛使用的C/C++和Java库集合,为软件应用提供Unicode和Globalization的支持
-
llhttp
更加高性能可维护性更好的http解析器
-
nghttp2
HTTP/2协议的C语言实现,头部压缩算法使用了HPACK
-
ngtcp2
提供HTTP/3协议的支持
-
npm
JavaScript的包管理器
-
openssl
OpenSSL在tls和密码模块中都得到了广泛的应用。它提供了经过严密测试的许多加密功能的实现,现代web依赖这些功能来实现安全性
-
undici
用于替换之前的request库,用于做HTTP1.1的请求库
-
uv
专注于异步IO,并且支持多平台的支持库,是nodejs的核心库之一
-
uvwasi
基于WebAssembly版本的uv
-
v8
将js代码转换为可以在各个平台和机器运行的机器码,是nodejs的核心库之一
-
zlib
用于压缩和解压缩的库