JavaScript Engine
Starting from version 0.8.6,
multiple JavaScript engines are supported.
To specify a particular engine, use the js_engine
directive
available for both the
http
and
stream.
By default, the njs engine is used.
njs engine
njs is an embeddable JavaScript engine developed as a part of the njs module. See the Сompatibility section for details.
QuickJS engine
QuickJS is a lightweight, embeddable JavaScript engine that supports the ES2023 specification, including features as modules, asynchronous generators, proxies and BigInt.
Since version 0.8.6, a drop-in replacement for njs/nginx objects has been introduced to ensure compatibility with the njs engine, with the following exceptions:
-
njs-specific API:
njs.dump()
,njs.on()
,console.dump()
. -
deprecated API:
require()
, use theimport
statement instead. -
js_preload_object
directive for http and stream.
njs built-in modules status:
-
buffer
: since 0.8.6. -
crypto
: TBD. -
fs
: since 0.8.9. -
querystring
: TBD. -
WebCrypto
: TBD. -
xml
: TBD. -
zlib
: since 0.8.5.
njs built-in objects status:
-
process
: since 0.8.8. -
TextDecoder
: TBD. -
TextEncoder
: TBD.
nginx built-in objects status:
-
ngx.fetch
: TBD. -
shared dictionary
: since 0.8.8.