Node.js: Difference between revisions

Content deleted Content added
https://en.wikipedia.org/wiki/Wikipedia:External_links
Line 233:
 
=== Internals ===
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 (server computers)|NonStop]], and Unix. Node.js relies on [https://www.nghttp2.org nghttp2] for HTTP support. As of version 20, Node.js uses the [https://github.com/ada-url/ada ada library] which provides up-to-date [[WHATWG]] [[URL]] compliance. [https://nodejs.org/en/blog/release/v19.5.0 As of version 19.5], Node.js uses the [https://github.com/simdutf/simdutf simdutf library] for fast Unicode validation and transcoding. [https://nodejs.org/en/blog/release/v21.3.0 As of version 21.3], Node.js uses the [https://github.com/simdjson/simdjson simdjson library] for fast JSON parsing.
 
=== Threading ===
Node.js operates on a [[Single threading|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 switch]]ing.<ref>{{cite web|url=http://blog.caustik.com/2012/08/19/node-js-w1m-concurrent-connections/|title=Node.js w/1M concurrent connections!|work=caustik's blog|date=19 August 2012}}</ref> 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 (computer programming)|callback]]. To accommodate the single-threaded event loop, Node.js uses the [[libuv]] library—which, in turn, uses a fixed-sized thread pool that handles some of the non-blocking asynchronous I/O operations.<ref name="readwrite" />
Line 246 ⟶ 247:
 
=== Package management ===
[[npm (software)|npm]] is the pre-installed package manager for the Node.js server platform. It installs Node.js programs from the [https://www.npmjs.com/ npm registry], organizing the installation and management of third-party Node.js programs.
 
=== Event loop ===