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