Hi everyone,

When I read about Apache's use of rustls I thought of this thread again.

For mod_tls, the module itself was written in C linking to the rustls-ffi. I have been wondering if it would be desirable to implement the modules themselves in Rust as well and how you would go about doing that. This is something I have superficially looked into in the past but never really followed through with.

I looked around and found https://github.com/majorz/apache2-rs which has been inactive since about 7 years ago. There are also a number of forks which are more recent but also appear to be inactive and left in an early development state. There appears to be one fork that has only just been worked on recently with minor tweaks but it is still the same for the most part.

Recently, I have started to implement something similar, mostly to get some familiarity with the process of using Rust's bindgen tools. The approach I chose is somewhat different as I generate the FFI with bindgen on the fly during the build process. The project is located here: https://github.com/studersi/apache-rs. I have not implemented any abstractions yet that are more idiomatic to Rust and stuck to the FFI generated by bindgen for now. I will likely add such abstractions later to get the most out of Rust's safety guarantees.

Is anyone else looking into this or maybe even the owner of one of the other projects? Any other thoughts or comments are welcome as well :-)

Best,
Simon




On 8/21/20 01:00, Wendell Hatcher wrote:
Golang!! 😊😊😊

Wendell

On Aug 20, 2020, at 6:58 PM, Nick Kew <n...@apache.org> wrote:

ο»ΏOn Thu, 20 Aug 2020 21:59:50 +0200
Simon Studer <simon.stu...@netnea.com> wrote:

Hi everyone,

Recently, I was wondering which programming language should be used
for new Apache httpd modules.
Whatever suits the module's developer and task.

The C API has a stability promise: if you use it, your
module will continue to work with (at least) future 2.4.x
releases.  That give you C or any language with C linkage.
If you deviate from the API, you're on your own.

Alternatives that (broadly speaking) wrap the C API are also
possible: see for example mod_perl and mod_lua.

--
Nick Kew

Reply via email to