Exploring Node.js Architecture

12 Sep 2022
Beginner
14.5K Views

Node.js has mainly two types of components – core components and node.js API (modules). The core components are written in C and C++, and node.js API are written in JavaScript. Diagram for Node.js architecture is given below:

Node.js 4.2.4 Architecture
  1. Node.js API

    These are written in JavaScript and directly exposed to outer world to interact with Node.js internal components. Node.js Binding – These are Core API, which bind the JavaScript with C / C++ libraries.

  2. C/C++ Add-ons

    You can also develop your Node.js Add-ons using C/C++ to work with Node.js.

  3. V8

    It is Google’s open source JavaScript engine, written in C++. Actually, it is a JavaScript VM which compile the JavaScript code into native machine code instead interpretation. It is the fastest JIT (Just-In-Time) compiler for JavaScript.

  4. Libuv

    It is a multi-platform support C++ library which is responsible for handling thread pool, event loop and async I/O operations in Node.js. In Node.js, blocking I/O operations are delegated to Libuv modules which has a fixed size C++ thread pool to handle these operations. When these operations are completed, they are notified to Event loop.

  5. C-ares

    It is a C library for handling async DNS request, name resolves and multiple DNS queries in parallel.

  6. http_parser

    It is a C library for parsing HTTP request and response.

  7. OpenSSL

    It is a C library for the implementation of Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols. It also provides all the necessary cryptography methods like hash, cipher, decipher, sign and verify etc.

  8. Zlib

    It is a C library for data compression and decompression.

What do you think?

I hope you get the idea of Node.js internal structure. I would like to have feedback from my blog readers. Your valuable feedback, question, or comments about this article are always welcome.

Learn to Crack Your Technical Interview

Accept cookies & close this