We stand with Ukraine to help keep people safe. Join us
When you purchase through links on our site, we may earn an affiliate commission

Node.js for Mac

Scalable event-driven JavaScript runtime.

Free
In English
Version 24.12.0
4.0
Based on 3 user rates

Node.js overview

As an asynchronous event-driven JavaScript runtime, Node.js is designed to build scalable network applications.

Node.js is similar in design to, and influenced by, systems like Ruby's Event Machine and Python's Twisted. Node.js takes the event model a bit further. It presents an event loop as a runtime construct instead of as a library. In other systems, there is always a blocking call to start the event-loop. Typically, behavior is defined through callbacks at the beginning of a script, and at the end a server is started through a blocking call like EventMachine::run(). In Node.js, there is no such start-the-event-loop call. Node.js simply enters the event loop after executing the input script. Node.js exits the event loop when there are no more callbacks to perform. This behavior is like browser JavaScript - the event loop is hidden from the user.

HTTP is a first-class citizen in Node.js, designed with streaming and low latency in mind. This makes Nodejs well suited for the foundation of a web library or framework.

Node.js being designed without threads doesn't mean you can't take advantage of multiple cores in your environment. Child processes can be spawned by using our child_process.fork() API, and are designed to be easy to communicate with. Built upon that same interface is the cluster module, which allows you to share sockets between processes to enable load balancing over your cores.

What’s new in version 24.12.0

Notable Changes
  • Http: Add optimizeEmptyRequests server option
  • Lib: Add options to util.deprecate
  • Module: Mark type stripping as stable
  • Node-api: Add napi_create_object_with_properties
  • Sqlite: Allow setting defensive flag
  • Src: Add watch config namespace
  • Src: Add an option to make compile cache portable
  • Src,permission: Add --allow-inspector ability
  • V8: Add cpu profile
Commits
  • Benchmark: Focus on import.meta intialization in import-meta benchmark
  • Benchmark: Add per-suite setup option
  • Buffer: Speed up concat via TypedArray#set
  • Build: Upgrade Python linter ruff, add rules ASYNC,PERF
  • Console: Optimize single-string logging
  • Crypto: Ensure documented RSA-PSS saltLength default is used
  • Crypto: Fix argument validation in crypto.timingSafeEqual fast path
  • Debugger: Fix event listener leak in the run command
  • Deps: V8: cherry-pick 72b0e27bd936
  • Deps: V8: cherry-pick 6bb32bd2c194
  • Deps: V8: cherry-pick 0dd2318b5237
  • Deps: V8: cherry-pick df20105ccf36
  • Deps: V8: backport e5dbbbadcbff
  • Deps: V8: cherry-pick 5ba9200cd046
  • Deps: Update corepack to 0.34.5
  • Deps: Update corepack to 0.34.4
  • Deps: V8: cherry-pick 06bf293610ef, 146962dda8d2 and e0fb10b5148c
  • Deps: Patch V8 to 13.6.233.17
  • Deps: V8: cherry-pick 87356585659b
  • Deps: V8: backport 2e4c5cf9b112
  • Deps: Call OPENSSL_free after ANS1_STRING_to_UTF8
  • Deps: nghttp2: revert 7784fa979d0b
  • Deps: Update nghttp2 to 1.67.1
  • Deps: Update simdjson to 4.1.0
  • Deps: Update amaro to 1.1.5
  • Deps: V8: cherry-pick 2abc61361dd4
  • Doc: Update Collaborators list to reflect hybrist handle change
  • Doc: Fix link in --env-file=file section
  • Doc: Fix linter issues
  • Doc: Add missing history entry for sqlite.md
  • Doc: Correct values/references for buffer.kMaxLength
  • Doc: Recommend events.once to manage 'close' event
  • Doc: Highlight module loading difference between import and require
  • Doc: Add CJS code snippets in sqlite.md
  • Doc: Fix typo in process.unref documentation
  • Doc: Add some entries to glossary.md
  • Doc: Improve agent.createConnection docs for http and https agents
  • Doc: Fix pseudo code in modules.md
  • Doc: Add missing variable in code snippet
  • Doc: Add missing word in single-executable-applications.md
  • Doc: Fix typo in http.md
  • Doc: Update devcontainer.json and add documentation
  • Doc: Add haramj as triager
  • Doc: Clarify require(esm) description
  • Doc: Instantiate resolver object
  • Doc: Correct module loading descriptions
  • Doc: Clarify --use-system-ca support status
  • Doc,crypto: Link keygen to supported types
  • Doc,src,lib: Clarify experimental status of Web Storage support
  • Esm: Use sync loading/resolving on non-loader-hook thread
  • Http: Add optimizeEmptyRequests server option
  • Http: Replace startsWith with strict equality
  • Http2: Add diagnostics channels for client stream request body
  • Inspector: Inspect HTTP response body
  • Inspector: Support inspecting HTTP/2 request and response bodies
  • Inspector: Fix crash when receiving non json message
  • Lib: Add options to util.deprecate
  • Lib: Replace global SharedArrayBuffer constructor with bound method
  • Meta: Bump actions/download-artifact from 5.0.0 to 6.0.0
  • Meta: Bump actions/upload-artifact from 4.6.2 to 5.0.0
  • Meta: Bump github/codeql-action from 3.30.5 to 4.31.2
  • Meta: Bump actions/setup-node from 5.0.0 to 6.0.0
  • Meta: Bump actions/stale from 10.0.0 to 10.1.0
  • Meta: Call create-release-post.yml post release
  • Module: Mark type stripping as stable
  • Module: Fix directory option in the enableCompileCache() API
  • Node-api: Add napi_create_object_with_properties
  • Node-api: Use local files for instanceof test
  • Perf_hooks: Fix stack overflow error
  • Perf_hooks: Move non-standard performance properties to perf_hooks
  • Repl: Fix pasting after moving the cursor to the left
  • Sqlite: Allow setting defensive flag
  • Sqlite,doc: Fix StatementSync section
  • Src: Use CP_UTF8 for wide file names on win32
  • Src: Move Node-API version detection to where it is used
  • Src: Add watch config namespace
  • Src: Add an option to make compile cache portable
  • Src: Avoid C strings in more C++ exception throws
  • Src: Add internal binding for constructing SharedArrayBuffers
  • Src: Move napi_addon_register_func to node_api_types.h
  • Src: Remove unconditional NAPI_EXPERIMENTAL in node.h
  • Src: Clean up generic counter implementation
  • Src: Add enum handle for ToStringHelper + formatting
  • Src,permission: Add --allow-inspector ability
  • Stream: Don't try to read more if reading
  • Test: Ensure assertions are reachable in test/internet
  • Test: Fix status when compiled without inspector
  • Test: Deflake test-perf-hooks-timerify-histogram-sync
  • Test: Apply a delay to watch-mode-kill-signal tests
  • Test: Async iife in repl
  • Test: Parallelize sea tests when there's enough disk space
  • Test: Only show overridden env in child process failures
  • Test: Ensure assertions are reached on more tests
  • Test: Ensure assertions are reachable in test/es-module
  • Test: Ensure assertions are reached on more tests
  • Test: Ensure assertions are reached on more tests
  • *
  • Test: Split test-perf-hooks-timerify
  • Test: Add more logs to test-esm-loader-hooks-inspect-wait
  • Test: Mark stringbytes-external-exceed-max tests as flaky on AIX
  • Test: Split test-esm-wasm.js
  • Test: Correct conditional secure heap flags test
  • Test: Fix flaky test-watch-mode-kill-signal-*
  • Test: Capture stack trace in debugger timeout errors
  • Test: Ensure assertions are reachable in test/sequential
  • Test: Ensure assertions are reachable in more folders
  • Test: Split test-runner-watch-mode
  • Test: Move test-runner-watch-mode helper into common
  • Test: Ensure assertions are reachable in test/addons
  • Test: Ignore EPIPE errors in https proxy invalid URL test
  • Test: Ensure assertions are reachable in test/client-proxy
  • Test: Ensure assertions are reachable in test/async-hooks
  • Test,crypto: Handle a few more BoringSSL tests
  • Test,crypto: Update x448 and ed448 expectation when on boringssl
  • Tls: Fix leak on invalid protocol method
  • Tools: Replace invalid expression in dependabot config
  • Tools: Skip unaffected GHA jobs for changes in test/internet
  • Tools: Do not use short hashes for deps versioning to avoid collision
  • Tools: Only add test reporter args when node:test is used
  • Tools: Fix update-icu script
  • Tools: Fix linter for semver-major release proposals
  • Tools: Fix failing release-proposal linter for LTS transitions
  • Tools: Remove undici from daily wpt.fyi job
  • Tools: Add lint rule to ensure assertions are reached
  • Tools,doc: Update JavaScript primitive types to match MDN Web Docs
  • Util: Fix stylize of special properties in inspect
  • V8: Add cpu profile
  • Vm: Hint module identifier in instantiate errors
  • Watch: Fix interaction with multiple env files

Node.js for Mac

Free
In English
Version 24.12.0
Write a detailed review about Node.js

Write your thoughts in our old-fashioned comment

MacUpdate Comment Policy. We strongly recommend leaving comments, however comments with abusive words, bullying, personal attacks of any type will be moderated.
4.0

(2 Reviews of Node.js)

  • Comments

  • User Ratings

premkumar3192146
premkumar3192146
Feb 23 2024
21.6.2
0.0
Feb 23 2024
0.0
Version: 21.6.2
Poor boy
Awado
Awado
Oct 22 2022
19.0.0
5.0
Oct 22 2022
5.0
Version: 19.0.0
Giving node.js a one star rating means the person had no clue what it is.
Awado
Awado
Apr 4 2024
21.7.2
5.0
Apr 4 2024
5.0
Version: 21.7.2
Yaroslav
Yaroslav
Oct 24 2022
19.0.0
5.0
Oct 24 2022
5.0
Version: 19.0.0
barin
barin
Oct 24 2022
19.0.0
5.0
Oct 24 2022
5.0
Version: 19.0.0