Category: 04. History

  • Event loop

    Node.js registers with the operating system so the OS notifies it of asynchronous I/O events such as new connections. Within the Node.js runtime, events trigger callbacks and each connection is handled as a small heap allocation. Traditionally, relatively heavyweight OS processes or threads handled each connection. Node.js uses an event loop for concurrent I/O, instead of processes or…

  • V8

    V8 is the JavaScript execution engine which was initially built for Google Chrome. It was then open-sourced by Google in 2008. Written in C++, V8 compiles JavaScript source code to native machine code at runtime.[7] As of 2016, it also includes Ignition, a bytecode interpreter.

  • Threading

    Node.js operates on a single-thread event loop, using non-blocking I/O calls, allowing it to support tens of thousands of concurrent connections without incurring the cost of thread context switching.[57] The design of sharing a single thread among all the requests that use the observer pattern is intended for building highly concurrent applications, where any function performing I/O must use a callback. To accommodate the…

  • Technical details

    Node.js is a JavaScript runtime environment that processes incoming requests in a loop, called the event loop. Internals[edit] Node.js uses libuv under the hood to handle asynchronous events. Libuv is an abstraction layer for network and file system functionality on both Windows and POSIX-based systems such as Linux, macOS, OSS on NonStop, and Unix. Node.js relies on nghttp2 for HTTP support. As of…

  • Releases

    New major releases of Node.js are cut from the GitHub main branch every six months. Even-numbered versions are cut in April and odd-numbered versions are cut in October. When a new odd version is released, the previous even version undergoes transition to Long Term Support (LTS), which gives that version 18 months of active support from the date it…

  • Industry support

    There are thousands of open-source libraries for Node.js, most of which are hosted on the npm website. Multiple developer conferences and events are held that support the Node.js community, including NodeConf, Node Interactive and Node Summit, as well as a number of regional events. The open-source community has developed web frameworks to accelerate the development of applications.…

  • Platform architecture

    Node.js enables development of fast web servers in JavaScript using event-driven programming.[17] Developers can create scalable servers without using threading by using a simplified model that uses callbacks to signal the completion of a task.[17][page needed] Node.js connects the ease of a scripting language (JavaScript) with the power of Unix network programming.[17] Node.js was built on top of Google’s V8 JavaScript engine since…

  • Overview

    Node.js allows the creation of web servers and networking tools using JavaScript and a collection of “modules” that handle various core functionalities.[14][17][30][31][32] Modules are provided for file system I/O, networking (DNS, HTTP, TCP, TLS/SSL or UDP), binary data (buffers), cryptography functions, data streams and other core functions.[17][31][33] Node.js’s modules use an API designed to reduce the complexity of writing server applications.[17][31] JavaScript is the only language that Node.js supports natively, but many compile-to-JS languages are available.[34] As…

  • Branding

    The Node.js logo features a green hexagon with overlapping bands to represent the cross-platform nature of the runtime.[28] The Rocket Turtle was chosen as the official Node.js mascot in February 2024 following a design contest.[29]

  • History

    Node.js was initially written by Ryan Dahl in 2009,[10] about 13 years after the introduction of the first server-side JavaScript environment, Netscape’s LiveWire Pro Web.[11] The initial release supported only Linux and Mac OS X. Its development and maintenance was led by Dahl and later sponsored by Joyent.[12] Dahl criticized the limited capability of Apache HTTP Server to handle many (10,000+) concurrent connections, as…