27
DecExploring Node.js Architecture
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:
Read More - Node JS Interview Questions for Experienced
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.
C/C++ Add-ons
You can also develop your Node.js Add-ons using C/C++ to work with Node.js.
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.
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.
C-ares
It is a C library for handling async DNS request, name resolves and multiple DNS queries in parallel.
http_parser
It is a C library for parsing HTTP request and response.
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.
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.
Take our Nodejs skill challenge to evaluate yourself!
In less than 5 minutes, with our skill challenge, you can identify your knowledge gaps and strengths in a given skill.