On 09/03/2021 23:04, 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.
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
Hi, I am still wondering how this compares to sqlpp11 (https://github.com/rbock/sqlpp11). Niall already stated that this library uses a variant for the resultset. Is it for example possible to hook the connector part into sqlpp11 as a seperate connector? I am a huge fan of sqlpp11 in which I can map a SQL type to a C++ type. Regards, Matthijs