|
1 | 1 | # Table of Contents |
2 | 2 |
|
| 3 | +- [0.1.1] |
3 | 4 | - [0.1.0] |
4 | 5 |
|
5 | | -## [0.1.0] |
| 6 | +## Documentation |
6 | 7 |
|
7 | | -> 2023/07/30 - Prerelease |
8 | | -
|
9 | | -This initial prerelease proposes a programmable Nginx module for executing Wasm |
10 | | -bytecode in Nginx and/or OpenResty: ngx_wasm_module. |
11 | | - |
12 | | -The module must be linked to one of three supported WebAssembly runtimes: |
13 | | -Wasmtime, Wasmer, or V8. |
14 | | - |
15 | | -Along with a programmable "Nginx Wasm VM" interface, this release also comes with |
16 | | -initial support for Proxy-Wasm filters (i.e. Proxy-Wasm Host environment), and a |
17 | | -number of surrounding libraries for peripheral or optional usage of the module. |
| 8 | +All releases are documented in a "git book" hosted in the project's repository: |
| 9 | +the [user |
| 10 | +documentation](https://github.com/Kong/ngx_wasm_module/tree/main/docs). **When |
| 11 | +consulting any file under this location, make sure to checkout the proper |
| 12 | +revision tag for your release.** |
18 | 13 |
|
19 | | -### Documentation |
20 | | - |
21 | | -This release is documented in a "git book" that is hosted in the same repository |
22 | | -as the [user documentation](https://github.com/Kong/ngx_wasm_module/tree/prerelease-0.1.0/docs). |
23 | | - |
24 | | -To install the module, consult [INSTALL.md](https://github.com/Kong/ngx_wasm_module/tree/prerelease-0.1.0/docs/INSTALL.md). |
| 14 | +To install the module, consult |
| 15 | +[INSTALL.md](https://github.com/Kong/ngx_wasm_module/tree/main/docs/INSTALL.md). |
25 | 16 |
|
26 | 17 | For Nginx users, the module can be used through `nginx.conf` directives, |
27 | | -documented in [DIRECTIVES.md](https://github.com/Kong/ngx_wasm_module/tree/prerelease-0.1.0/docs/DIRECTIVES.md). |
| 18 | +documented in |
| 19 | +[DIRECTIVES.md](https://github.com/Kong/ngx_wasm_module/tree/main/docs/DIRECTIVES.md). |
28 | 20 |
|
29 | 21 | OpenResty users can also expect to use ngx_wasm_module via the bundled LuaJIT |
30 | 22 | FFI binding, for which no documentation exists at the moment. |
31 | 23 |
|
32 | | -Proxy-Wasm filters authors will be interested in [PROXY_WASM.md](https://github.com/Kong/ngx_wasm_module/tree/prerelease-0.1.0/docs/PROXY_WASM.md) |
| 24 | +Proxy-Wasm filters authors will be interested in |
| 25 | +[PROXY_WASM.md](https://github.com/Kong/ngx_wasm_module/tree/main/docs/PROXY_WASM.md) |
33 | 26 | for a primer on Proxy-Wasm in ngx_wasm_module and a picture of the supported |
34 | 27 | Host ABI. |
35 | 28 |
|
36 | 29 | As for Nginx developers, the module can also be used to write other modules; the |
37 | | -best resource for that sort of information would be [DEVELOPER.md](https://github.com/Kong/ngx_wasm_module/tree/prerelease-0.1.0/docs/DEVELOPER.md). |
| 30 | +best resource for that sort of information would be |
| 31 | +[DEVELOPER.md](https://github.com/Kong/ngx_wasm_module/tree/main/docs/DEVELOPER.md). |
| 32 | + |
| 33 | +## 0.1.1 |
| 34 | + |
| 35 | +> 2023/10/06 - Prerelease |
| 36 | +> |
| 37 | +> [Documentation](https://github.com/Kong/ngx_wasm_module/tree/prerelease-0.1.1/docs) |
| 38 | +> | [Release assets](https://github.com/Kong/ngx_wasm_module/releases/tag/prerelease-0.1.1) |
| 39 | +
|
| 40 | +This prerelease contains fixes and a few minor improvements atop the initial |
| 41 | +prerelease. |
| 42 | + |
| 43 | +An important fix contained in this changeset is the resolution of a memory leak |
| 44 | +that occurred when using Proxy-Wasm filter chains with the `none` isolation |
| 45 | +mode. |
| 46 | + |
| 47 | +#### Changes |
| 48 | + |
| 49 | +> [0.1.0...0.1.1](https://github.com/Kong/ngx_wasm_module/compare/prerelease-0.1.0...prerelease-0.1.1) |
| 50 | +
|
| 51 | +- Proxy-Wasm |
| 52 | + - Feature: add support for Unix domain sockets in HTTP dispatch calls. |
| 53 | + - Bugfix: resolve a memory leak when using low isolation modes (i.e. |
| 54 | + `none`). |
| 55 | + - Bugfix: ensure the whole filter chain is executed in response steps. |
| 56 | + - Bugfix: ensure the rest of the filter chain is executed after HTTP |
| 57 | + dispatch responses. |
| 58 | + - Bugfix: prevent a crash when reading maps from non-HTTP contexts. |
| 59 | + - Bugfix: prevent HTTP dispatch calls from having multiple Host and |
| 60 | + Connection headers. |
| 61 | + - Misc: improve the clarity of some filter chain error messages. |
| 62 | +- Wasmtime |
| 63 | + - Feature: set `RUST_BACKTRACE=full` when `backtraces` is enabled. |
| 64 | + - Bugfix: allow overriding the `WASMTIME_BACKTRACE_DETAILS` environment |
| 65 | + variable. |
| 66 | + - Misc: compatibility with Wasmtime 12.0.2 which resolves the known issue |
| 67 | + documented in [0.1.0]. |
| 68 | + - Perf: avoid heap allocations in most host function calls. |
| 69 | +- Wasmer |
| 70 | + - Feature: set `RUST_BACKTRACE=full` when `backtraces` is enabled. |
| 71 | +- LuaJIT FFI |
| 72 | + - Bugfix: prevent a crash when the stream subsystem is in use. |
| 73 | + - Bugfix: resolve a memory leak when using `get/set_property` in |
| 74 | + `init_worker_by_lua`. |
| 75 | +- Lua bridge |
| 76 | + - Bugfix: avoid a use-after-free with the latest OpenResty 1.21.4.2 release. |
| 77 | +- Misc |
| 78 | + - Bugfix: fix compilation errors with newer clang and gcc versions. |
| 79 | + |
| 80 | +#### Dependencies |
| 81 | + |
| 82 | +This release is tested with the following Nginx/OpenResty versions and dependencies: |
| 83 | + |
| 84 | +Name | Version | Notes |
| 85 | +---------:|:---------------:|:-------------------------------------------------- |
| 86 | +Nginx | [1.25.2](https://nginx.org/en/download.html) | |
| 87 | +OpenResty | [1.21.4.2](https://openresty.org/en/download.html) | |
| 88 | +OpenSSL | [3.1.3](https://www.openssl.org/source/) | |
| 89 | +Wasmtime | [12.0.2](https://github.com/bytecodealliance/wasmtime/releases) | |
| 90 | +Wasmer | [3.1.1](https://github.com/wasmerio/wasmer/releases/) | |
| 91 | +V8 | [11.4.183.23](https://github.com/Kong/ngx_wasm_runtimes/releases/) | Built by [Kong/ngx_wasm_runtimes] for convenience. |
| 92 | + |
| 93 | +#### Components |
| 94 | + |
| 95 | +Same as [0.1.0]. |
| 96 | + |
| 97 | +#### Known Issues |
| 98 | + |
| 99 | +- When using Wasmtime, reloading Nginx with `SIGHUP` seems to leave workers |
| 100 | + susceptible to crashes on Wasm instance exceptions such as `SIGFPE`. See |
| 101 | + [#418](https://github.com/Kong/ngx_wasm_module/issues/418). |
| 102 | +- Proxy-Wasm filter chains issuing HTTP dispatch calls during `on_request_body` |
| 103 | + will cause inconsistencies in the filter chain execution. |
| 104 | + |
| 105 | +[Back to TOC](#table-of-contents) |
| 106 | + |
| 107 | +## 0.1.0 |
| 108 | + |
| 109 | +> 2023/07/30 - Prerelease |
| 110 | +> |
| 111 | +> [Documentation](https://github.com/Kong/ngx_wasm_module/tree/prerelease-0.1.0/docs) |
| 112 | +> | [Release assets](https://github.com/Kong/ngx_wasm_module/releases/tag/prerelease-0.1.0) |
| 113 | +
|
| 114 | +This initial prerelease proposes a programmable Nginx module for executing Wasm |
| 115 | +bytecode in Nginx and/or OpenResty: ngx_wasm_module. |
| 116 | + |
| 117 | +The module must be linked to one of three supported WebAssembly runtimes: |
| 118 | +Wasmtime, Wasmer, or V8. |
| 119 | + |
| 120 | +Along with a programmable "Nginx Wasm VM" interface, this release also comes |
| 121 | +with initial support for Proxy-Wasm filters (i.e. Proxy-Wasm Host environment), |
| 122 | +and a number of surrounding libraries for peripheral or optional usage of the |
| 123 | +module. |
38 | 124 |
|
39 | | -### Dependencies |
| 125 | +#### Dependencies |
40 | 126 |
|
41 | 127 | This release is tested with the following Nginx/OpenResty versions and dependencies: |
42 | 128 |
|
43 | 129 | Name | Version | Notes |
44 | | ----------:|:---------------:|:------------------------------------------------- |
45 | | -Nginx | [1.25.1](https://nginx.org/en/download.html) | |
46 | | -OpenResty | [1.21.4.1](https://openresty.org/en/download.html) | |
47 | | -OpenSSL | [1.1.1u](https://www.openssl.org/source/) | |
48 | | -Wasmtime | [8.0.1](https://github.com/bytecodealliance/wasmtime/releases/tag/v8.0.1) | |
49 | | -Wasmer | [3.1.1](https://github.com/wasmerio/wasmer/releases/tag/v3.1.1) | |
50 | | -V8 | [11.4.183.23](https://github.com/Kong/ngx_wasm_runtimes/releases/tag/v8-11.4.183.23) | Built by [Kong/ngx_wasm_runtimes] for convenience. |
| 130 | +---------:|:---------------:|:-------------------------------------------------- |
| 131 | +Nginx | [1.25.1](https://nginx.org/en/download.html) | |
| 132 | +OpenResty | [1.21.4.1](https://openresty.org/en/download.html) | |
| 133 | +OpenSSL | [1.1.1u](https://www.openssl.org/source/) | |
| 134 | +Wasmtime | [8.0.1](https://github.com/bytecodealliance/wasmtime/releases/) | |
| 135 | +Wasmer | [3.1.1](https://github.com/wasmerio/wasmer/releases/) | |
| 136 | +V8 | [11.4.183.23](https://github.com/Kong/ngx_wasm_runtimes/releases/) | Built by [Kong/ngx_wasm_runtimes] for convenience. |
51 | 137 |
|
52 | | -### Components |
| 138 | +#### Components |
53 | 139 |
|
54 | 140 | Relevant components are automatically built when necessary as part of the Nginx |
55 | 141 | `./configure` step. |
56 | 142 |
|
57 | 143 | This release bundles the following components, *not independently versioned*: |
58 | 144 |
|
59 | 145 | Name | Notes |
60 | | ----------------:|:------------------------------------------------------------- |
| 146 | +---------------:|:-------------------------------------------------------------- |
61 | 147 | ngx-wasm-rs | A Rust library used when linking to Wasmer or V8. Ensures feature-parity across runtimes such as detailed backtraces and `.wat` format support. |
62 | 148 | v8bridge | A bridge library exposing C++ V8 features to ngx_wasm_module's C. |
63 | 149 | lua-resty-wasmx | A LuaJIT FFI binding exposing some of ngx_wasm_module's features via Lua. |
64 | 150 |
|
65 | | -### Known Issues |
| 151 | +#### Known Issues |
66 | 152 |
|
67 | 153 | - MacOS platforms (x86 and ARM64) linking ngx_wasm_module to Wasmtime: using |
68 | 154 | [daemon on](https://nginx.org/en/docs/ngx_core_module.html#daemon) results in |
69 | | - a known crash of the Nginx master process. |
| 155 | + a known crash of the Nginx master process. *Resolved in [0.1.1]*. |
70 | 156 |
|
71 | 157 | [Back to TOC](#table-of-contents) |
72 | 158 |
|
73 | | -[0.1.0]: https://github.com/Kong/ngx_wasm_module/releases/tag/prerelease-0.1.0 |
| 159 | +[0.1.0]: #010 |
| 160 | +[0.1.1]: #011 |
74 | 161 | [Kong/ngx_wasm_runtimes]: https://github.com/Kong/ngx_wasm_runtimes |
0 commit comments