Boost logo

Boost :

From: Edward Diener (eldiener_at_[hidden])
Date: 2021-03-10 02:32:14


On 3/9/2021 5:04 PM, Ruben Perez via Boost wrote:
> Hi all,
>
> I would like to propose a MySQL client library for Boost (under the
> original name of Boost.Mysql). It is a full implementation of the MySQL
> client protocol, based on Boost.Asio. It requires C++11.
>
> The library is at https://github.com/anarthal/mysql and the documentation
> is at https://anarthal.github.io/mysql/. Examples under
> https://anarthal.github.io/mysql/mysql/examples.html.
>
> The purpose of this library is to provide a low-level building block for
> applications or other libraries to interact with MySQL, in the same way
> Boost.Beast provides a way to interact with HTTP. It complies with
> Boost.Asio universal asynchronous model, and provides the usual sync and
> async overloads for every network operation.
>
> Some notes:
>
> - The scope of this library is limited to MySQL. Its value proposition
> is implementing the client protocol in an Asio-compliant way. Supporting
> any database other than MySQL is not in scope of this library.
> - This library does NOT make use of MySQL libmysqlclient C API. It
> provides a from-the-ground-up implementation of the MySQL client protocol.

There is a MySQL++ library at https://tangentsoft.com/mysqlpp/home,
which I have used in the past and found useful. How does your API
compared to that library ?

I also looked at your mappings and very small database types are mapped
to int64_t rather than smaller integers. Is there a reason for this, as
it seems like a waste of space that should not be necessary ?

I do like the fact that you are using asio for asynchronous handling and
advance features above C++11 when compiling at a level higher than C++11.

>
> Features:
>
> - Text queries and server-side prepared statements.
> - Sync and async functions, following Boost.Asio's universal async
> model. You may use callbacks, Boost coroutines, futures, C++20 coroutines,
> or any completion handler that Asio adds support for.
> - Can be used with any Stream including TCP sockets, UNIX sockets and
> Boost.Beast TCP streams.
> - Supports MySQL 5.x, MySQL 8.x and MariaDB.
>
> _______________________________________________
> Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
>


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