|
2 | 2 |
|
3 | 3 | All notable changes to this project will be documented in this file.
|
4 | 4 |
|
| 5 | +## Release v0.5.0-beta |
| 6 | + |
| 7 | +### Build experience |
| 8 | + |
| 9 | +In this release, we shifted the focus to an integration into the NGINX build |
| 10 | +process. |
| 11 | + |
| 12 | +The default set of features now requires providing a preconfigured NGINX source |
| 13 | +tree with `NGINX_SOURCE_DIR` and `NGINX_BUILD_DIR` variables ([#67], [#124]). |
| 14 | + |
| 15 | +The option to build a copy of NGINX as a part of the module process was |
| 16 | +preserved as a feature flag `vendored` and no longer requires downloading |
| 17 | +sources from the network ([#160]). |
| 18 | +We encourage you to limit use of this feature to testing only. |
| 19 | + |
| 20 | +The [`examples`](./examples/) directory provides `config`, `config.make` and |
| 21 | +`auto/rust` scripts to add a Rust-based module to the nginx build, linked |
| 22 | +statically with `--add-module=` or dynamically with `--add-dynamic-module=`. |
| 23 | +[nginx-acme] offers another, more complete example ([#67], [#95], [#124], |
| 24 | +[#154], [#176]). |
| 25 | + |
| 26 | +In addition, we now have a proper detection of the features available in the |
| 27 | +build of NGINX ([#97]). See [build.rs](./build.rs) for the necessary setup for |
| 28 | +your project. |
| 29 | + |
| 30 | +[nginx-acme]: https://github.com/nginx/nginx-acme |
| 31 | +[#67]: https://github.com/nginx/ngx-rust/pull/67 |
| 32 | +[#95]: https://github.com/nginx/ngx-rust/pull/95 |
| 33 | +[#97]: https://github.com/nginx/ngx-rust/pull/97 |
| 34 | +[#124]: https://github.com/nginx/ngx-rust/pull/124 |
| 35 | +[#154]: https://github.com/nginx/ngx-rust/pull/154 |
| 36 | +[#160]: https://github.com/nginx/ngx-rust/pull/160 |
| 37 | +[#176]: https://github.com/nginx/ngx-rust/pull/176 |
| 38 | + |
| 39 | +### Allocators |
| 40 | + |
| 41 | +`ngx` now offers custom allocator support based on the [allocator-api2] crate. |
| 42 | +The `ngx::core::Pool` and `ngx::core::SlabPool` can be used for failible |
| 43 | +allocations within the NGINX pools and shared zones correspondingly |
| 44 | +([#164], [#171]). |
| 45 | + |
| 46 | +Most of the crates with [allocator-api2 support] are compatible with this |
| 47 | +implementation. We also provide wrappers for common data structures implemented |
| 48 | +in NGINX in [`ngx::collections`](./src/collections/) ([#164], [#181]). |
| 49 | + |
| 50 | +[allocator-api2]: https://crates.io/crates/allocator_api2 |
| 51 | +[allocator-api2 support]: https://crates.io/crates/allocator_api2/reverse_dependencies |
| 52 | +[#164]: https://github.com/nginx/ngx-rust/pull/164 |
| 53 | +[#171]: https://github.com/nginx/ngx-rust/pull/171 |
| 54 | +[#181]: https://github.com/nginx/ngx-rust/pull/181 |
| 55 | + |
| 56 | + |
| 57 | +### Other |
| 58 | + |
| 59 | +* We audited the code and fixed or removed most of the methods that made wrong |
| 60 | + assumptions and could panic or crash ([#91], [#152], [#183]). |
| 61 | +* `no_std` build support ([#111]). |
| 62 | +* Logging API improvements ([#113], [#187]) |
| 63 | +* The SDK and the example modules can be built and are tested in CI on Windows |
| 64 | + ([#124], [#161]). No further porting or testing work was done. |
| 65 | +* Reimplementations for `nginx-sys` methods and macros that cannot be translated |
| 66 | + with bindgen ([#131], [#162], [#167]) |
| 67 | +* Improved API for module configuration access ([#142]). |
| 68 | +* Initial work on the NGINX async runtime ([#170]) |
| 69 | +* The default branch was renamed to `main`. |
| 70 | + |
| 71 | +[#91]: https://github.com/nginx/ngx-rust/pull/91 |
| 72 | +[#111]: https://github.com/nginx/ngx-rust/pull/111 |
| 73 | +[#113]: https://github.com/nginx/ngx-rust/pull/113 |
| 74 | +[#131]: https://github.com/nginx/ngx-rust/pull/131 |
| 75 | +[#142]: https://github.com/nginx/ngx-rust/pull/142 |
| 76 | +[#152]: https://github.com/nginx/ngx-rust/pull/152 |
| 77 | +[#161]: https://github.com/nginx/ngx-rust/pull/161 |
| 78 | +[#162]: https://github.com/nginx/ngx-rust/pull/162 |
| 79 | +[#167]: https://github.com/nginx/ngx-rust/pull/167 |
| 80 | +[#170]: https://github.com/nginx/ngx-rust/pull/170 |
| 81 | +[#183]: https://github.com/nginx/ngx-rust/pull/183 |
| 82 | +[#187]: https://github.com/nginx/ngx-rust/pull/187 |
| 83 | + |
| 84 | +### Supported versions |
| 85 | + |
| 86 | +The minimum supported Rust version is 1.81.0. The version was chosen to support |
| 87 | +the packaged Rust toolchain in the recent versions of popular Linux and BSD |
| 88 | +distributions. |
| 89 | + |
| 90 | +The minimum supported NGINX version is 1.22. The bindings may compile with an |
| 91 | +older version of NGINX, but we do not test that regularly. |
| 92 | + |
| 93 | +Full changelog: [v0.4.1..v0.5.0-beta](https://github.com/nginx/ngx-rust/compare/v0.4.1...v0.5.0-beta) |
| 94 | + |
5 | 95 | ## Release v0.4.1
|
6 | 96 | * release: ngx 0.4.1 (9d2ce0d)
|
7 | 97 | * release: nginx-sys 0.2.1 (89eb277)
|
|
0 commit comments