|
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