njs 0.8.5 发布,nginx 的 JavaScript 脚本语言


njs 0.8.5 已发布,具体更新内容包括:

nginx modules:

  • 更改:带有uploaddownload事件类型的r.variables.varr.requestTextr.responseTexts.variables.vars.on()回调的data参数现在会将 UTF-8 编码无效的字节转换为替换字符。处理二进制数据时,建议改用r.rawVariables.varr.requestBuffer、 r.responseBuffers.rawVariables.var以及s.on()upstreamdownstream事件类型。
  • 功能:为 shared dictionary的add()set()incr()方法添加 了timeout参数。
  • 错误修复:检查重复的 js_set 变量。
  • 错误修复:修复了端口为非标准端口时的 requestHostheader。
  •  错误修复:修复了ngx.fetch()r.subrequest()中 zero-length request body 的处理 。
  • 错误修复:修复了Headers.get()中的堆缓冲区溢出。
  • 错误修复:修复 r.subrequest() 的错误处理。

Core:

  • 功能:为QuickJS引擎增加了zlib模块。
  • 错误修复:已修复 zlib.inflate()
  • 错误修复:修复了长度为零的参数String.prototype.replaceAll() 。
  • 错误修复:修复了Array.prototype.toSpliced()Array.prototype.toReversed()Array.prototype.toSorted()出现异常后的retval处理。
  • 错误修复:解决了RegExp.prototype[@@replace]()中包含$'$`和 Unicode 字符的替换问题。
  • 错误修复:修复了decodeURI()decodeURIComponent()中的一个 one-byte overread 问题 。
  • 错误修复:修复了参数范围的跟踪。
  • 错误修复:修复了Date.parse()中的整数溢出。

njs 以 nginx 插件的方式存在,它是 JavaScript/ECMAscript 的子集,实现了大部分的 JavaScript 语言功能,没有完全遵从 ECMAScript 标准,同时抛弃了 JavaScript 比较难懂的部分。njs 不通过 V8 引擎实现,而是通过一个更小、能耗更低、更符合 nginx 应用场景的小虚拟机实现,可以理解成 nginx 为其实现了一套自己的词法解析。

作为 nginx 的插件,njs 的安装方式是重新编译 nginx。

详情可查看:https://nginx.org/en/docs/njs/changes.html#njs0.8.5


相關推薦

2023-04-11

njs 0.7.12 已发布。njs 以 nginx 插件的方式存在,它是 JavaScript/ECMAscript 的子集,实现了大部分的 JavaScript 语言功能,没有完全遵从 ECMAScript 标准,同时抛弃了 JavaScript 比较难懂的部分。njs 不通过 V8 引擎实现,而是通过一个更小、

2023-09-15

典引入items()方法。 njs 以 nginx 插件的方式存在,它是 JavaScript/ECMAscript 的子集,实现了大部分的 JavaScript 语言功能,没有完全遵从 ECMAScript 标准,同时抛弃了 JavaScript 比较难懂的部分。njs 不通过 V8 引擎实现,而是通过一个更

2022-04-15

njs 0.7.3 已发布,njs 以 nginx 插件的方式存在,它是 JavaScript/ECMAscript 的子集,实现了大部分的 JavaScript 语言功能,没有完全遵从 ECMAScript 标准,同时抛弃了 JavaScript 比较难懂的部分。njs 不通过 V8 引擎实现,而是通过一个更小、

2022-07-21

njs 0.7.6 已发布,njs 以 nginx 插件的方式存在,它是 JavaScript/ECMAscript 的子集,实现了大部分的 JavaScript 语言功能,没有完全遵从 ECMAScript 标准,同时抛弃了 JavaScript 比较难懂的部分。njs 不通过 V8 引擎实现,而是通过一个更小、

2022-06-23

njs 0.7.5 已发布,njs 以 nginx 插件的方式存在,它是 JavaScript/ECMAscript 的子集,实现了大部分的 JavaScript 语言功能,没有完全遵从 ECMAScript 标准,同时抛弃了 JavaScript 比较难懂的部分。njs 不通过 V8 引擎实现,而是通过一个更小、

2023-02-09

njs 0.7.10 已发布。njs 以 nginx 插件的方式存在,它是 JavaScript/ECMAscript 的子集,实现了大部分的 JavaScript 语言功能,没有完全遵从 ECMAScript 标准,同时抛弃了 JavaScript 比较难懂的部分。njs 不通过 V8 引擎实现,而是通过一个更小、

2023-07-08

以及全局 ngx 属性。 njs 以 nginx 插件的方式存在,它是 JavaScript/ECMAscript 的子集,实现了大部分的 JavaScript 语言功能,没有完全遵从 ECMAScript 标准,同时抛弃了 JavaScript 比较难懂的部分。njs 不通过 V8 引擎实现,而是通过一个更

2022-10-27

njs 0.7.8 已发布。njs 以 nginx 插件的方式存在,它是 JavaScript/ECMAscript 的子集,实现了大部分的 JavaScript 语言功能,没有完全遵从 ECMAScript 标准,同时抛弃了 JavaScript 比较难懂的部分。njs 不通过 V8 引擎实现,而是通过一个更小、

2023-03-12

njs 0.7.11 已发布。njs 以 nginx 插件的方式存在,它是 JavaScript/ECMAscript 的子集,实现了大部分的 JavaScript 语言功能,没有完全遵从 ECMAScript 标准,同时抛弃了 JavaScript 比较难懂的部分。njs 不通过 V8 引擎实现,而是通过一个更小、

2022-05-27

njs 0.7.4 已发布,njs 以 nginx 插件的方式存在,它是 JavaScript/ECMAscript 的子集,实现了大部分的 JavaScript 语言功能,没有完全遵从 ECMAScript 标准,同时抛弃了 JavaScript 比较难懂的部分。njs 不通过 V8 引擎实现,而是通过一个更小、

2022-11-23

njs 0.7.9 已发布。njs 以 nginx 插件的方式存在,它是 JavaScript/ECMAscript 的子集,实现了大部分的 JavaScript 语言功能,没有完全遵从 ECMAScript 标准,同时抛弃了 JavaScript 比较难懂的部分。njs 不通过 V8 引擎实现,而是通过一个更小、

2022-09-01

njs 0.7.7 已发布,njs 以 nginx 插件的方式存在,它是 JavaScript/ECMAscript 的子集,实现了大部分的 JavaScript 语言功能,没有完全遵从 ECMAScript 标准,同时抛弃了 JavaScript 比较难懂的部分。njs 不通过 V8 引擎实现,而是通过一个更小、

2022-12-19

基础。 Nginx Unit 1.29.0 正式发布,更新内容如下: NGINX JavaScript 集成 NGINX JavaScript(njs)是一个服务器端的 JavaScript 运行时,为超快的初始化进行了优化。njs 最初是为扩展 NGINX 而设计的,它的架构适合于集成,现在它也扩展了

2023-09-03

可为您的服务网格奠定坚实的基础。 Nginx Unit 1.31.0 正式发布,这是继 5 月份发布 1.30 之后的又一个重要里程碑。此版本中引入 Unit WebAssembly (WASM) 功能,代表了 Unit 功能的重大飞跃。 还带来了显着的新增功能 - 能够发送 response