ngx-rust icon indicating copy to clipboard operation
ngx-rust copied to clipboard

Current Project State

Open thekief opened this issue 1 year ago • 5 comments

I would like to consider Rust for nginx module developement but I would need some more information about the project's current state. In April 2023 ^1 the readme has been changed to include the line:

This project is still a work in progress and not production ready.

Since then, quite a few things have changed in the code and I was wondering, if the assessment is still correct, or if it has changed.

thekief avatar Dec 11 '24 13:12 thekief

@bavshin-f5 sorry to ping you, but I was wondering, if you, as the top contributor, could give some insight here.

thekief avatar Dec 16 '24 09:12 thekief

We've been evaluating using Rust for future projects, and I can agree with this assessment. A lot of functionality I needed was missing, lacked a safe interface or could be optimized. Nothing that prevents writing the modules, but the experience with the SDK could be much better. As a result, we intend to invest more time in the project and address the most important shortcomings within the next few months. And since the process wasn't visible from the outside, I'll start with publishing the tasks and drafting a roadmap for the next couple of releases.

bavshin-f5 avatar Dec 23 '24 19:12 bavshin-f5

Thank you for confirming my assessment. In this context, I was wondering, if there is a general roadmap regarding Rust and its introduction to nginx.

My biggest question in this regard is, if you will take an approach similar to Linux, making Rust support optional, planning deeper integrations, or maybe even making nginx itself more modular. Regarding the latter, I could imagine having drop-in replacements for some components could make it easier to cater one's needs.

thekief avatar Dec 27 '24 09:12 thekief

@bavshin-f5 I was wondering, if you could give an update regarding timeline. I've seen that you added some issues for feature tracking and did quite some stuff.

Is there perhaps a specific date you want to have, e.g., the stream support finished?

thekief avatar Feb 25 '25 08:02 thekief

I'm adding my +1 and extending my thanks to the maintainers for working on this project. I'm interested in developing nginx modules in Rust for production use, but I can't advocate for that at work when the project says "not production ready." I understand these things take time, so I'm not complaining, just expressing my interest & thanks.

Mostly we would be replacing lua scripts with Rust to have more compile-time confidence in our changes and more flexibility about the kind of work we can do in our custom code — e.g., request middleware that can leverage shared state with arbitrary data structures.

FWIW, breaking API changes are less of a concern for us since the custom modules would be limited in scope — as long as the changes cause compilation failure, rather than runtime failure.

In terms of production stability, mostly we don't want to be in a situation where we can't upgrade nginx to fix a vulnerability because ngx-rust is incompatible with it.

davidthing avatar Jun 06 '25 20:06 davidthing