Boost logo

Boost :

From: Ruben Perez (rubenperez038_at_[hidden])
Date: 2021-03-09 22:04:33


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.


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