JavaScript Engine (original) (raw)
Starting from version 0.8.6, multiple JavaScript engines are supported. To specify a particular engine, use the js_engine
directive available for both thehttpandstream. 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 fornjs/nginx objectshas 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 forhttpandstream.
njs built-in modules status:
- buffer: since 0.8.6.
- crypto: since 0.8.10.
- fs: since 0.8.9.
- querystring: since 0.8.10.
- WebCrypto: since 0.8.10.
- xml: since 0.8.10.
- zlib: since 0.8.5.
njs built-in objects status:
- process: since 0.8.8.
- TextDecoder: since 0.8.10.
- TextEncoder: since 0.8.10.
nginx built-in objects status:
- ngx.fetch: TBD.
- shared dictionary: since 0.8.8.