On Mon, Jan 22, 2024 at 12:58 PM Ruben Perez via Boost < boost@lists.boost.org> wrote:
The biggest barrier I have for adoption is that it’s a compiled library. MySQL is header-only, which means that the official CMake modules in the release don’t contain a Boost::mysql target. Adding a hard dependency on Boost.Charconv is thus a breaking change for my users, who will need to update their CMLs.
My experience in Boost has taught me that this is probably a good thing. Users depending on libraries to be header-only is an impediment to creating great libraries. The only thing worse than not having the ability or motivation to compile and consume an external library is the absurd requirement to "only have the standard library as a dependency." I believe that Boost should lead by example here. Libraries should be header-only as a coincidence and not by design. For example Boost.Variant2 should be header-only. But Boost.MySQL does not need to be header-only. In my opinion the best way to motivate people to learn how to properly compile and link external dependencies is to create non-header-only Boost libraries that are so compelling in features, so rewarding in value, that users will accept the cost of incorporating linkable external dependencies instead of forgoing useful libraries. Thanks