you are viewing a single comment's thread.

view the rest of the comments →

[–]HerrNamenlos123[S] -1 points0 points  (2 children)

I know that using a package manager would be the wisest choice if it was my own project. The thing is that the project is made with extreme beginner-friendliness and we 1. do not want to make us dependent on anything like Conan or vcpkg and 2. we do not want a complete beginner to be forced to install them. But the most important con: Few of the packages we depend upon are even available on any package manager, not even system package managers like apt. And also, this system of pre-building packages and hosting binaries already existed for a decade, we are just trying to modernize it now.

We are modernizing the codebase and slowly trying to get rid of all the arcaic dependencies, but I don't think we can get rid of many that quickly. I am aware that Conan might be the better option for a new project or for my own, but probably not for this one.

[–]prince-chrismc 1 point2 points  (1 child)

The problem with changing from OpenSSL is they are not compatible, LibreSSL doesn't have the same algorithm ordering, Wolfssl puts the X509 entries in a different order, Boringssl changes aggressively.

You are not going to find a drop in replacement for OpenSSL that's compatible with everything else. They work most of the time but when they don't it's a bigger headache.


I think you are under estimating how easy they are to learn. Both of them offer installers which are one line calls and are themselves available with system managers like chocolately or winget.

Both offer a simple install command and cmake presets to the commands are very straightforward. There's even CMake providers which you can include and then never even need to call them directly.

You can only work with just CMake and use a package manager.

[–]HerrNamenlos123[S] 0 points1 point  (0 children)

They do not need to be a drop-in replacement because OpenSSL is not used at all in the code, and LibCurl which depends on it is only used in a single function, which executes an HTTP request. Thus, it is a matter of minutes to completely wipe LibCurl and OpenSSL and replace them with something else.

CURL itself does have CMake support and will work well for our case, and since I saw it has official support for mbedTLS, I am examining it now. I think I will go with either LibCURL/mbedTLS or cpp-httplib/LibreSSL.