On Tue, 9 Mar 2021 at 23:05, Ruben Perez via Boost
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.
I have tried this library, and already witnessed its use in a live production project. To my mind, a lightweight library with a permissive licence that gives immediate access to a very popular DBMS would be a great for the Boost user community. I would like to offer my endorsement to this proposal. R
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
-- Richard Hodges hodges.r@gmail.com office: +442032898513 home: +376841522 mobile: +376380212