sfackler / rust-openssl

OpenSSL bindings for Rust
1.37k stars 738 forks source link

Retire non-bindgen modes #2233

Open davidben opened 4 months ago

davidben commented 4 months ago

Originally, this crate used an extremely unsafe bindings strategy, copy-pasting OpenSSL type signatures and hoping they were correct, with such extreme unsafety that it risked memory errors that even C is capable of protecting against.

1573 added an optional bindgen mode, which improved things, but the unsafe mode remains. As I understand it, this was out of trying to support older CentOS versions that did not have a new enough libclang? I'm not sure which CentOS version it was, but https://endoflife.date/centos says the last one that may be relevant is going EOL in a couple months.

alex commented 4 months ago

I like this, maintaining the handwritten bindings is annoying :-)

The main consideration I have is impact on build times, and the libclang requirement. I wish bindgen was a feature of rustc itself, but not today...