Boost logo

Boost :

From: Norvald H. Ryeng (norvald.ryeng_at_[hidden])
Date: 2022-04-06 09:26:56


On 30.03.2022 23:00, Ruben Perez via Boost wrote:
> Hi all,
>
> I would like to propose my MySQL client library for inclusion in Boost. The
> library features asynchronous communication with MySQL and MariaDB servers,
> allowing the user to use txt queries and prepared statements. The library
> is based on Boost.Asio and follows its asynchronous model (in a similar way
> Boost.Beast does).
>
> The library is specific to MySQL and MariaDB systems, and is not intended
> as a SQL framework or ORM. It fits use cases like HTTP servers (possibly
> already using Beast), ETL pipelines or any other application that needs to
> access a MySQL database and wants to benefit from Asio's asynchrony.
>
> Please note that the library is a full implementation of MySQL wire
> protocol and does not use libmysqlclient under the hood.

Great work!

Although MariaDB is a fork of MySQL and still to a large degree is
compatible, at least in the simple and most common cases, both DBMSs are
adding features independently and are diverging more and more.

I work at MySQL Engineering at Oracle, and I've seen other attempts to
treat MySQL and MariaDB as two variations of the same product, e.g., in
packaging in Linux distros and client applications. As the DBMSs diverge
more and more, these attempts usually fail, and the DBMSs have to be
treated as two completely different DBMSs, like MySQL and Postgres.

AFAIK, the basic protocol is still the same in both DBMSs, but new
extensions are implemented in one and not the other, and there is no
guarantee that they will remain compatible. I wouldn't be surprised if
there are already subtle protocol differences when enabling some of the
most recent extensions.

I believe that in the long term the protocols will diverge more. Is the
library designed in a way that can handle growing differences, and maybe
a complete protocol incompatibility, in the future?

Best regards,

Norvald


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk