The original address

Submesosphere

Node.js runs on top of the operating system, and on top of the operating system:

  • V8 JavaScript Engine: Consists of a memory heap, call stack, and garbage collector that converts JS code into machine code for a given operating system
  • Libuv: composed of thread pools, event loops, and event queues, libuV is a multi-platform C language library for handling non-blocking asynchronous I/O operations, providing mechanisms for handling such things as file systems, DNS, networks, subprocesses, pipes, semaphore control, polling, and data flows
  • C-ares: C language library for processing DNS requests
  • LLHTTP: parsing HTTP requests/responses (formerly using http-parse)
  • OpenSSL: a tool package that supports TLS/SSL protocols and is a general purpose encryption library
  • Zlib: Compression and decompression for synchronous, asynchronous and data streams

The middle layer

  • Node.js Bindings: Expose the interface of the underlying C/C++ written library to JS environment
  • Node.js Standard Library: Provides the core modules of Node.js itself, as documented
  • C/C++ AddOns: USER-written C/C++ modules that bridge to Node.js

Above the intermediate layer

  • Node.js API: The JS API exposed to Node.js applications
  • We develop applications using Node.js, mainly using the Node.js API, so node.js applications end up running on top of the Node.js API

After an architectural analysis, it’s easy to understand that Node.js is a V8-based JavaScript runtime.

reference

NodeJS Architecture & Concurrency Model

NodeJS Dependencies