3 ms·
Why the push to have RustTLS replace OpenSSL, instead of Go's TLS library (which is mature and widely used?)
by ferdowsi 5y ago
Why the push to have RustTLS replace OpenSSL, instead of Go's TLS library (which is mature and widely used?)
- mwcampbell 5y agoI would guess because Go, having a garbage collector and green threads, has a heavier runtime than Rust and is therefore harder to embed into programs written primarily in other languages. Can anyone else speak more authoritatively on this?
- Ericson2314 5y agoC -> Go FFI is a lot harder. Per their website, they are a big on a modular approach where libraries can be made memory safe concurrently. Languages with non-trivial runtimes like Go or Haskell just don't support that same model. You would want to convert your libraries in a certain order so there is one continuous C vs non-C boundary.
- tptacek 5y agoGo's TLS is the right choice if you're working on a project that uses Go. Go is often a good choice if you're rewriting a whole project to be memory-safe. But if you're retaining a lot of your C/C++ code, and trying to surgically replace the attack-surfacey bits with memory-safe code, that's Rust's job, not Go's.
- topspin 5y agoThis doesn't deserve the downmods; when one assumes good faith all we have here is a straightforward question. Here is the answer; When you wish to provide a library that you intend for use in diverse applications[1] -- and OpenSSL is a excellent example of exactly this case -- you cannot choose a language with a complex runtime. Go has a complex runtime. There is no getting around this; any non-trivial software implemented in Go will require a number of runtime facilities and accommodating that becomes a burden for the library user. Rust has about the same runtime burden as C/C++. It links the same way as C/C++ and imposes the minimum possible burden on the library user. [1] diverse as in essentially all platforms, from microcontrollers to high performance systems at scale, over decades of evolution.
- stonogo 5y agoBecause these people are Rust partisans, who are hiding behind generalized language and confusing "About" pages to push their partisanship under the guise of benevolence, since shaming everyone who disagreed with them backfired. They have more information on their website about how to give them money than they do about who they actually are. This makes it easier to route cash to rewrite-it-in-Rust efforts without having to defend these decisions.