Ticket 49325 - Proof of concept rust tqueue in sds
Bug Description: Rust is a modern systems programming language
in the style of C and C++. It has strict compile time guarantees
to the correctness of applications, and promises the potential
to reduce many times of security and stability issues including
bounds checking, null dereferences, use-after free and more.
This is achieved without a run time, instead using compile time
ownership and lifetime checks.
Fix Description: This ticket is to add a proof of concept that
we can use Rust as an FFI language with existing C components.
This adds an optional configure argument to enable a rust thread
safe queue which is used by nunc-stans for event dispatch.
My tests already show it is safe (it passes all the existing test)
and the server when built with this option passes the basic suite.
Importantly it shows how we can integrate cargo with autotools,
and how to expose and C compatible apis from rust.
To use this, at configure time add "--enable-rust".
There are no other changes to the server without this flag, and it
is not a requirement to build DS, it's optional.
https://pagure.io/389-ds-base/issue/49325
Author: wibrown
Review by: mreynolds, tbordaz (Thank you!)